Imported Upstream version 1.1.2
diff --git a/COPYING b/COPYING
index 60549be..14f5453 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
 		       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -305,7 +305,7 @@
 
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 Also add information on how to contact you by electronic and paper mail.
diff --git a/COPYING.LIB b/COPYING.LIB
index eb685a5..c87cfe8 100644
--- a/COPYING.LIB
+++ b/COPYING.LIB
@@ -2,7 +2,7 @@
 		       Version 2, June 1991
 
  Copyright (C) 1991 Free Software Foundation, Inc.
-                    675 Mass Ave, Cambridge, MA 02139, USA
+                    51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -464,7 +464,7 @@
 
     You should have received a copy of the GNU Library General Public
     License along with this library; if not, write to the Free
-    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 Also add information on how to contact you by electronic and paper mail.
 
diff --git a/ChangeLog b/ChangeLog
index b4db9be..4030fdb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,280 @@
-=== release 1.0.8 ===
+=== release 1.1.2 ===
 
-2013-07-12  Tim-Philipp Müller <tim@centricular.net>
+2013-07-11  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 1.0.8
+	  releasing 1.1.2
+
+2013-07-10 17:16:14 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Only give sinks a new bus if they have no parent yet
+	  Otherwise we will remove the bus that would proxy messages to playsink
+	  and never set it again. If the sink is already in playsink, all failures
+	  are fatal anyway as it's either a sink that worked before or one that
+	  was set by the user.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701997
+
+2013-07-10 13:22:04 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Store a/v/t sinks locally too, not just in playsink
+
+2013-07-10 13:21:29 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: ref_sink() any sinks that are set on playsink
+	  Otherwise the behaviour of the properties is inconsistent.
+
+2013-07-10 13:20:34 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* tests/check/elements/playbin.c:
+	  playbin: Fix assumptions in the unit test
+	  Unused sinks are still set to READY now during autoplugging
+	  to check their caps. Also playsink owns a ref to the sinks too.
+
+2013-07-10 13:00:21 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  streamsynchronizer: Non-TIME segment streams are not waiting automatically
+	  This was leftover code from porting to 1.0 and fixes the playbin
+	  unit test.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701943
+
+2013-07-09 23:04:49 +0200  Branko Subasic <branko@axis.com>
+
+	* win32/common/libgstrtp.def:
+	  win32: add missing rtp buffer methods
+
+2013-07-09 14:55:57 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gstplaysink.c:
+	  playbin: Change sink ownership handling to be a bit more sane
+	  playbin will now only activate the sinks in a single place and
+	  will never change the states of any sinks that are owned by
+	  playsink.
+	  Also handle text-sinks the same way as audio/video sinks inside
+	  playbin.
+
+2013-07-05 21:55:26 +0200  Piotr Drąg <piotrdrag@gmail.com>
+
+	* po/POTFILES.in:
+	  po: update POTFILES.in
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703684
+
+2013-07-04 17:09:00 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst-libs/gst/video/colorbalance.c:
+	  colorbalance: Fix the typo in base_init().
+
+2013-07-04 12:54:59 -0400  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst/adder/gstadder.c:
+	  adder: Do not send flush_start event with the stream lock taken
+	  FLUSH_START is not serialized, so the lock should not be taken when
+	  sending it.
+
+2013-07-05 00:47:08 +0100  Marcin Lewandowski <marcin@saepia.net>
+
+	* gst-libs/gst/tag/id3v2frames.c:
+	  tag: ignore malformed ID3v2 TDAT frames
+	  Just skip them, don't cause criticals.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703283
+
+2013-07-03 09:44:32 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/audioresample/speex_resampler_int.c:
+	  audioresample: make explicit that neon is disabled and why
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703477
+
+2013-07-02 18:20:39 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/audioresample/speex_resampler_int.c:
+	  audioresample: disable 16-bit integer NEON support
+	  it seems to be broken (produces no audio), plus the performance gain
+	  is small
+	  Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
+
+2013-07-02 14:25:28 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: If we had a previous autoplugged sink, try to reuse it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701997
+
+2013-07-02 14:18:20 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: If we switch sinks, make sure that the old sink is set to NULL
+
+2013-07-02 14:02:57 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Don't change the state of sinks that we passed to playsink already
+
+2013-07-02 14:01:52 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Consider new audio/video sinks when reconfiguring
+
+2013-07-02 12:27:03 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Improve debug output regarding sink selection
+
+2013-07-01 12:52:43 -0600  Brendan Long <self@brendanlong.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Post an error message if a stream combiner doesn't return a request pad.
+
+2013-07-01 13:45:25 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Only intersect to check if a sink can handle raw caps
+	  Doing a subset check requires fixed caps, which we might not have here.
+	  https://bugs.webkit.org/show_bug.cgi?id=116042
+
+2013-07-01 10:39:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	* gst-libs/gst/pbutils/missing-plugins.c:
+	* gst-libs/gst/pbutils/pbutils-private.h:
+	  pbutils: allow describing unfixed caps if they share the same media type
+	  Caps description and missing plugin code does not really need caps to
+	  be fixed, and indeed they may not be if giving encodebin unfixed caps
+	  that correspond to an unknown encoder or muxer.
+	  So we relax the check, and allow unfixed caps if all the structures
+	  refer to the same media type.
+
+2013-07-01 11:16:34 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Send all pending events with type < CAPS before sending caps
+
+2013-06-27 16:33:15 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Send all pending events with type < CAPS before sending caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703196
+
+2013-06-28 14:48:19 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: avoid too low mpeg/ts probability on small amount of data
+	  With the current test, we get into problems when we try to typefind
+	  a MPEG stream from a small amount of data, which can happen when
+	  we get data pushed from a HTTP source. We thus make a second test
+	  to give higher probability if all the potential headers were either
+	  pack or pes headers (ie, no potential header was unrecognized).
+	  This fixes an issue with a MPEG1/MP2 stream being properly discovered
+	  as video/mpeg from a file, but as audio/mpeg from souphttpsrc.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=703256
+
+2013-06-30 18:17:15 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  video(enc|dec)oder: Don't return not-negotiated if flushing
+	  If the pad is flushing after a failed negotiation, return
+	  GST_FLOW_FLUSHING instead from finish_frame().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701763
+
+2013-06-30 18:16:35 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: Don't return not-negotiated if flushing
+	  If the pad is flushing after a failed negotiation, return
+	  GST_FLOW_FLUSHING instead from finish_frame().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701763
+
+2013-06-14 07:23:40 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	* tests/check/libs/pbutils.c:
+	  pbutils: descriptions: Allow smart codec tag handling
+	  We already have internally the information on what type of stream (audio,
+	  video, container, subtitle, ...) a certain caps is.
+	  Instead of forcing callers to specify which CODEC_TAG category a certain
+	  caps is, use that information to make a smart choice.
+	  Does not break previous behaviour of gst_pb_utils_add_codec_description_to_tag_list
+	  (if tag is specified it will be used, if caps is invalid it will be rejected,
+	  ...).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702215
+
+2013-06-19 09:25:48 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/tag/gstxmptag.c:
+	  xmptag: Add a debug category
+	  Instead of using the default category
+
+2013-06-27 12:23:27 +0200  Patricia Muscalu <patricia@axis.com>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: do not leak lines
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703177
+
+2013-06-26 14:36:17 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst-libs/gst/rtp/gstrtpbasepayload.c:
+	  rtpbasepayload: Do not leak the event when segment is delayed
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703119
+
+2013-06-26 15:03:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: make read uncancelable when reading a message
+	  When we start to read a message, we need to continue reading until the end of
+	  the message or else we lose track and cause parse errors. Use a variable
+	  may_cancel to avoid cancelation after we read the first byte until we have
+	  the complete message.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703088
+
+2013-06-21 20:41:15 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Don't return not-negotiated if flushing
+	  If the pad is flushing after a failed negotiation, return GST_FLOW_FLUSHING.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701763
+
+2013-06-23 12:07:41 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/ogg/gstoggstream.c:
+	  ogg: The Daala headers are little endian, not big endian
+
+2013-06-23 10:30:02 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/ogg/gstoggmux.c:
+	* ext/ogg/gstoggstream.c:
+	  ogg: Add Daala support
+
+2013-06-21 19:04:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: Add VP9 description
+
+2013-06-17 08:58:13 +0200  Edward Hervey <edward@collabora.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Fix drop frame handling at startup
+	  In the unlikely case that the decoder drops a frame before the first
+	  input frame is outputted, use the input segment (since it wasn't
+	  carried over to the output segment yet)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702502
+
+2013-06-21 11:50:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: dispatch when initial buffer has data
+	  When we have data in the inital buffer, dispath the read function to read it
+	  even if the socket has no data to read.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702652
+
+2013-06-20 17:28:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: manage writer child source better
+	  Only add the write child source when we have something to write or else
+	  we will dispatch forever without doing anything.
 
 2013-06-19 13:21:45 +0200  Jonas Holmberg <jonashg@axis.com>
 
@@ -20,22 +291,714 @@
 	  prepend to the list (O(1)) and reverse the list before usage.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=702545
 
+2013-06-16 22:39:30 +0200  Branko Subasic <branko@axis.com>
+
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	* gst-libs/gst/rtp/gstrtpbuffer.h:
+	* tests/check/libs/rtp.c:
+	  rtpbuffer: add gst_rtp_buffer_get_payload_bytes
+	  The function gst_rtp_buffer_get_payload can not be used in Python
+	  because it lacks necessary length parameter. This patch adds a new
+	  function, gst_rtp_buffer_get_payload_bytes, to use from Python
+	  bindings. The new function has the advisory "Rename to:" annotation
+	  so it can replace the gst_rtp_buffer_get_payload whan creating
+	  bindings.
+	  The function gst_rtp_buffer_get_extension_bytes is also added. It wraps
+	  gst_rtp_buffer_get_extension_data which doesn't work in Python due to
+	  incomplete annotation and because it returns the length as number of
+	  32-bit words.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698562
+
+2013-06-17 16:34:26 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  audiobasesrc: add 2 missing gst_buffer_unmap () calls
+	  There are 2 missing calls to gst_buffer_unmap () in the error handling in
+	  create ().
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702467
+
+2013-06-17 16:02:41 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Fix the block diagram of deinterlace bin.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702465
+
+2013-06-13 11:08:20 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Emit {audio,text,video}-changed signals when pads are removed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=702195
+
+2013-06-11 15:22:50 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: Fix leaking of the chroma resample helper objects
+
+2013-06-10 14:43:35 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/playbin-complex.c:
+	  tests: add more unit test for playbin
+	  Add unit test for autoplugging of video_decoder/video_sink combination
+	  based on capsfeatures.
+
+2013-06-10 15:31:38 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: Make sure to set a sensible default port for the GSocketConnection
+	  Otherwise it will connect to port 0 if no port is given in the URI.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=701798
+
+2013-06-09 19:20:20 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Reject segments that have a different rate than the output segment
+	  adder does no rate conversion.
+
+2013-06-08 23:51:13 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: When activating a fixed sink, proxy error messages too
+	  If activating a fixed sink fails, everything will fail later anyway
+	  and we can just error out early.
+
+2013-06-08 23:34:53 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Improve autoplugging of decoder/sink combinations by trying to activate the sink
+	  And if that fails don't bother autoplugging that sink. Also gives
+	  us more accurate sink caps.
+
+2013-06-08 23:08:05 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Proxy the playbin context to the sinks
+
+2013-06-08 23:04:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Proxy sink messages if we activate a sink in playbin already
+	  This makes sure the application gets any context related messages and
+	  can do whatever is required to a) get the sink a context or b) share
+	  the context with other elements in the pipeline.
+	  The proxying is necessary because the sink is not a child element of
+	  playbin, but instead will at a later point be a child of some bin
+	  inside playsink.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700967
+
+2013-06-06 15:57:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Let serialize queries before caps events through
+	  Otherwise we're going to deadlock forever because no autoplugging
+	  happens without having caps, but caps can never be send because
+	  we're blocking.
+	  Serialized queries before caps should never be sent unless really
+	  necessary.
+
+2013-06-05 18:36:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.1.1 ===
+
+2013-06-05 17:58:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* common:
+	* configure.ac:
+	* docs/plugins/gst-plugins-base-plugins.args:
+	* docs/plugins/gst-plugins-base-plugins.hierarchy:
+	* docs/plugins/gst-plugins-base-plugins.interfaces:
+	* docs/plugins/gst-plugins-base-plugins.signals:
+	* docs/plugins/inspect/plugin-adder.xml:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	* docs/plugins/inspect/plugin-app.xml:
+	* docs/plugins/inspect/plugin-audioconvert.xml:
+	* docs/plugins/inspect/plugin-audiorate.xml:
+	* docs/plugins/inspect/plugin-audioresample.xml:
+	* docs/plugins/inspect/plugin-audiotestsrc.xml:
+	* docs/plugins/inspect/plugin-cdparanoia.xml:
+	* docs/plugins/inspect/plugin-encoding.xml:
+	* docs/plugins/inspect/plugin-gio.xml:
+	* docs/plugins/inspect/plugin-ivorbisdec.xml:
+	* docs/plugins/inspect/plugin-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-subparse.xml:
+	* docs/plugins/inspect/plugin-tcp.xml:
+	* docs/plugins/inspect/plugin-theora.xml:
+	* docs/plugins/inspect/plugin-typefindfunctions.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videorate.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	* docs/plugins/inspect/plugin-volume.xml:
+	* docs/plugins/inspect/plugin-vorbis.xml:
+	* docs/plugins/inspect/plugin-ximagesink.xml:
+	* docs/plugins/inspect/plugin-xvimagesink.xml:
+	* gst-libs/gst/audio/gstaudiopack-dist.c:
+	* gst-libs/gst/video/video-orc-dist.c:
+	* gst-libs/gst/video/video-orc-dist.h:
+	* gst-plugins-base.doap:
+	* gst/audioconvert/gstaudioconvertorc-dist.c:
+	* gst/videoconvert/gstvideoconvertorc-dist.c:
+	* gst/videoscale/gstvideoscaleorc-dist.c:
+	* gst/volume/gstvolumeorc-dist.c:
+	* po/af.po:
+	* po/az.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/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.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:
+	* win32/common/_stdint.h:
+	* win32/common/audio-enumtypes.c:
+	* win32/common/config.h:
+	* win32/common/video-enumtypes.c:
+	* win32/common/video-enumtypes.h:
+	  Release 1.1.1
+
+2013-06-05 16:20:38 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* po/af.po:
+	* po/az.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/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.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:
+	  Update .po files
+
+2013-06-05 15:14:43 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* common:
+	  Automatic update of common submodule
+	  From 098c0d7 to 01a7a46
+
+2013-06-04 17:49:55 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Change GST_WARNING to a GST_DEBUG
+	  It's completely normal for some decoders to queue 50-60 frames without
+	  it causing any problems, e.g. RPi.
+
+2013-06-01 09:05:16 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/audio/audio-info.c:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: Remove private copy of gst_audio_info_is_equal()
+	  And improve the public one a bit based on it.
+
+2013-05-30 16:00:35 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: remove functions added in GLib 2.34
+	  g_pollable_stream_read and g_pollable_stream_write were added in GLib 2.34,
+	  but Ubuntu 12.04 and Debian Wheezy still use GLib 2.32.
+	  Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=701316
+
+2013-05-30 18:48:19 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Add GstChildProxy interface for the sinkpads
+	  This allows to set the sinkpad properties more easily.
+	  Next step: Implement proper synchronization in adder, almost done!
+
+2013-05-30 18:41:22 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Hold object lock in setcaps a bit longer to prevent race conditions
+
+2013-05-30 14:57:04 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	  adder: Simplify segment event handling
+	  We don't care about upstream segments but generate our own. This
+	  makes the code more similar to videomixer again.
+
+2013-05-30 14:45:58 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Use gst_audio_info_is_equal() to check if we get the same caps
+
+2013-05-30 14:45:31 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/audio/audio-info.c:
+	* gst-libs/gst/audio/audio-info.h:
+	* win32/common/libgstaudio.def:
+	  audio: Add gst_audio_info_is_equal()
+
+2013-05-30 14:32:03 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	  adder: Don't calls gst_pad_set_caps() on sinkpads
+	  It doesn't make much sense and the CAPS query handling
+	  on the sinkpads should handle this.
+
+2013-05-30 12:57:11 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Set GAP flag on silence buffers we created
+
+2013-05-30 12:54:37 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	* gst/adder/gstadderorc-dist.c:
+	* gst/adder/gstadderorc-dist.h:
+	* gst/adder/gstadderorc.orc:
+	  adder: Remove caching of the processing function
+	  The compiler will generate a hashtable from the switch-case, and
+	  we need to call functions explicitely for the volume!=1.0 cases
+	  anyway.
+
+2013-05-30 12:46:56 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	* gst/adder/gstadderorc-dist.c:
+	* gst/adder/gstadderorc-dist.h:
+	* gst/adder/gstadderorc.orc:
+	  adder: Add support for per-stream volumes
+
+2013-05-30 12:21:06 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadderorc-dist.c:
+	* gst/adder/gstadderorc-dist.h:
+	* gst/adder/gstadderorc.orc:
+	  adder: Add optimized orc code for F64 processing
+
+2013-05-30 12:05:02 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: The output buffer must be readable and writable
+
+2013-05-30 12:02:53 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Add support for muting individual pads
+
+2013-05-30 11:45:10 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	  adder: Sync pad properties with the GstController
+
+2013-05-30 11:40:01 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	  adder: Add custom GstPad subclass to hold additional data and properties
+	  This will later allow to set per-stream volumes and mute status.
+
+2013-05-30 17:31:13 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtspconnection.h:
+	* win32/common/libgstrtsp.def:
+	  rtsp: add method to get the TLS connection
+
+2013-05-30 13:14:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: let the sockets be reffed by the connection
+	  Don't add an extra ref to the sockets but use that of the connection.
+	  Keep the connection around as an IOStream.
+
+2013-05-30 10:50:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: Cleanup the error path
+	  Make sure the watch is removed when we close the read socket because of
+	  an error.
+
+2013-05-30 10:45:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: cleanup the watch reset function
+
+2013-05-30 10:30:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: check if the streams are still active
+	  Don't try to read/write from an inactive stream. When we, for example,
+	  transfer the second connection in tunneling mode, we are not interested anymore
+	  on read/write activity on the old connection.
+
+2013-05-29 17:44:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: use child sources instead of using the sockets
+	  Use the source of the pollable input/output streams instead of
+	  accessing the sockets directly.
+
+2013-05-29 16:15:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: fix input/output streams for tunneling
+
+2013-05-29 15:27:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: don't use sockets for blocking
+	  Use the blocking and non-blocking API of the input/output streams instead
+	  of polling the sockets directly. This also allows us to simplify some
+	  code.
+
+2013-05-28 17:06:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtsptransport.c:
+	* gst-libs/gst/rtsp/gstrtsptransport.h:
+	* gst-libs/gst/rtsp/gstrtspurl.c:
+	  rtsp: add TLS support
+	  Add flag to select TLS in the transport.
+	  Enable TLS on the socketclient when we use a TLS uri.
+
+2013-05-28 16:45:00 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: use the input/output stream of clientconnection
+	  Don't use the raw sockets for RTSP communication but use the IOStream.
+	  This is needed if we are going to use TLS later.
+
+2013-05-28 11:16:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: set sockets non-blocking
+
+2013-04-05 16:50:48 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtsp: use GSocketClient for making connections
+	  Use the GSocketClient API for making connections with the server. This removes a
+	  bit of code and gives us the ability to do TLS later.
+
+2013-05-27 15:32:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  Revert "rtspconnection: Use a GSocketAddressNumerator to resolve the addresses"
+	  This reverts commit 15a0bb0a10dcbc99c7f52e28ec9d0395699851ae.
+	  We should be using GSocketClient
+
+2013-05-30 05:24:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: free tmplines correctly
+	  Keep track of how many tmplines we allocated and use that to free the
+	  correct amount of lines.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701234
+
+2013-05-29 10:33:48 -0600  Daniel Drake <dsd@laptop.org>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: pass translated color balance value to channel
+	  We found a case where untranslated values were being passed from the
+	  proxy to the underlying channel, causing bad color balance values
+	  in some setups.
+	  Thanks to Sebastian Dröge for clarifying how the code works, and
+	  suggesting the fix.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701202
+
+2013-05-29 10:15:36 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Don't take an extra reference to the custom stream combiners
+	  They are automatically reffed when added to the bin because they're
+	  already not floating anymore.
+
+2013-05-29 16:41:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/alsa/gstalsasrc.c:
+	  alsasrc: Dump some more debug output about the device configuration
+
 2013-05-29 16:39:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* ext/alsa/gstalsasink.c:
 	  alsasink: Update internal buffer/period times with the values that were configured on the device
 
+2013-05-29 10:37:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/playbin-complex.c:
+	* tests/check/elements/playbin-compressed.c:
+	  playbin: Rename compressed unit test to complex
+	  It's not really about compressed streams anymore, but also
+	  about stream switching and stream combiners.
+
+2013-05-29 10:35:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	* tests/check/elements/playbin-compressed.c:
+	  playbin: Set custom stream-combiners to NULL and unref before finalizing
+
+2013-05-28 10:59:22 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* tests/check/elements/playbin-compressed.c:
+	  playbin: Add playbin audio-stream-combiner test using adder
+
+2013-05-28 11:23:56 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Rename select to combine and selector to combiner in playbin
+
+2013-05-17 17:23:46 -0600  Brendan Long <b.long@cablelabs.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Add support for custom stream-combiners
+	  This allows to chose something else than input-selector
+	  for multiple audio/video/text streams, e.g. an adder could
+	  be used for audio.
+	  It is needed for example to implement some of the more
+	  advanced HTML5 video features.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698851
+
+2013-05-28 13:32:23 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Don't call autoplug-query on shutdown
+	  And remove leftover debug code
+
+2013-05-28 13:23:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: In autoplug-queries, add the actual decoder/parser/etc template caps
+	  Add the actual decoder/parser/etc caps at the very end to
+	  make sure we don't cause empty caps to be returned, e.g.
+	  if a parser asks us but a decoder is required after it
+	  because no sink can handle the format directly.
+
+2013-05-28 13:14:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Forward CONTEXT queries to the corresponding sink if we have one
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700967
+
+2013-05-28 13:08:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplaybin2.c:
+	  playbin: Refactor autoplug-query handling
+	  We now only check sinks and factories of the corresponding media
+	  type. It doesn't make sense to pass audio/subtitle caps to a video
+	  decoder.
+
+2013-05-28 13:06:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Block on serialized queries too
+	  Otherwise we will only block after the serialized, non-sticky event
+	  after the CAPS event or the first buffer. If we're waiting for another
+	  pad to finish autoplugging after we got final caps on this pad, it
+	  will mean that we will let the ALLOCATION query pass although the
+	  pad is not exposed yet.
+
+2013-05-28 12:03:49 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gsturidecodebin.c:
+	  decodebin: Pass the element in the autoplug-query signal too
+
+2013-05-28 11:40:51 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Need to lock the chain mutex in autoplug_query
+
+2013-05-28 11:36:58 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/playback/gstplaysinkconvertbin.c:
+	  playsinkconvertbin: Fix leak of the downstream caps filter
+
+2013-05-28 11:05:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Refactor autoplug-query handling a bit
+
+2013-05-27 14:53:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: Use a GSocketAddressNumerator to resolve the addresses
+	  Instead of just trying the first possible resolution we're trying all
+	  resolutions until one works.
+
+2013-05-27 13:04:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/theora/gsttheoradec.c:
+	  theoradec: Require caps to be set before data flow happens
+
+2013-05-27 11:53:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-orc.orc:
+	  video-format: fix NV16 unpack
+	  We can just use the NV12 functions, the only difference is the
+	  vertical subsampling.
+
+2013-05-27 11:25:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-chroma.h:
+	  video-chroma: add interlaced flag
+
+2013-05-17 16:34:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: run chroma resamplers
+	  Run the chroma upsampler after unpack and the chroma subsampler
+	  before pack for higher quality conversions and correct chroma siting.
+
+2013-05-17 16:26:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	* gst/videotestsrc/gstvideotestsrc.h:
+	* gst/videotestsrc/videotestsrc.c:
+	* gst/videotestsrc/videotestsrc.h:
+	  videotestsrc: subsample chroma before packing
+	  Run the chroma subsampler before packing.
+
+2013-05-17 16:22:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-chroma.c:
+	* gst-libs/gst/video/video-chroma.h:
+	* win32/common/libgstvideo.def:
+	  video-chroma: add chroma resampler
+	  Add functions to up/downsample chroma in horizontal and vertical
+	  directions. These functions work in-placeand are meant to be used on the
+	  input/output of the pack/unpack functions.
+
+2013-04-01 16:16:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-orc.orc:
+	  video: don't perform subsampling while packing
+	  Don't perform subsampling when packing but let this be done by a
+	  separate subsampling step.
+
+2013-04-01 16:05:40 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: reformat
+
+2013-05-17 15:45:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/Makefile.am:
+	* gst-libs/gst/video/video-chroma.c:
+	* gst-libs/gst/video/video-chroma.h:
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	  video: move chroma functions to separate file
+
+2013-05-17 15:41:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: actually use the input pixels
+	  Operate on the provided pixels array instead of the temp array.
+
+2013-05-17 15:40:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: fix docs
+
+2013-05-25 16:08:06 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Don't require an output state to be set before allocating output buffers
+
 2013-05-24 17:43:53 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
 	* gst/typefind/gsttypefindfunctions.c:
 	  typefind: Ensure we have enough data when reading the sync marker in the AAC/LOAS typefinder
 
-2013-07-05 00:47:08 +0100  Marcin Lewandowski <marcin@saepia.net>
+2013-05-24 16:52:50 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst-libs/gst/tag/id3v2frames.c:
-	  tag: ignore malformed ID3v2 TDAT frames
-	  Just skip them, don't cause criticals.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=703283
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audio: Always provide a buffer in gst_audio_(enc|dec)oder_allocate_output_buffer()
+	  We have no way of tell the caller of the exact error (e.g. if we're flushing),
+	  so will have to wait until the caller uses API that returns a GstFlowReturn,
+	  for example when pushing this buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700006
+
+2013-05-24 16:51:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  video: Always provide a buffer in gst_video_(enc|dec)oder_allocate_output_buffer()
+	  We have no way of tell the caller of the exact error (e.g. if we're flushing),
+	  so will have to wait until the caller uses API that returns a GstFlowReturn,
+	  for example when pushing this buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700006
 
 2013-05-24 13:41:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -49,33 +1012,187 @@
 	  Revert "decodebin2: use NO_RESYNC flag"
 	  This reverts commit 0feecef2754ef208372eb39332b4f6fa2067d3d5.
 
-2013-02-13 23:28:01 +0100  Matej Knopp <matej.knopp@gmail.com>
+2013-05-22 17:29:17 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
-	* gst-libs/gst/riff/riff-media.c:
-	  riffmedia: add systemstream to all mpeg video caps
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Use signal handler IDs instead of disconnecting by function
+	  This is cleaner and faster.
 
-2013-02-13 21:00:28 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-05-22 13:49:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Connect and disconnect the have-type signal of typefind before starting/shutting down
+
+2013-05-22 10:57:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/typefind/gsttypefindfunctions.c:
-	  typefinding: add parsed=true to mp3 and mpeg2 video ES caps
-	  Because we can, and that's also what we do for other formats.
+	  typefind: Add variant=itu to the h263 typefinder caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700770
 
-2013-02-13 11:25:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-05-21 16:35:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* tests/check/elements/decodebin.c:
-	  decodebin: Fix MP3 parser unit test
-	  The MP3 parser required fields on its caps that it
-	  didn't need and never got from (e.g.) typefind.
+	* gst/playback/gstplaysink.c:
+	  playsink: Use signal handler IDs instead of disconnecting/blocking by function
+	  This is cleaner and faster.
 
-2013-05-28 11:36:58 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+2013-05-07 07:49:00 +0200  Alexander Schrab <alexas@axis.com>
 
-	* gst/playback/gstplaysinkconvertbin.c:
-	  playsinkconvertbin: Fix leak of the downstream caps filter
+	* ext/alsa/gstalsasrc.c:
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  alsasrc: Make using driver timestamps possible
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699744
 
-2013-02-16 12:09:53 +0000  Tim-Philipp Müller <tim@centricular.net>
+2013-05-20 11:23:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst-libs/gst/audio/audio-info.h:
-	  audio: fix GST_AUDIO_INFO_ENDIANNESS macro
+	* ext/alsa/gstalsasrc.c:
+	  alsa: Dump min/max period time and buffer time in alsasrc too
+
+2013-05-17 09:16:08 +0200  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Make sure that memory is unmapped before releasing it
+	  Be sure that memory is unmapped before releasing it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700411
+
+2013-05-16 11:35:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	  video: make mask arguments to gst_video_format_from_masks() unsigned
+	  These should really be unsigned.
+
+2013-05-16 10:52:29 +0200  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* sys/ximage/ximagesink.c:
+	  ximagesink: add support for 32-bit RGB with alpha mask
+	  When X screen return a depth = 32 with bpp = 32, the alpha mask
+	  must be correctly set to have a known GStreamer video format.
+	  X visual structure doesn't provide the alpha mask information,
+	  but we can find it from the others masks.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700413
+
+2013-05-16 11:09:11 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/videoscale.c:
+	  tests: ignore new NV16 format in videoscale unit test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700377
+
+2013-05-16 10:52:29 +0200  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* gst-libs/gst/video/video-format.c:
+	  video: fix gst_video_format_from_masks() for little endian masks with alpha
+	  Need to byte-order swap the alpha mask as well in this case.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700413
+
+2013-05-16 09:07:46 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: set the initial memory size to the full size
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700427
+
+2013-05-15 18:20:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/video/video-orc-dist.c:
+	* gst-libs/gst/video/video-orc-dist.h:
+	  video: update disted orc backup files to fix build without liborc
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700400
+
+2013-05-15 17:15:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gsturidecodebin.c:
+	  playback: Only do a subset filtering for the factories if we have fixed caps
+	  Otherwise we're plugging a parser/converter currently and have unfixed caps.
+
+2013-05-15 14:51:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Return immediately from checking if a chain is complete if we're shutting down
+
+2013-05-15 14:47:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Hold the expose lock when freeing a chain
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700342
+
+2012-11-26 16:37:22 +0100  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-info.c:
+	* gst-libs/gst/video/video-orc.orc:
+	  video: add NV16 format
+	  This format is usually used by hardware video decoders for 4:2:2 sampling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700377
+
+2013-05-15 13:38:32 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Fix deadlock caused by lock order inversion
+	  First the source group lock, then the elements list lock.
+
+2013-05-15 11:03:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	  libvisual: Update visualizer baseclass from gst-plugins-bad
+
+2013-05-15 10:51:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 5edcd85 to 098c0d7
+
+2013-05-15 09:26:56 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/audio/audio-info.c:
+	  audio-info: Always pass NULL as position parameter to gst_audio_info_set_format()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700259
+
+2013-05-14 10:06:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gstsubtitleoverlay.c:
+	* gst/playback/gsturidecodebin.c:
+	  playback: Use subset checks instead of intersection
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700272
+
+2013-05-12 09:55:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+	* gst-libs/gst/rtp/gstrtpbasepayload.c:
+	  rtpbasepayload: Delay segment event after caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700222
+
+2013-05-14 09:34:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/audio/audio-info.c:
+	  audio-info: For more than 64 channels don't allow a channel layout
+	  More than 64 channels have all channels unpositioned.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=700259
+
+2013-05-10 12:29:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/adder.c:
+	* tests/check/elements/appsink.c:
+	* tests/check/elements/audioconvert.c:
+	* tests/check/elements/audiorate.c:
+	* tests/check/elements/audioresample.c:
+	* tests/check/elements/multifdsink.c:
+	* tests/check/elements/multisocketsink.c:
+	* tests/check/elements/subparse.c:
+	* tests/check/elements/textoverlay.c:
+	* tests/check/elements/videorate.c:
+	* tests/check/elements/volume.c:
+	* tests/check/elements/vorbisdec.c:
+	* tests/check/elements/vorbistag.c:
+	  tests: Fix event order and missing events
+
+2013-05-10 12:21:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/subparse/gstssaparse.c:
+	* gst/subparse/gstsubparse.c:
+	  subparse/ssaparse: Fix event handling and order
 
 2013-05-10 11:31:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -84,11 +1201,85 @@
 	  Internal state should only be reset on FLUSH_STOP, not FLUSH_START.
 	  Also forward pre-caps events immediately and don't queue them.
 
-2012-12-16 16:53:30 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+2013-05-10 11:24:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/typefind/gsttypefindfunctions.c:
-	  typefind: fix detection of HLS playlists with alternative renditions
-	  https://bugzilla.gnome.org/show_bug.cgi?id=699923
+	* ext/ogg/gstoggmux.c:
+	  oggmux: Make sure to always set caps on the srcpad and always send a segment event
+	  Even if the srcpad is not linked at this point, it might be linked as result of
+	  setting the caps.
+
+2013-05-10 09:28:52 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* ext/ogg/gstoggmux.c:
+	  oggmux: don't send a segment event before the caps event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699971
+
+2013-05-09 23:30:33 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: don't set the list to NULL after taking its address
+
+2013-05-09 18:02:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/playbin-compressed.c:
+	  playbin-compressed: Fix unit test
+
+2013-05-08 20:31:00 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: Reset base timestamp and out_frame_count in any case on SEGMENT_EVENT
+	  Fixes #699187
+
+2013-05-09 15:42:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Make sure to push any pre-caps events before the caps are set
+
+2013-05-09 15:34:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Make sure to not push any post-caps events before we have caps
+	  and that we push pre-caps events before we push caps, even if we don't
+	  have a GstVideoFrame yet.
+
+2013-05-09 15:05:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin2: Chose more balanced metric to compare ranks of decoder/sink combinations
+
+2013-05-09 10:40:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/theora/gsttheoradec.c:
+	  theoradec: Set DECODE_ONLY flag on all header packets
+
+2013-05-09 10:37:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  Revert "videodecoder: If a frame is to be dropped, don't update timestamps"
+	  This reverts commit c9c5cd8eef499ba08e08898bda71183e39d570ea.
+
+2013-05-09 08:54:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: If a frame is to be dropped, don't update timestamps
+
+2013-05-08 21:27:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Fix infinite loop in GSequence iteration code
+
+2013-05-08 15:56:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audio: Make sure to push pre-caps events before the caps event
+
+2013-05-08 15:50:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  video: Make sure to push pre-caps events before the caps event
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699894
 
 2013-05-08 14:52:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -99,6 +1290,45 @@
 	  goes to PAUSED.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=699794
 
+2013-05-06 22:05:04 +0200  Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
+
+	* ext/ogg/gstoggmux.c:
+	  oggmux: The best pad can't be EOS
+	  The problem experienced is that the EOS was never emitted by oggmux during a
+	  rendering with GES. The proposed patch checks if the pad is EOS before deciding
+	  it's the "best pad".
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699792
+
+2012-12-16 16:53:30 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: fix detection of HLS playlists with alternative renditions
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699923
+
+2013-05-07 14:42:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Use the GSequence more efficiently
+	  This makes it possible to take advantage of the O(log n) lookups
+	  of GSequence on the ~1000 element lists and only do iterations
+	  on <10 element lists. Previously the code iterated over ~1000 element
+	  lists multiple times.
+
+2013-05-02 00:01:17 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Use GSequence instead of GList to store the GstAVElement list.
+	  The GstAVElement list might be big. Use GSequence to optimize it.
+
+2013-04-29 22:17:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: autoplug the audio/video decoders and sinks based on capsfeatures.
+	  Autoplug the decoder elements and sink elements based on
+	  the number of common capsfeatures if the ranks are the same.
+	  This will also helps to autoplug the h/w_decoder and h/w_renderer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=698712
+
 2013-05-07 15:00:05 +0200  Julien Moutte <julien@moutte.net>
 
 	* gst-libs/gst/riff/riff-media.c:
@@ -123,107 +1353,126 @@
 	* ext/theora/gsttheoraenc.c:
 	  theoraenc: Fix error handling when reading or writing multipass cache data fails
 
+2013-05-06 15:47:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Expose pads when they receive EOS before any buffers
+	  Stops decodebin from waiting forever to expose a pad if there
+	  is never data on it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691072
+
 2013-05-03 16:24:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst-libs/gst/riff/riff-media.c:
 	  riff: wma can have more than 6 channels
 	  Some versions anyway.
 
+2013-05-03 15:49:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/vorbis/gstvorbisdeclib.c:
+	  vorbis: Fix compilation after function rename
+
+2013-05-03 14:16:33 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* ext/vorbis/gstvorbisdec.c:
+	* ext/vorbis/gstvorbisdeclib.c:
+	* ext/vorbis/gstvorbisdeclib.h:
+	  vorbis: prefix get_copy_sample_func and fix duplicated symbols
+
+2013-05-03 14:13:18 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* ext/vorbis/gstvorbisdeclib.h:
+	  ivorbisdec: fix duplicated symbols with vorbisdec
+
+2013-05-03 11:23:59 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: don't touch the GstMemory size
+	  mem.size is the content size and should not be touch.
+	  Save the mmap size instead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699566
+
+2013-05-03 11:12:04 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: fix memory initialization
+	  Without this the shared memory is broken
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699565
+
+2013-05-03 11:29:05 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: fix formating
+
+2013-05-02 15:37:14 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: handle mmap failure
+	  Otherwise gstreamer may segfault trying to access MAP_FAILED.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=699470
+
 2013-05-02 23:41:02 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* ext/pango/gsttextrender.c:
 	  textrender: actually fixate output caps when fixating output caps
 
+2013-04-12 21:01:53 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* ext/ogg/Makefile.am:
+	  ogg: fix duplicated symbols with schroedinger
+
 2013-05-01 00:15:38 +0100  Thibault Saunier <thibault.saunier@collabora.com>
 
 	* gst/encoding/gststreamsplitter.c:
 	  streamsplitter: Keep srcpad alive while querying peer
 
-=== release 1.0.7 ===
+2013-04-28 20:07:47 +0200  Thibault Saunier <thibault.saunier@collabora.com>
 
-2013-04-26 12:35:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/adder/gstadder.c:
+	  adder: Get collectpad stream lock when fowarding flush events
+	  Fixes #698410
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* gst-libs/gst/audio/gstaudiopack-dist.c:
-	* gst-libs/gst/audio/gstaudiopack-dist.h:
-	* gst-libs/gst/video/video-orc-dist.c:
-	* gst-libs/gst/video/video-orc-dist.h:
-	* gst-plugins-base.doap:
-	* gst/adder/gstadderorc-dist.c:
-	* gst/adder/gstadderorc-dist.h:
-	* gst/audioconvert/gstaudioconvertorc-dist.c:
-	* gst/audioconvert/gstaudioconvertorc-dist.h:
-	* gst/videoconvert/gstvideoconvertorc-dist.c:
-	* gst/videoconvert/gstvideoconvertorc-dist.h:
-	* gst/videoscale/gstvideoscaleorc-dist.c:
-	* gst/videoscale/gstvideoscaleorc-dist.h:
-	* gst/videotestsrc/gstvideotestsrcorc-dist.c:
-	* gst/videotestsrc/gstvideotestsrcorc-dist.h:
-	* gst/volume/gstvolumeorc-dist.c:
-	* gst/volume/gstvolumeorc-dist.h:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Release 1.0.7
+2013-01-16 09:50:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-2013-04-26 12:35:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefindfunctions: minor SSA typefinder clean-up
+	  Remove code that doesn't make sense as it is. If there's
+	  a 2-byte UTF-16 BOM or a 4-byte UTF-32 BOM, the following
+	  text won't be 8-bit ASCII.
 
-	* po/af.po:
-	* po/az.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/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.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:
-	  Update .po files
+2013-04-26 11:00:10 +0200  Rico Tzschichholz <ricotz@t-online.de>
 
-2012-11-21 10:28:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+	* docs/plugins/Makefile.am:
+	  docs: Drop missing gsttcp-enumtypes.h to fix build
+	  In addition to 7f6e1bdfdb2aad1694c24d3887f30e00f0c4c2e3
 
-	* gst/playback/gstplayback.c:
-	* gst/playback/gststreamsynchronizer.c:
-	* gst/playback/gststreamsynchronizer.h:
-	  streamsynchronizer: Make the element public
-	  https://bugzilla.gnome.org/show_bug.cgi?id=688240
+2013-04-26 10:10:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2013-03-31 12:55:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: use setter for the bandwidth
 
-	* gst/playback/gststreamsynchronizer.c:
-	  streamsynchronizer: update position for reverse
-	  When doing reverse playback the positino advances from timestamp_end to
-	  timestamp.
+2013-04-25 21:10:04 +0200  Sebastian Rasmussen <sebrn@axis.com>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: Store a copy of the bandwidth string
+	  Otherwise we will free a string later that does not belong to us.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=698888
+
+2013-04-25 17:04:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Use the fallback GstMemory copy function instead of our own
+	  dup() on a dmabuf only gives a new handle, not a copy, thus doesn't
+	  do what copy() is supposed to do.
+
+2013-04-25 16:23:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Try harder to push writable buffers downstream
+	  For this release the corresponding GstVideoCodecFrame before
+	  pushing the buffer. The buffer will now be writable unless
+	  the subclass still holds another reference to the buffer or
+	  the frame.
 
 2013-04-25 16:13:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -234,14 +1483,62 @@
 	  the subclass still holds another reference to the buffer or
 	  the frame.
 
-2013-04-25 16:23:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-04-25 09:20:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst-libs/gst/video/gstvideoencoder.c:
-	  videoencoder: Try harder to push writable buffers downstream
-	  For this release the corresponding GstVideoCodecFrame before
-	  pushing the buffer. The buffer will now be writable unless
-	  the subclass still holds another reference to the buffer or
-	  the frame.
+	* gst/tcp/Makefile.am:
+	* gst/tcp/gstmultifdsink.c:
+	* gst/tcp/gstmultihandlesink.c:
+	* gst/tcp/gstmultisocketsink.c:
+	* gst/tcp/gsttcp-marshal.list:
+	* gst/tcp/gsttcp.h:
+	* gst/tcp/gsttcpserversink.c:
+	  tcp: Use the generic marshaller instead of generating custom ones
+
+2013-04-25 09:05:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/tcp/gsttcpserversink.c:
+	* gst/tcp/gsttcpserversrc.c:
+	  tcp: Add FIXME comment for 2.0 to rename "host" to "bind-address" for the server elements
+
+2013-04-24 14:13:43 +0200  Patricia Muscalu <patricia at axis.com>
+
+	* tests/check/libs/sdp.c:
+	  tests: add SDP modify test
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=698558
+
+2013-04-24 14:12:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/sdp.c:
+	  tests: avoid sdp boxed test leak
+
+2013-04-24 14:12:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: don't leak the temp buffer
+
+2013-04-24 14:11:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: NULL terminate the time array
+
+2013-04-24 13:57:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	  docs: add new sdp methods to docs
+
+2013-04-24 13:50:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstsdp.def:
+	  def: update with new sdp symbols
+
+2013-04-23 15:23:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	* gst-libs/gst/sdp/gstsdpmessage.h:
+	  sdp: add more functions to modify the sdp message
+	  Add functions to insert, replace and remove various sdp message fields
+	  and structures.
+	  See: https://bugzilla.gnome.org/show_bug.cgi?id=698558
 
 2013-04-24 11:10:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -255,6 +1552,80 @@
 	  streamsynchronizer: Create element with gst_element_factory_make()
 	  Otherwise plugin_init() is not called and initialization is missing.
 
+2013-04-24 00:08:15 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefindfunctions: fix crash in new MSS typefinder
+	  Fixes icydemux test_first_buf_offset_when_merged_for_typefinding
+	  unit test segfaulting on a NULL pointer.
+
+2013-03-06 16:44:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: also remove the bytes limit
+	  Remove the byte limit for adaptive http streaming. Because some fragments might
+	  be very big, we might need a lot of buffering. I also suspect another problem
+	  where data is actually missing and things go out of sync somehow.
+
+2013-03-04 16:19:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: update buffer size in multiqueue
+	  When we disable buffering in the more upstream multiqueue elements,
+	  we need to also update the queue limits. In particular, the max_size_time should
+	  be set to 0 or else we might simply deadlock.
+
+2013-02-06 08:41:19 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: only allow 'lower' multiqueues to emit buffering messages
+	  When we have a scenario of demuxers linked to demuxers, decodebin2
+	  will create multiqueue at different levels of the pipeline. The problem
+	  is that only the lowest multiqueue's should do the buffering messaging,
+	  as they will handle with the raw streams data.
+	  When all multiqueues are doing buffering, the upper ones can handle
+	  large buffers that easily fill them, moving from 0% to 100% from
+	  buffer to buffer, causing too much buffering messages to be posted.
+	  This hangs the pipeline unnecessarily and might lead to deadlocks.
+
+2013-02-06 11:09:52 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: do not handle the next-groups list as if it was a single item
+	  Decodebin2's chains store a next_groups list that was being handled as
+	  it could only have a single element. This is true for most of the
+	  chaining streams scenarios where streams change not very often.
+	  In more stressfull changing scenarios, like adaptive streams, those
+	  changes can happen very often, and in short time intervals. This could
+	  confuse decodebin2 as this list was always being used as a single
+	  element list.
+	  This patches makes it handle as a real list, using iteration instead
+	  of picking the first element as the correct one always.
+
+2013-02-01 17:50:36 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: preserve next groups order
+
+2013-01-09 18:39:49 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: still report chain as drained when not 'handled'
+	  Even if the chain hasn't been 'handled' in this switching round,
+	  report it as drained so upper chains/groups know abou it.
+	  This makes switching happen on upper levels of the groups/chain
+	  trees
+
+2013-04-11 09:47:51 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: add smoothstreaming manifest typefinding
+	  Checks if the received XML is a smoothstreaming manifest
+	  in both UTF8 and UTF16 formats. The check is made for a
+	  SmoothStreamingMedia top level element.
+	  Conflicts:
+	  gst/typefind/gsttypefindfunctions.c
+
 2013-04-23 13:54:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/playback/gststreamsynchronizer.c:
@@ -268,37 +1639,115 @@
 	  This fixes enabling visualizations after the audio stream already started.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=697820
 
+2013-04-22 23:51:08 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* MAINTAINERS:
+	* README:
+	* README.static-linking:
+	* common:
+	  Automatic update of common submodule
+	  From 3cb3d3c to 5edcd85
+
+2013-04-21 19:02:42 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/gstaudiopack-dist.c:
+	* gst-libs/gst/audio/gstaudiopack-dist.h:
+	* gst-libs/gst/video/video-orc-dist.c:
+	* gst-libs/gst/video/video-orc-dist.h:
+	* gst/adder/gstadderorc-dist.c:
+	* gst/adder/gstadderorc-dist.h:
+	* gst/audioconvert/gstaudioconvertorc-dist.c:
+	* gst/audioconvert/gstaudioconvertorc-dist.h:
+	* gst/videoconvert/gstvideoconvertorc-dist.c:
+	* gst/videoconvert/gstvideoconvertorc-dist.h:
+	* gst/videoscale/gstvideoscaleorc-dist.c:
+	* gst/videoscale/gstvideoscaleorc-dist.h:
+	* gst/videotestsrc/gstvideotestsrcorc-dist.c:
+	* gst/videotestsrc/gstvideotestsrcorc-dist.h:
+	* gst/volume/gstvolumeorc-dist.c:
+	* gst/volume/gstvolumeorc-dist.h:
+	  Update disted orc backup files
+	  Generated with 0.4.17 now.
+
+2013-04-21 17:24:55 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/playback/gsturidecodebin.c:
+	  uridecodebin: don't report 'no uri handler found' if the URI was rejected by a source
+	  If a source element could be created for a URI, but all elements rejected
+	  the URI for some reason, propagate the error from the URI handler instead
+	  of reporting a 'no uri handler found for protocol xyz' error, which is
+	  confusing. Fixes error reporting with dvb:// URIs when the channel config
+	  file could not be found or not be parsed or the channel isn't listed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=678892
+
+2013-04-19 17:59:56 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	* tests/check/elements/adder.c:
+	  adder: Do not try to wait for flush_stop after receiving a segment event
+	  + Add a simple test
+
+2013-04-18 07:55:56 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/volume/gstvolume.c:
+	  volume: skip controlled processing if we have no timestamp
+
+2013-04-18 12:07:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: use _plugin_feature_rank_compare API instead of duplicating the code.
+
+2013-04-18 12:03:29 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: use _plugin_feature_rank_compare API instead of duplicating the code.
+
 2013-04-18 09:58:09 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst-libs/gst/video/gstvideoencoder.c:
 	  videoencoder: Simply setcaps function
 
-2013-04-18 09:54:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst-libs/gst/audio/gstaudiodecoder.c:
-	  audiodecoder: Ignore caps events if the input caps did not change
-
 2013-04-18 09:54:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudioencoder.c:
 	  audioencoder: Ignore caps events if the input caps did not change
 
-2013-04-10 20:45:37 +0100  Tom Greenwood <tcdgreenwood@hotmail.com>
+2013-04-18 09:54:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
-	  rtpbasedepayload: Ignore caps events if the caps did not change
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697672
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Ignore caps events if the input caps did not change
 
-2013-04-15 09:42:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-04-17 07:51:38 +0200  Stefan Sauer <ensonic@users.sf.net>
 
-	* gst-libs/gst/video/gstvideoencoder.c:
-	  videoencoder: Ignore caps events if the caps did not change
+	* ext/ogg/gstoggmux.c:
+	  oggmux: add more logging and fix the object param for some logging
+	  Use data->pad instead of pad for 'object'. Reduce indentation depth in a helper
+	  with an early return.
 
-2013-04-10 19:07:00 +0100  Tom Greenwood <tcdgreenwood@hotmail.com>
+2013-04-17 10:35:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst-libs/gst/video/gstvideodecoder.c:
-	  videodecoder: Ignore caps events if the caps did not change
-	  https://bugzilla.gnome.org/show_bug.cgi?id=697672
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: Extend GstVideoGLTextureUploadMeta
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697112
+
+2013-04-17 09:23:20 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/audio/audio-format.h:
+	  docs: add some more audio macros
+
+2013-03-28 14:21:41 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/playback/gsturidecodebin.c:
+	  uridecodebin: query bandwidth capability to source element
+	  Use a scheduling query to check if the source element has some
+	  bandwidth limitations. If this is the case on-disk buffering might be
+	  used. If the source element doesn't handle the scheduling query then
+	  fallback to checking the URI protocol against the hardcoded list of
+	  protocols known to handle buffering already.
+	  Fixes bug 693484.
 
 2013-04-16 14:09:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -337,26 +1786,162 @@
 	* sys/xvimage/Makefile.am:
 	  gst: Add better support for static plugins
 
-2013-03-22 13:41:17 +0100  Paul HENRYS <visechelle@gmail.com>
+2013-04-15 15:37:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/audio/gstaudiobasesrc.c:
-	  audiobasesrc: Fix ringbuffer handling when settings caps
-	  ringbuffer was released after setting values to its spec field
-	  in gst_audio_base_src_setcaps(). This led to failure in case
-	  gst_audio_base_src_setcaps() is called more than one time.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696540
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: dynamically allocate buffers
+	  Remove the static maximum buffer size and replace with dynamic allocation of as
+	  much bytes as needed. Also avoids doing large allocations on the stack.
+
+2013-04-15 14:25:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	  sdp: add Since markers
+
+2013-04-12 09:35:34 +0200  Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	* gst-libs/gst/sdp/gstsdpmessage.h:
+	* tests/check/Makefile.am:
+	* tests/check/libs/.gitignore:
+	* tests/check/libs/sdp.c:
+	* win32/common/libgstsdp.def:
+	  sdp: add boxed type for GstSDPMessage
+	  Also added some tests of this improvement.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697808
+
+2013-04-09 22:07:15 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add format=WMV3 for WMV 3 caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697665
+
+2013-04-15 12:37:07 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: use ascending order for name based sorting of pluginfeatures.
+	  The compare_factories_func() should return negative value
+	  if the rank of both PluginFeatures are equal and the name of
+	  first PluginFeature comes before the second one (== ascending order).
+
+2013-04-15 12:20:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: use ascending order for name based sorting of pluginfeatures.
+	  The _decode_bin_compare_factories_func() should return negative
+	  value if the rank of both PluginFeatures are equal and the name of
+	  first PluginFeature comes before the second one (== ascending order).
+
+2013-04-15 10:13:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audioringbuffer: Also reset segbase
+
+2013-04-10 16:38:14 +0200  Paul HENRYS <visechelle@gmail.com>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audioringbuffer: Reset segdone when releasing audioringbuffer
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697723
+
+2013-04-10 20:45:37 +0100  Tom Greenwood <tcdgreenwood@hotmail.com>
+
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	  rtpbasedepayload: Ignore caps events if the caps did not change
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697672
+
+2013-04-15 09:42:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Ignore caps events if the caps did not change
+
+2013-04-10 19:07:00 +0100  Tom Greenwood <tcdgreenwood@hotmail.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Ignore caps events if the caps did not change
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697672
+
+2013-04-15 08:38:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/ogg/dirac_parse.c:
+	* ext/ogg/dirac_parse.h:
+	* ext/ogg/gstoggstream.c:
+	* ext/ogg/vorbis_parse.c:
+	* ext/ogg/vorbis_parse.h:
+	  ogg: Prevent some symbol conflicts between the ogg plugin and schroedinger
+
+2013-04-14 17:54:43 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 2736592 to 3cb3d3c
+
+2013-04-14 17:26:13 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From aed87ae to 2736592
 
 2013-04-12 11:49:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/playback/gstplaybin2.c:
 	  playbin: fix jpeg passthrough to decoder sinks by marking image/* as video stream
 
+2013-04-12 11:50:53 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* tests/check/elements/adder.c:
+	  tests: avoid assert in adder test if no audio sources work
+	  The array of factories should not contain a NULL element at the end
+	  since the number of arguments is determined via G_N_ELEMENTS and the
+	  NULL will be used as an argument to gst_element_factory_make() if
+	  the other sources in the list weren't usable.
+
 2013-04-11 13:25:51 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
 
 	* gst-libs/gst/video/gstvideometa.c:
 	  videometa: gst_buffer_add_meta() can return NULL
 	  https://bugzilla.gnome.org/show_bug.cgi?id=697824
 
+2013-04-09 20:59:51 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 04c7a1e to aed87ae
+
+2013-04-09 12:27:48 +0200  Alexander Schrab <alexas@axis.com>
+
+	* sys/ximage/ximagepool.c:
+	  ximagesink: Fix coompiler error without HAVE_XSHM
+	  https://bugzilla.gnome.org/show_bug.cgi?id=697628
+
+2013-04-09 14:04:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/videoscale.c:
+	  videoscale: Fix unit test after latest videoconvert changes
+
+2013-04-09 13:59:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/videoconvert.c:
+	  videoconvert: Fix unit test after latest videoconvert changes
+
+2013-04-08 09:09:33 +0200  Thomas Scheuermann <Thomas.Scheuermann@barco.com>
+
+	* gst-libs/gst/rtsp/gstrtspurl.c:
+	  rtsp: Don't use / as path if no path was provided
+	  RTSP does not mandate that a non-zero-length path is used and
+	  some devices (e.g. IQinVision IQeye 1080p) requires that a
+	  zero-length path is used.
+
+2013-04-08 08:29:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/videoscale/gstvideoscale.c:
+	  videoscale: Allow passthrough for ANY caps features
+
+2013-04-08 08:15:15 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/videoconvert/gstvideoconvert.c:
+	  videoconvert: Allow passthrough for ANY caps features
+
 2013-04-06 13:00:02 -0700  David Schleef <ds@schleef.org>
 
 	* gst/videoscale/gstvideoscale.c:
@@ -376,6 +1961,37 @@
 	  sdp: Set session as permanent (t=0 0) if there is no time information
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697277
 
+2012-09-11 19:41:31 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	  audiovisualizer: Don't try to sync controller values to invalid timestamp
+
+2013-04-04 18:18:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: don't push on NOT_LINKED pads
+	  If our previous flow return was NOT_LINKED, don't try to push on the pads some
+	  more. If we get a RECONFIGURE event on the pad, try to push on it again.
+
+2013-04-04 15:00:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: forward all sticky events to decodepad
+	  Forward all sticky events to the decodepad before exposing the pads. This makes
+	  sure all sticky events are on the exposed pad.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696915
+
+2013-04-04 14:53:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: debug sticky events on exposed pads
+
+2013-04-04 14:37:15 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: small cleanup
+	  Take the event from the probe just once.
+
 2013-04-04 12:32:24 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/rtsp/gstrtspconnection.c:
@@ -393,6 +2009,13 @@
 	  to itself and fail.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697092
 
+2013-03-30 17:39:39 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst-libs/gst/video/gstvideofilter.c:
+	  videofilter: add caps to pool config
+	  Does not cause problems but it fixes a warning in the log.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696916
+
 2013-03-30 11:00:35 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>
 
 	* ext/ogg/gstoggdemux.c:
@@ -421,11 +2044,290 @@
 	  As specified in rfc4566 email line is optional
 	  See https://bugzilla.gnome.org/show_bug.cgi?id=697162
 
-2013-03-24 00:38:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2013-04-02 23:40:13 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/video/video-format.h:
+	  docs: add since marker for new video API
+
+2013-04-02 22:50:25 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: add description for TrueHD audio
+
+2013-03-28 23:02:11 +0100  David Svensson Fors <davidsf@axis.com>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  rtsprange: use gst_util_gdouble_to_guint64 in get_seconds
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696818
+
+2013-03-14 11:15:29 +1100  Matthew Waters <ystreet00@gmail.com>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	  visualizer: handle non-existant pool in the default allocation query
+	  gst_query_set_nth_allocation_pool() requires there to be a pool in the
+	  query already. This is not always the case when we get the query from
+	  upstream.  Use gst_query_add_allocation_pool() instead in such case.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=681719
+
+2013-04-01 10:21:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.h:
+	  video-format: Add GST_VIDEO_CAPS_MAKE_WITH_FEATURES() macro
+
+2013-04-01 10:21:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: Add caps feature #defines for video and GL texture upload meta
+
+2013-03-31 18:54:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: mark keyframes
+	  Use the mapper to set the delta-unit flag.
+
+2013-03-31 17:37:01 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/vorbistag.c:
+	* tests/check/libs/video.c:
+	  tests: fix some printf format compiler warnings
+
+2013-03-31 18:29:07 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: always send the new buffer to parse functions
+	  When we get a new buffer, always call the parse function, even if it is a 0
+	  sized buffer. For theora we need to also decode 0 sized buffers.
+	  Ideally we would like to make theoradec be packetized but that fails currently
+	  because of oggdemux and because of the assumptions that the base class makes.
+
+2013-03-31 18:28:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/theora/gsttheoradec.c:
+	  theoradec: handle empty adapter
+	  Should not be empty but might be when we actually pass and decode the 0 packets
+	  later.
+
+2013-02-25 10:49:19 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/theora/gsttheoraenc.c:
+	  theoraenc: do not reset the encoder when we need a keyframe
+	  Instead, remember we need a keyframe, and we will force the encoder
+	  to emit one next time we submit a new frame.
+	  Since libtheora does not have an API to request a keyframe, we reset
+	  the max keyframe interval to 1 temporarily.
+	  This has the advantage that the rate control keeps its history,
+	  and that the encoder won't choose different quant tables or
+	  somesuch, thus requiring new streamheaders (although this is
+	  probably only a theoretical possibility). Should also be a
+	  bit faster than resetting the encoder.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663350
+
+2013-03-31 13:46:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: don't make negative timestamp
+	  Clamp timestamp interpollation to 0 to avoid going negative. This should not
+	  happen, really, but until the interpolation is improved this seems better.
+
+2013-03-31 12:55:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gststreamsynchronizer.c:
+	  streamsynchronizer: update position for reverse
+	  When doing reverse playback the positino advances from timestamp_end to
+	  timestamp.
+
+2013-03-28 15:20:19 +0100  Edward Hervey <edward@collabora.com>
+
+	* gst/encoding/gstencodebin.c:
+	* tests/check/elements/encodebin.c:
+	  encodebin: Add action signal to get pad for a given profile
+	  This allows getting a pad for a specific encoding profile, which can
+	  be useful when there are several stream profiles of the same type.
+	  Also update the encodebin unit tests so that we check that the returned
+	  pad has the right caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689845
+
+2013-03-30 17:20:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: use one matrix function
+	  Use only one matrix function pointer, let the implementation cast the pixels to
+	  the right size.
+
+2013-03-29 11:48:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: use one temp array for lines
+	  Use only one temporary array for pixels.
+
+2013-03-30 19:13:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: forward stream-start immediately
+
+2013-03-30 19:07:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: forward stream-start immediately
+
+2013-03-30 17:17:04 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Remove GstdecodePads that are not going to be exposed
+	  This makes sure that they're unlnked and don't cause any errors or
+	  block the pipeline.
+
+2013-03-30 12:15:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Ignore caps from audio/video sink factories if there are fixed sinks already
+
+2013-03-30 12:08:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Some code cleanup
+
+2013-03-30 12:00:35 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-docs.sgml:
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	  docs: Add some documentation that was missing before
+
+2013-03-30 11:25:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: Handle caps queries from unlinked elements
+	  Pass them to all possible sinks and the current sinks to
+	  allow elements to chose a more optimal initial caps.
+
+2013-03-29 18:27:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gsturidecodebin.c:
+	  decodebin: Add autoplug-query signal to handle queries for yet unconnected elements
+	  This allows playbin to answer the CAPS query with the possible sink
+	  caps for example, and allows decoders to chose more optimal caps.
+
+2013-03-30 10:25:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	* win32/common/libgstvideo.def:
+	  decodebin: Don't add a children to a decode group twice
+	  This can happen if a demuxer does not provide fixed caps from the
+	  beginning but only sets them later.
+
+2013-03-29 16:05:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  pbutils: Fix the documentation build warning.
+
+2013-03-30 09:39:32 +0100  Josep Torra <n770galaxy@gmail.com>
+
+	* sys/xvimage/xvimageallocator.c:
+	  xvimagesink: fix debug message printf format compiler warning
+
+2013-03-29 17:14:09 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: fix a comment typo from previous commit
+
+2013-03-29 16:55:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: Add documentation for GstVideoGLTextureUploadMeta
+
+2013-03-29 16:44:17 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestssrc: truncate the seek pos to the sample and round the time
+	  Before it was done the other way around and that can trigger the assert that
+	  already is in place. This also makes more sense; when seeking to time x, we want
+	  then sample that is <= that pos.
+
+2013-03-29 16:37:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: Implement copying of GstVideoGLTextureUploadMeta
+
+2013-03-29 14:46:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	  videometa: API: Add GstVideoGLTextureUploadMeta
+	  This allows elements to specify a function to upload
+	  a buffer content to a specific OpenGL texture ID. It
+	  could be used by the vaapi elements to provide a way
+	  for eglglessink or WebKit to upload a VA surface to
+	  an GL texture without the respective sinks knowing
+	  anything about VA.
+
+2013-03-29 11:47:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/elements/adder.c:
+	  adder: cleanup and reenable adder live source test
+	  The test now passed a few rounds of nice -n19 make elements/adder.torture.
+
+2013-03-25 16:46:29 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: api doc fixes.
+
+2013-03-28 18:16:09 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: respect the pack_lines when packing
+	  Packing is supposed to happen on the amount of lines specified in the format
+	  info. It's currently all set to 1 but that will change.
+
+2013-03-28 18:13:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/videoconvert/gstvideoconvert.c:
-	  videoconvert: avoid double free
-	  Set variable to NULL after free so that we don't free twice.
+	  videoconvert: be smarter when selecting a conversion
+	  Try to select the conversion that would result in the minimal amount of quality
+	  loss. Quality loss is calculated rather arbitrarily but it avoids doing
+	  something really stupid in most cases.
+
+2013-03-27 19:37:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: small cleanup
+
+2013-03-28 12:35:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/playback/gsturidecodebin.c:
+	  uridecodebin: remove commented code
+	  This is dead since ~6 years.
+
+2013-03-12 08:10:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: simplify the caps
+	  Drop channel-mask as we only do mon/stereo and channel-mask is optional in these
+	  cases.
+
+2013-03-25 13:41:13 +0300  Anton Belka <antonbelka@gmail.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/riff/riff-ids.h:
+	  riff: add "note" tag
+	  Add GST_RIFF_TAG_note for wavparse.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696549
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696550
+
+2013-03-22 13:41:17 +0100  Paul HENRYS <visechelle@gmail.com>
+
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  audiobasesrc: Fix ringbuffer handling when settings caps
+	  ringbuffer was released after setting values to its spec field
+	  in gst_audio_base_src_setcaps(). This led to failure in case
+	  gst_audio_base_src_setcaps() is called more than one time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696540
 
 2013-03-25 09:59:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
@@ -434,45 +2336,50 @@
 	  We only look at the interlaced buffer flag in mixed mode, in other modes we
 	  always need to set the interlaced flag.
 
-=== release 1.0.6 ===
+2013-03-24 20:44:58 +0000  Simon Berg <ksb@kth.se>
 
-2013-03-22 12:58:20 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: fix rounding errors that might cause segments to be one sample too short
+	  https://bugzilla.gnome.org/show_bug.cgi?id=676884
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-adder.xml:
-	* docs/plugins/inspect/plugin-alsa.xml:
-	* docs/plugins/inspect/plugin-app.xml:
-	* docs/plugins/inspect/plugin-audioconvert.xml:
-	* docs/plugins/inspect/plugin-audiorate.xml:
-	* docs/plugins/inspect/plugin-audioresample.xml:
-	* docs/plugins/inspect/plugin-audiotestsrc.xml:
-	* docs/plugins/inspect/plugin-cdparanoia.xml:
-	* docs/plugins/inspect/plugin-encoding.xml:
-	* docs/plugins/inspect/plugin-gio.xml:
-	* docs/plugins/inspect/plugin-ivorbisdec.xml:
-	* docs/plugins/inspect/plugin-libvisual.xml:
-	* docs/plugins/inspect/plugin-ogg.xml:
-	* docs/plugins/inspect/plugin-pango.xml:
-	* docs/plugins/inspect/plugin-playback.xml:
-	* docs/plugins/inspect/plugin-subparse.xml:
-	* docs/plugins/inspect/plugin-tcp.xml:
-	* docs/plugins/inspect/plugin-theora.xml:
-	* docs/plugins/inspect/plugin-typefindfunctions.xml:
-	* docs/plugins/inspect/plugin-videoconvert.xml:
-	* docs/plugins/inspect/plugin-videorate.xml:
-	* docs/plugins/inspect/plugin-videoscale.xml:
-	* docs/plugins/inspect/plugin-videotestsrc.xml:
-	* docs/plugins/inspect/plugin-volume.xml:
-	* docs/plugins/inspect/plugin-vorbis.xml:
-	* docs/plugins/inspect/plugin-ximagesink.xml:
-	* docs/plugins/inspect/plugin-xvimagesink.xml:
-	* gst-plugins-base.doap:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Release 1.0.6
+2013-03-24 20:41:44 +0000  Simon Berg <ksb@kth.se>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: fix buffer size of last buffer
+	  The last buffer before EOS may be smaller than the maximum
+	  size. The current code doesn't adjust for this, it only sets
+	  the duration and offsets.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696411
+
+2013-03-24 00:39:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: add small comment
+
+2013-03-24 00:38:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/gstvideoconvert.c:
+	  videoconvert: avoid double free
+	  Set variable to NULL after free so that we don't free twice.
+
+2013-03-24 00:21:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/gstvideoconvert.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	  Revert "videoconvert: prevent bad interlaced conversions"
+	  This reverts commit adc9694ed70870549fc8f4a6257f3b132ea31733.
+	  No need to restrict the conversion, we can handle interlace correctly. We
+	  basically unpack each field, then convert each field to the target colorspace
+	  and pack and interleave each field to the target format. We also disable any
+	  fast path that can't deal with interlaced formats.
+
+2013-03-08 14:49:31 -0800  David Schleef <ds@schleef.org>
+
+	* gst/videoconvert/gstvideoconvert.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	  videoconvert: prevent bad interlaced conversions
+	  Don't allow conversion that changes vertical subsampling if video
+	  is interlaced.
 
 2013-02-14 01:35:45 +0100  Arnaud Vrac <avrac@freebox.fr>
 
@@ -485,6 +2392,16 @@
 	  Also remove unused next_offset field.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=693981
 
+2013-03-22 10:47:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  Require Orc >= 0.4.17
+	  Orc 0.4.17 fixes a bunch crashes on i386 and RPi when orc
+	  functions can't be compiled and the fallback function is
+	  supposed to be used. Also fixes some issues on PowerPC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=684399
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693862
+
 2013-03-22 09:35:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst/typefind/gsttypefindfunctions.c:
@@ -502,21 +2419,6 @@
 	  an error.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=688476
 
-2013-03-20 19:34:06 +0100  Jan Schole <jan581984@web.de>
-
-	* gst/videoscale/gstvideoscale.c:
-	  videoscale: Correct DAR and border calculations
-	  changed: gst_video_scale_set_info in gst/videoscale/gstvideoscale.c
-	  DAR on sink side now calculated with PAR on sink side
-	  ratio of output width/height now calculated with inverse PAR
-	  additional condition that borders are 0:0 for passthrough mode
-	  https://bugzilla.gnome.org/show_bug.cgi?id=696019
-
-2013-03-21 11:42:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
-	* gst/playback/gstplaysinkconvertbin.c:
-	  playsinkconvertbin: Use gst_caps_is_subset() for handling the ACCEPT_CAPS query
-
 2013-03-21 13:33:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst/playback/gstplaysinkconvertbin.c:
@@ -536,6 +2438,81 @@
 	  empty, just immediately return EMPTY caps instead of trying
 	  to access the (non-existant) structures.
 
+2013-03-21 11:42:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplaysinkconvertbin.c:
+	  playsinkconvertbin: Use gst_caps_is_subset() for handling the ACCEPT_CAPS query
+
+2013-03-21 11:14:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/videoscale/gstvideoscale.c:
+	  videoscale: Let the add-borders property default to TRUE
+	  It's undesirable most of the time that the display aspect ratio
+	  is changed.
+
+2013-03-20 19:34:06 +0100  Jan Schole <jan581984@web.de>
+
+	* gst/videoscale/gstvideoscale.c:
+	  videoscale: Correct DAR and border calculations
+	  changed: gst_video_scale_set_info in gst/videoscale/gstvideoscale.c
+	  DAR on sink side now calculated with PAR on sink side
+	  ratio of output width/height now calculated with inverse PAR
+	  additional condition that borders are 0:0 for passthrough mode
+	  https://bugzilla.gnome.org/show_bug.cgi?id=696019
+
+2013-03-15 10:07:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/examples/playback/playback-test.c:
+	  playback-test: wait for buffering after seek
+	  Wait for buffering to finish before setting the element to the playing state
+	  after a seek.
+
+2013-03-14 10:58:11 +0100  Marc Leeman <marc.leeman@gmail.com>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audioringbuffer: avoid division by 0 when outputting debug info
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695832
+
+2013-03-14 15:46:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/xvimage/xvcontext.c:
+	* sys/xvimage/xvcontext.h:
+	* sys/xvimage/xvimagesink.c:
+	  xvimagesink: configure colorimetry
+	  Use the XV_ITURBT_709 attribute to configure the 601 or 709 matrix
+	  depending on the color matrix of the input video frame.
+
+2013-03-14 15:44:53 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/xvimage/xvcontext.c:
+	  xvcontext: protect X call with lock
+
+2013-03-13 11:13:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/xvimage/Makefile.am:
+	* sys/xvimage/xvcontext.c:
+	* sys/xvimage/xvcontext.h:
+	* sys/xvimage/xvimage.c:
+	* sys/xvimage/xvimageallocator.c:
+	* sys/xvimage/xvimageallocator.h:
+	* sys/xvimage/xvimagepool.c:
+	* sys/xvimage/xvimagepool.h:
+	* sys/xvimage/xvimagesink.c:
+	* sys/xvimage/xvimagesink.h:
+	  xvimagesink: use xvcontext for allocation
+	  Make a new refcounted xvcontext object that handles the X connection.
+	  Use the xvcontext to allocate images and windows. Move some code
+	  around so that all X calls are made from the xvcontext object.
+	  Make a GstXvImageAllocator object that allocates images from the xvcontext. We
+	  can implement a copy function now for these memory objects now.
+	  Make the bufferpool use the xvimageallocator object for its images.
+
+2013-03-13 01:00:45 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/appsrc.c:
+	  tests: fix appsrc unit test spam
+	  spam 1 spam 2 spam 3 spam 4 spam 5
+
 2013-03-11 21:55:28 -0600  Greg Rutz <greg@gsr-tek.com>
 
 	* ext/libvisual/gstaudiovisualizer.c:
@@ -545,28 +2522,548 @@
 	  each plane).  This fix iterates over each data plane to clear them all.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=695655
 
+2013-03-12 10:32:44 +0100  Nicola Murino <nicola.murino@gmail.com>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	* tests/check/elements/appsrc.c:
+	  appsrc: fix deadlock setting pipeline in NULL state with block=true
+
+2013-03-11 22:33:04 +0100  Emanuele Aina <emanuele.aina@collabora.com>
+
+	* gst-libs/gst/rtsp/Makefile.am:
+	  build: Link libgstrtsp-1.0.so to libm for pow()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695658
+
+2013-03-11 23:46:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/app/gstappsink.c:
+	  appsink: update the emit-signal description
+	  Update the emit-signal description according to its current signals.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695660
+
+2013-03-11 22:46:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/adder/gstadder.c:
+	  adder: add a missing break
+
+2013-03-10 09:07:17 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: never create caps with negative height
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695540
+
+2013-03-11 10:49:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstrtsp.def:
+	  defs: add new methods
+
+2013-02-22 13:32:21 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	* tests/check/libs/rtsp.c:
+	  rtsprange: Add function to convert a range between formats
+	  Also add unit tests.
+
+2013-02-22 13:26:03 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* tests/check/libs/rtsp.c:
+	  rtsprange: Make _to_string() be more in line with RFC 2326
+	  Fix various nits to make it more in line with the RFC, also add unit tests.
+
+2013-02-22 13:20:21 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  rtsprange: Avoid going through fractions for large numbers
+	  If the number of seconds exceeds 2^31, then it will be truncated if the
+	  conversion is done using fractions, so multiply it directly.
+
+2013-02-22 13:18:10 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  rtsprange: Fix conversion from UTC to GstClockTime
+	  Do the difference in the right direction.
+
+2013-02-18 19:49:07 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtspconnection.h:
+	  rtspconnection: Add API to disable session ID caching in the connection
+	  This is necessary to allow having more than one session in the same connection.
+	  API: gst_rtsp_connection_set_remember_session_id()
+	  API: gst_rtsp_connection_get_remember_session_id()
+
+2013-03-10 18:05:28 +0100  Josep Torra <n770galaxy@gmail.com>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Use correct print format specifier to fix a compiler warning
+
+2013-03-07 10:49:30 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/libs/struct_i386.h:
+	  tests: update libs ABI check GstRTSPTimeRange structure size on i386
+	  https://bugzilla.gnome.org/show_bug.cgi?id=695276
+
+2013-03-07 09:27:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  videotestsrc: make colors controlable
+	  Also trim since markers.
+
+2013-03-07 00:00:14 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 2de221c to 04c7a1e
+
+2013-03-05 22:29:24 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* ext/ogg/gstoggmux.c:
+	  oggmux: don't keep a static string beyond the ref of the owning object
+	  Also move down the ref for the caps a bit, so tha we don't leak it in the branch that calls continue.
+
+2013-03-05 16:41:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/ximage/ximagepool.c:
+	  ximagesink: don't share memory
+
+2013-03-05 16:34:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/xvimage/xvimagepool.c:
+	* sys/xvimage/xvimagesink.c:
+	  xvimagesink: mark as NO_SHARE
+	  We don't want to share the memory between buffers because that could
+	  cause the memory of the bufferpool buffers to be copied and replaced
+	  with other memory.
+	  This is a hopefully a temporary fix until we can figure out how to share
+	  properly.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=695203
+
+2013-03-01 19:14:18 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* ext/ogg/gstoggmux.c:
+	  oggmux: don't crash on caps being NULL
+	  Also avoid unused variables if debugging is disabled.
+
+2013-03-03 17:44:11 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/playback/gsturidecodebin.c:
+	  uridecodebin: minor GValue handling optimisation
+
+2013-03-03 17:43:47 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/video/navigation.c:
+	  video: navigation: minor GValue optimisation
+
+2013-03-03 17:42:50 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/vorbis/gstvorbisenc.c:
+	* ext/vorbis/gstvorbisparse.c:
+	  vorbis: small GValue optimisation
+	  No need to copy buffers we put into the streamheader any more
+	  now that we don't put caps on buffers any more, so there's no
+	  danger of a refcount cycle.
+
+2013-03-03 17:41:34 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/theora/gsttheoraenc.c:
+	* ext/theora/gsttheoraparse.c:
+	  theora: small GValue optimisations
+	  No need to copy buffers we put into the streamheader any more
+	  now that we don't put caps on buffers any more, so there's no
+	  danger of a refcount cycle.
+
+2013-03-03 17:39:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggmux.c:
+	* ext/ogg/gstoggparse.c:
+	  ogg: small GValue optimisation
+	  No need to copy buffers we put into the streamheader any more
+	  now that we don't put caps on buffers any more, so there's no
+	  danger of a refcount cycle.
+
+2013-03-03 17:26:03 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/adder.c:
+	  tests: fix leaks in adder unit test
+
+2013-03-03 17:11:25 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/videorate.c:
+	  tests: fix leaks in videorate unit test
+
+2013-03-03 17:06:38 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/audioresample.c:
+	  tests: fix leak in audioresample unit test
+
+2013-03-03 16:51:10 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/pipelines/vorbisdec.c:
+	  tests: fix leak in vorbisdec unit test
+
+2013-03-03 11:19:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/riff/riff-read.c:
+	  riff: Use correct print format specifiers to fix compiler warnings
+
+2013-03-02 19:29:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/videoscale/vs_4tap.c:
+	* gst/videoscale/vs_fill_borders.c:
+	* gst/videoscale/vs_image.c:
+	* gst/videoscale/vs_lanczos.c:
+	* gst/videoscale/vs_scanline.c:
+	  videoscale: Fix compiler errors caused by not including config.h
+	  _stdint.h requires config.h to be included to properly
+	  use the correct code to get uint8_t and friends.
+
+2013-03-02 19:13:39 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/fft/gstfft.c:
+	* gst-libs/gst/fft/gstfftf32.c:
+	* gst-libs/gst/fft/gstfftf64.c:
+	* gst-libs/gst/fft/gstffts16.c:
+	* gst-libs/gst/fft/gstffts32.c:
+	* gst-libs/gst/fft/kiss_fft_f32.c:
+	* gst-libs/gst/fft/kiss_fft_f64.c:
+	* gst-libs/gst/fft/kiss_fft_s16.c:
+	* gst-libs/gst/fft/kiss_fft_s32.c:
+	* gst-libs/gst/fft/kiss_fftr_f32.c:
+	* gst-libs/gst/fft/kiss_fftr_f64.c:
+	* gst-libs/gst/fft/kiss_fftr_s16.c:
+	* gst-libs/gst/fft/kiss_fftr_s32.c:
+	  fft: Fix compiler errors caused by not including config.h
+	  _stdint.h requires config.h to be included to properly
+	  use the correct code to get uint8_t and friends.
+
+2013-03-01 10:04:53 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* gst-plugins-base.spec.in:
+	  Update spec file for latest changes
+
+2011-04-11 15:10:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/ogg/Makefile.am:
+	* ext/ogg/gstoggstream.c:
+	  oggdemux: add audio-codec and video-codec tags for streams in more cases
+
+2013-02-27 22:05:36 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/adder/gstadder.c:
+	  adder: don't discard the flush-start events
+	  This reverts one more part of a86ca535c88a604daa431b0bc1cf4cd8fbb2d100 and
+	  hopefully fixes #694553 for good.
+
+2013-02-27 21:57:15 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/elements/adder.c:
+	  tests: add a loop test for adder
+
+2013-02-27 21:38:27 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/adder/gstadder.c:
+	  adder: fix looping
+	  Use gst_segment_do_seek() and clip position before updating the segment.
+
+2013-02-27 21:36:26 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/adder/gstadder.c:
+	  adder: remove defines we don#t use anymore
+
+2013-02-22 21:02:19 +0900  Akihiro Tsukada <atsukada@users.sourceforge.net>
+
+	* gst-libs/gst/audio/gstaudioiec61937.c:
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audio: add support for AAC pass-through
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694443
+
+2013-02-26 16:02:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* sys/ximage/ximagepool.c:
+	* sys/ximage/ximagepool.h:
+	* sys/ximage/ximagesink.c:
+	  ximagesink: use memory to store XImage info
+	  Store the extra XImage information in the GstMemory instead of metadata.
+
+2013-02-25 18:50:33 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	  adder: mark pending flush-stop on segment event
+	  Also add more debug logging. Fixes #694553.
+
+2013-02-25 18:49:56 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audioringbuffer: log a few more details (e.g. obj-name)
+
+2013-02-24 09:45:19 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/xvimage/xvimagepool.c:
+	  xvimagepool: gst_memory_init() does not take ownership of the allocator
+
+2013-02-23 09:52:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* sys/xvimage/xvimagepool.c:
+	* sys/xvimage/xvimagepool.h:
+	* sys/xvimage/xvimagesink.c:
+	  xvimagesink: Implement XvImage memory as a GstMemory, not as a GstMeta
+
+2013-02-22 09:07:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: The dmabuf allocator has a custom alloc function, mark it as such
+
+2013-02-20 18:36:20 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst-libs/gst/pbutils/codec-utils.c:
+	  pbutils: recognise more H.264 profiles/levels
+	  Add profile/level extraction for Multiview High profile
+	  and Stereo High profile.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694346
+
+2013-02-21 11:38:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefindfunctions: recognize SVC and MVC nal units in h264 streams
+	  Ensure the detection of svc and mvc as a part of h264 stream.
+	  Once the typefinder detect a subset_sequence_parameter_set(ssps),
+	  then each nal unit with type 14 or 20 should be detected as a
+	  part of h264 stream thereafter.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=694346
+
+2013-02-21 08:15:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/adder/gstadder.c:
+	  adder: ensure sending a flush-stop after flush-start
+	  Previously adder was only sending the flush-stop, when it saw the flushing seek.
+	  If one sends a flushing see direcly to an element upstream of adder, it would
+	  fail to unflush the downstream pads.
+
+2013-02-19 17:49:08 +0100  Arnaud Vrac <avrac@freebox.fr>
+
+	* gst-libs/gst/video/video-overlay-composition.c:
+	  video-overlay-composition: fix ayuv/argb conversion
+	  Helps when using dvbsuboverlay in connection with vaapisink
+	  or some other video sink that wants ARGB pixels (dvbsuboverlay
+	  attaches pixels in AYUV format, and we then convert as needed).
+	  Alignment should not be a problem here.
+
+2013-02-19 12:53:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  pango: use new GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS define
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665751
+
+2013-02-19 12:46:14 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/video/video-overlay-composition.c:
+	* gst-libs/gst/video/video-overlay-composition.h:
+	  video: add define for video formats supported by the overlay blending code
+	  For use in template caps by overlay elements that use
+	  video_overlay_composition_blend().
+	  API: GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665751
+
+2013-02-19 12:55:34 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
+	* pkgconfig/gstreamer-plugins-base.pc.in:
+	  pkg-config: Fix gstreamer-plugins-base pkg-config files to include all libraries
+
+2013-02-19 11:52:22 +0100  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Include config.h
+
+2013-02-19 10:21:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  allocators: add guard and minor clean-ups
+
+2013-02-19 09:40:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  allocators: add some since markers and misc other doc clean-ups
+
+2013-02-19 09:35:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.h:
+	  allocators: header clean-up
+
+2013-02-19 09:32:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: use AC_CHECK_FUNC to check for mmap
+
+2013-02-19 10:05:17 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/libs/Makefile.am:
+	* docs/libs/gst-plugins-base-libs-docs.sgml:
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  allocators: Integrate into the documentation
+
+2013-02-19 09:40:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* win32/common/libgstallocators.def:
+	  allocators: Add .def file with all exports
+
+2013-02-19 09:39:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/allocators/Makefile.am:
+	* gst-libs/gst/allocators/allocators.h:
+	  allocators: Add single-include header
+
+2013-02-19 09:35:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	  dmabuf: Improve documentation and annotations a bit
+
+2013-02-18 15:18:38 +0100  Benjamin Gaignard <benjamin.gaignard@linaro.org>
+
+	* configure.ac:
+	* gst-libs/gst/Makefile.am:
+	* gst-libs/gst/allocators/Makefile.am:
+	* gst-libs/gst/allocators/gstdmabuf.c:
+	* gst-libs/gst/allocators/gstdmabuf.h:
+	* pkgconfig/Makefile.am:
+	* pkgconfig/gstreamer-allocators-uninstalled.pc.in:
+	* pkgconfig/gstreamer-allocators.pc.in:
+	  allocators: Add dmabuf-based GstMemory and GstAllocator
+	  Create new GstMemory and GstAllocator base on dmabuf.
+	  Memory is not allocated/freed by userland but mapped/unmmaped
+	  from a dmabuf file descriptor when requested.
+	  This allocator is included in a new lib called libgstallocators
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693826
+
+2013-02-16 23:55:57 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/encodebin.c:
+	  tests: fix encodebin unit test on 32-bit systems
+	  Fixes critical warning on x86:
+	  g_object_set_valist: object class `GstOggMux' has no property named `testingoggmux'
+
+2013-02-16 12:09:53 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/audio-info.h:
+	  audio: fix GST_AUDIO_INFO_ENDIANNESS macro
+
+2013-02-14 15:59:51 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/encoding/gstencodebin.c:
+	  encodebin: activate ghost pad after creating it
+	  This ensures the ghost pad will not stay in flushing mode
+	  when it receives a flush stop event, and generally behave
+	  badly.
+	  This fixes at least one case of a dynamic decodebin2 + encodebin
+	  pipeline finding a source that has not prerolled when it should
+	  have been (due to the ghostpad staying in flushing mode).
+
+2013-02-14 00:54:34 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: don't block on caps
+
+2013-02-14 11:25:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Remove left-over line from last commit
+
+2013-02-14 11:17:31 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Check if value is set before unsetting it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693401
+
+2013-02-13 23:28:01 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riffmedia: add systemstream to all mpeg video caps
+
+2013-02-14 00:29:01 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/tag/gstvorbistag.c:
+	  vorbistag: add mapping for TOTALTRACKS and TOTALDISCS tags
+	  Found TOTALTRACKS in a FLAC file instead of TRACKTOTAL,
+	  we should at least read this if present.
+	  http://www.hydrogenaudio.org/forums/index.php?showtopic=91496&st=0&p=773857&#entry773857
+
+2013-02-13 21:00:28 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: add parsed=true to mp3 and mpeg2 video ES caps
+	  Because we can, and that's also what we do for other formats.
+
 2013-02-13 21:08:48 +0100  Stefan Sauer <ensonic@users.sf.net>
 
 	* gst/adder/gstadder.c:
 	* tests/check/elements/adder.c:
-	  adder: fix setting caps via the "caps" property
+	  adder: use the collect_pads_query func
 	  We were setting the query-func on the sink-pad, which got overwritten when
 	  adding the new pad to collect pads. Instead register our query-func with the
 	  collect pads object. This fixes filter caps. Add a test for it.
 
+2013-02-13 21:07:55 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/part-mediatype-audio-raw.txt:
+	  mediatype-audio: write out 24 in 32bit formats
+
+2013-02-13 11:25:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/decodebin.c:
+	  decodebin: Fix MP3 parser unit test
+	  The MP3 parser required fields on its caps that it
+	  didn't need and never got from (e.g.) typefind.
+
 2013-02-12 17:22:23 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
 	* gst/encoding/gstencodebin.c:
 	  encodebin: sync muxer state with parent bin
-	  Other elements were synced, but not the muxer. Makes sure the
-	  muxer is in the right state even when encodebin gets added to
-	  the pipeline dynamically after the pipeline has been started.
+	  Other elements were synced, but not the muxer.
 
-2013-02-07 21:51:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-01-02 12:15:25 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
 
-	* configure.ac:
-	  build: fix build with automake 1.13
-	  AM_CONFIG_HEADER -> AC_CONFIG_HEADERS
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: allow parse function to not use all data on adapter
+
+2013-02-08 08:46:25 +0100  Alexander Schrab <alexas@axis.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Push caps event immediately to ghost pad to avoid exposing pads without caps
+
+2013-02-08 15:31:28 -0800  David Schleef <ds@schleef.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Don't blindly assign DTS to PTS
+	  DTS and PTS usually have a non-zero offset between them in MPEG-TS,
+	  so assigning DTS to PTS is almost always wrong.  The other, newer
+	  timestamp recovery code does it correctly if we leave it as invalid.
+
+2013-02-11 11:54:46 -0800  David Schleef <ds@schleef.org>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: warn if frame list gets long
+	  Decoders that get unparsed input are internally leaking nearly
+	  every incoming buffer.  This checks that case.
+
+2013-02-09 16:50:05 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/elements/streamsynchronizer.c:
+	  tests: don't use deprecated thread API in streamsynchronizer test
+
+2013-02-07 10:49:33 +0100  Marc Leeman <marc.leeman@gmail.com>
+
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gsturidecodebin.c:
+	  decodebin: g_mutex_new -> g_mutex_init
+	  Don't use deprecated GLib API.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693302
 
 2013-02-08 00:05:24 +1100  Jan Schmidt <thaytan@noraisin.net>
 
@@ -590,6 +3087,23 @@
 	  pango: Remove extra pango_attr_list_copy() from basetextoverlay
 	  Fixes a per-buffer memory leak of the attribute list.
 
+2013-02-06 12:36:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst/videoconvert/videoconvert.c:
+	* gst/videotestsrc/gstvideotestsrc.c:
+	  video: fix return type of _get_palette() and add since markers to docs
+	  'const gpointer' is not the same as 'gconstpointer', see
+	  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35928.
+
+2013-02-06 10:07:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  appsrc: negotiate before popping buffer
+	  First negotiate and then try to pop a buffer from the queue. This is just
+	  to improve the debug log.
+
 2013-02-06 10:00:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/app/gstappsrc.c:
@@ -598,6 +3112,118 @@
 	  object lock.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693224
 
+2013-02-05 11:20:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videotestsrc/gstvideotestsrc.c:
+	* gst/videotestsrc/gstvideotestsrc.h:
+	  videotestsrc: use video library palette
+	  Use the palette provided and used by the video library instead of making our own
+	  copy.
+
+2013-02-05 10:46:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoscale/gstvideoscale.c:
+	  videoscale: scale each field in interlace mode
+	  When we are dealing with interlaced content, scale each field intependently so
+	  that we don't destroy the interlacing.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=588535
+
+2013-02-04 16:21:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: interlace support to some fastpath functions
+	  Add interlace support for some fastpath functions.
+
+2013-02-04 15:40:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: make fast path interlaced aware
+	  Make sure that we also handle interlacing when choosing the fast path.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=588535
+
+2013-02-04 15:19:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: pass frame interlaced flag to pack/unpack
+	  If the frame is interlaced, pass the interlaced flag to the pack/unpack
+	  functions to make it unpack correctly.
+
+2013-02-04 15:01:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: fix interlaced 4:2:0 and 4:1:0 pack/unpack
+	  For interlaced vertically subsampled images we need to combine alternating
+	  chroma lines with alternating luma lines. That is line 0 and 2 are combined
+	  with the first line of chroma samples and line 1 and 3 with the second line
+	  of chroma samples.
+	  See also: https://bugzilla.gnome.org/show_bug.cgi?id=588535
+
+2013-02-01 16:47:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	  videoconvert: use the palette helper functions
+	  Get the palette from the video library instead of making our own.
+
+2013-02-01 16:46:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* win32/common/libgstvideo.def:
+	  video-format: add method to get palette
+	  Make a new method to get the default palette for paletted formats.
+
+2013-02-01 11:51:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/videoconvert/videoconvert.c:
+	  videoconvert: make a constant of scale factor
+
+2013-02-01 11:42:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.h:
+	  video-format: add interlace flag
+	  Add an interlaced flag that can be used to control the unpack/pack
+	  functions.
+
+2013-01-31 12:57:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add more gray8 variants
+
+2013-01-31 11:41:06 +0100  Dirk Van Haerenborgh <vhdirk@gmail.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add support for raw monochrome 8-bit video
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692930
+
+2013-01-29 10:18:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	* ext/libvisual/gstaudiovisualizer.h:
+	  visualizer: improve allocation
+	  Based on patch by Matthew Waters
+	  Add private data
+	  Add decide_allocation vmethod
+	  Refactor bufferpool negotiation
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681719
+
+2013-01-28 20:41:44 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From a942293 to 2de221c
+
+2013-01-27 09:45:59 +0530  B.Prathibha <prathibhab@cdac.in>
+
+	* tests/check/pipelines/basetime.c:
+	* tests/examples/dynamic/addstream.c:
+	* tests/examples/dynamic/codec-select.c:
+	* tests/icles/output-selector-test.c:
+	* tests/icles/position-formats.c:
+	* tests/icles/stress-videooverlay.c:
+	  tests: use g_timeout_add_seconds wherever possible.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=692613
+
 2013-01-24 20:15:09 -0500  Olivier Crête <olivier.crete@collabora.com>
 
 	* docs/libs/gst-plugins-base-libs-sections.txt:
@@ -632,139 +3258,39 @@
 	  delay_lock  is used to avoid the race condition.
 	  Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=690937
 
+2013-01-19 13:03:03 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: try harder to always expose pads in the same order
+	  Use stream-id as sort criterion in addition to the media type.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=634407
+
 2013-01-17 09:50:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* tests/check/libs/libsabi.c:
 	  tests: disable ABI checks for architectures with outdated structure size files
 
-2013-01-14 10:34:04 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2013-01-16 10:16:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-	* gst-libs/gst/tag/tag.h:
-	  docs: fix 0.10-ism in GstTagImageType docs
-	  The image type is not in the info structure in the sample,
-	  not in the caps.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=691687
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/riff/Makefile.am:
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtsp/Makefile.am:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/video/Makefile.am:
+	  gst-libs: use GST_*_1_0 environment variables everywhere
+	  The _1_0 suffixed environment variables override the
+	  non-suffixed ones, so if we're in an environment that
+	  sets the _1_0 suffixed ones, such as jhbuild, we need
+	  to set those to make sure ours actually always get
+	  used.
 
-=== release 1.0.5 ===
+2013-01-16 10:16:14 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-2013-01-08 01:07:20 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-adder.xml:
-	* docs/plugins/inspect/plugin-alsa.xml:
-	* docs/plugins/inspect/plugin-app.xml:
-	* docs/plugins/inspect/plugin-audioconvert.xml:
-	* docs/plugins/inspect/plugin-audiorate.xml:
-	* docs/plugins/inspect/plugin-audioresample.xml:
-	* docs/plugins/inspect/plugin-audiotestsrc.xml:
-	* docs/plugins/inspect/plugin-cdparanoia.xml:
-	* docs/plugins/inspect/plugin-encoding.xml:
-	* docs/plugins/inspect/plugin-gio.xml:
-	* docs/plugins/inspect/plugin-ivorbisdec.xml:
-	* docs/plugins/inspect/plugin-libvisual.xml:
-	* docs/plugins/inspect/plugin-ogg.xml:
-	* docs/plugins/inspect/plugin-pango.xml:
-	* docs/plugins/inspect/plugin-playback.xml:
-	* docs/plugins/inspect/plugin-subparse.xml:
-	* docs/plugins/inspect/plugin-tcp.xml:
-	* docs/plugins/inspect/plugin-theora.xml:
-	* docs/plugins/inspect/plugin-typefindfunctions.xml:
-	* docs/plugins/inspect/plugin-videoconvert.xml:
-	* docs/plugins/inspect/plugin-videorate.xml:
-	* docs/plugins/inspect/plugin-videoscale.xml:
-	* docs/plugins/inspect/plugin-videotestsrc.xml:
-	* docs/plugins/inspect/plugin-volume.xml:
-	* docs/plugins/inspect/plugin-vorbis.xml:
-	* docs/plugins/inspect/plugin-ximagesink.xml:
-	* docs/plugins/inspect/plugin-xvimagesink.xml:
-	* gst-plugins-base.doap:
-	* po/da.po:
-	* po/nb.po:
-	* po/sl.po:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Release 1.0.5
-
-2012-05-02 13:50:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* gst-libs/gst/video/gstvideoencoder.c:
-	  videoencoder: Documentation fix
-	  https://bugzilla.gnome.org/show_bug.cgi?id=675761
-
-2012-12-21 16:38:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst/playback/gstdecodebin2.c:
-	  decodebin2: use NO_RESYNC flag
-	  to avoid the state change function from messing with the state of the elements
-	  that we add.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690420
-
-2012-12-20 16:42:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst-libs/gst/audio/gstaudioclock.c:
-	  audioclock: mark as using some other clock
-	  We need to mark our clock as using some other clock source. Alsa source uses the
-	  clock type to decide if it can use alsa driver timestamps or not.
-	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690465
-
-2012-12-20 16:41:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
-
-	* gst-libs/gst/audio/gstaudiobasesrc.c:
-	  audiobasesrc: init variable
-	  We need to initialize this variable because we can't be sure that the subclass
-	  will set it.
-
-2012-12-22 21:04:11 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* gst-libs/gst/video/video-info.c:
-	  video: fix A420 size calculation
-
-=== release 1.0.4 ===
-
-2012-12-18 18:13:59 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-adder.xml:
-	* docs/plugins/inspect/plugin-alsa.xml:
-	* docs/plugins/inspect/plugin-app.xml:
-	* docs/plugins/inspect/plugin-audioconvert.xml:
-	* docs/plugins/inspect/plugin-audiorate.xml:
-	* docs/plugins/inspect/plugin-audioresample.xml:
-	* docs/plugins/inspect/plugin-audiotestsrc.xml:
-	* docs/plugins/inspect/plugin-cdparanoia.xml:
-	* docs/plugins/inspect/plugin-encoding.xml:
-	* docs/plugins/inspect/plugin-gio.xml:
-	* docs/plugins/inspect/plugin-ivorbisdec.xml:
-	* docs/plugins/inspect/plugin-libvisual.xml:
-	* docs/plugins/inspect/plugin-ogg.xml:
-	* docs/plugins/inspect/plugin-pango.xml:
-	* docs/plugins/inspect/plugin-playback.xml:
-	* docs/plugins/inspect/plugin-subparse.xml:
-	* docs/plugins/inspect/plugin-tcp.xml:
-	* docs/plugins/inspect/plugin-theora.xml:
-	* docs/plugins/inspect/plugin-typefindfunctions.xml:
-	* docs/plugins/inspect/plugin-videoconvert.xml:
-	* docs/plugins/inspect/plugin-videorate.xml:
-	* docs/plugins/inspect/plugin-videoscale.xml:
-	* docs/plugins/inspect/plugin-videotestsrc.xml:
-	* docs/plugins/inspect/plugin-volume.xml:
-	* docs/plugins/inspect/plugin-vorbis.xml:
-	* docs/plugins/inspect/plugin-ximagesink.xml:
-	* docs/plugins/inspect/plugin-xvimagesink.xml:
-	* gst-plugins-base.doap:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Release 1.0.4
-
-2012-12-18 18:13:36 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* po/LINGUAS:
 	* po/af.po:
 	* po/az.po:
 	* po/bg.po:
@@ -780,7 +3306,6 @@
 	* po/fi.po:
 	* po/fr.po:
 	* po/gl.po:
-	* po/hr.po:
 	* po/hu.po:
 	* po/id.po:
 	* po/it.po:
@@ -803,7 +3328,165 @@
 	* po/uk.po:
 	* po/vi.po:
 	* po/zh_CN.po:
-	  po: update translations
+	  po: update for new translatable string
+
+2013-01-15 17:33:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: add description for SBC audio caps
+
+2013-01-15 17:27:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: add typefind functions for SBC audio
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690582
+
+2013-01-15 15:04:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From a72faea to a942293
+
+2013-01-15 12:39:20 +0000  Martin Pitt <martinpitt@gnome.org>
+
+	* tests/check/Makefile.am:
+	  tests: use _1_0 variants for the various registry variables
+	  These override the variants without version suffix. Makes
+	  'make check' work properly in environments that set the
+	  suffixed variant for 1.0, such as jhbuild.
+
+2013-01-15 13:06:28 +0100  Martin Pitt <martinpitt@gnome.org>
+
+	* tests/check/Makefile.am:
+	  Set $GST_PLUGIN_PATH_1_0 for tests as well
+	  jhbuild already sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH. Set
+	  both for the tests to see the locally built elements. Fixes 'make check' in
+	  jhbuild.
+
+2012-12-24 18:25:10 +0000  Pete Beardmore <pete.beardmore@msn.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add waveformatextension generic support
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690591
+
+2013-01-14 10:34:04 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/tag/tag.h:
+	  docs: fix 0.10-ism in GstTagImageType docs
+	  The image type is not in the info structure in the sample,
+	  not in the caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=691687
+
+2013-01-09 23:15:06 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/volume/gstvolume.c:
+	* tests/check/elements/volume.c:
+	  volume: a return value of FALSE from the controller is not fatal
+	  A return value of FALSE here indicates that we don't have control-values. In
+	  0.10 we were returning the default value of the property. Now we don't fill an
+	  array with defaults in the ControlBinding, but leave it up to the element to
+	  handle this case.
+
+2013-01-07 18:01:31 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: fix incorrect testing of invalid granpos values
+	  Positive granulepos is valid, -1 granulepos is unset, and all
+	  other negative granulepos are invalid.
+	  Reported by Tim-Philipp Müller
+
+2012-04-30 14:31:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Remove done ToDo
+	  https://bugzilla.gnome.org/show_bug.cgi?id=675761
+
+2012-05-02 13:50:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Documentation fix
+	  https://bugzilla.gnome.org/show_bug.cgi?id=675761
+
+2012-12-29 14:29:53 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/audio-info.c:
+	  audio: don't use uninitialized variable in debug log
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667317
+
+2012-12-23 15:51:51 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: add special-casing for asf/wmv/wma file extensions
+	  https://bugzilla.gnome.org/show_bug.cgi?id=636753
+
+2012-12-23 15:32:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* win32/common/libgstrtsp.def:
+	  win32: update .def file for new rtsp API
+
+2012-12-23 15:26:59 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	* gst-libs/gst/pbutils/encoding-profile.h:
+	* tests/check/libs/profile.c:
+	* win32/common/libgstpbutils.def:
+	  encoding-profile: add gst_encoding_profile_get_file_extension()
+	  API: gst_encoding_profile_get_file_extension()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=636753
+
+2012-12-22 21:19:51 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  textoverlay: minor clean-up
+	  Remove some macros that aren't needed any more.
+
+2012-12-22 21:18:11 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  textoverlay: support shaded background for A420 format
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687817
+
+2012-12-22 21:04:11 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/video/video-info.c:
+	  video: fix A420 size calculation
+
+2012-12-21 16:38:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin2: use NO_RESYNC flag
+	  to avoid the state change function from messing with the state of the elements
+	  that we add.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690420
+
+2012-12-21 14:03:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add channel masks for all formats
+	  Add the channel masks for all the extensible formats
+	  Pass the number of channels instead of reading them from caps.
+
+2012-12-21 02:27:12 +0000  Pete Beardmore <pete.beardmore@msn.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff: add waveformatextension ac3 support
+	  fixes #690591
+
+2012-12-20 16:42:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudioclock.c:
+	  audioclock: mark as using some other clock
+	  We need to mark our clock as using some other clock source. Alsa source uses the
+	  clock type to decide if it can use alsa driver timestamps or not.
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690465
+
+2012-12-20 16:41:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  audiobasesrc: init variable
+	  We need to initialize this variable because we can't be sure that the subclass
+	  will set it.
 
 2012-12-18 15:34:42 +0100  Thijs Vermeir <thijsvermeir@gmail.com>
 
@@ -821,6 +3504,49 @@
 	  rtp: fix compiler warning
 	  comparison is always true due to limited range of data type
 
+2012-12-17 20:32:52 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/alsa/gstalsasrc.c:
+	  alsasrc: return negative value on read error
+	  Otherwise baseaudiosrc won't go into the error code path.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690197
+
+2012-12-17 20:28:12 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  audiobasesrc: bail out if subclass posts an error
+	  Use new ringbuffer ERROR state to make all the various
+	  threads bail out correctly when the subclass posts an
+	  error. It's a bit iffy to communicate this properly
+	  between the different bits of code.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690197
+
+2012-12-17 20:26:33 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.h:
+	  audioringbuffer: add GST_AUDIO_RING_BUFFER_STATE_ERROR state
+	  API: GST_AUDIO_RING_BUFFER_STATE_ERROR
+	  https://bugzilla.gnome.org/show_bug.cgi?id=690197
+
+2012-12-15 14:43:40 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	* gst/encoding/gstencodebin.c:
+	* tests/check/elements/encodebin.c:
+	  encodebing: Use the preset_name as the factory name and preset as the name of the preset
+	  The naming is not perfect, but at least we can keep the exact same behaviour as
+	  before.
+
+2011-08-02 10:11:14 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	  audiobasesrc: Always resync the ringbuffer on the first buffer
+	  In SKEW mode, use next_sample == -1 to check for the first sample
+	  when starting to read samples so it resyncs the ringbuffer and
+	  timestamps are ok.
+	  Suggestion from Teemu Katajisto <teemu.katajisto@digia.com>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=648359
+
 2012-12-17 00:59:57 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst/subparse/gstssaparse.c:
@@ -836,6 +3562,12 @@
 	* gst/subparse/gstsubparse.c:
 	  subparse: fix GError leak
 
+2012-12-16 12:05:02 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: detect stand-alone SSA/ASS subtitle files
+	  https://bugzilla.gnome.org/show_bug.cgi?id=625113
+
 2012-12-15 19:36:56 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* ext/alsa/gstalsasink.c:
@@ -847,19 +3579,102 @@
 	  and/or the ring buffer bail out.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=690197
 
-2012-12-12 15:31:20 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-12-14 20:27:53 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst/typefind/gsttypefindfunctions.c:
-	  typefindfunctions: aac: don't try to unref NULL caps
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: add some more flags and file extensions to internal media type descriptions table
+	  For later use.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=636753
+	  https://bugzilla.gnome.org/show_bug.cgi?id=549111
+
+2012-12-14 11:36:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtspconnection.h:
+	  rtspconnection: add limit to queued messages
+	  Add a limit to the amount of queued bytes or messages we allow on the watch.
+	  API: GstRTSPConnection::gst_rtsp_watch_set_send_backlog()
+	  API: GstRTSPConnection::gst_rtsp_watch_get_send_backlog()
 
 2012-12-13 11:31:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst/playback/gstplaysink.c:
 	  playsink: fix vis switch with format change
-	  Block the pad before the resample and convertor elements to give them a chance
-	  to negotiate new caps with the newly switched vis plugin.
+	  Block the pad before the resample and convertor elements to give the a chance to
+	  negotiate new caps with the newly switched vis plugin.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679976
 
+2012-12-13 11:03:30 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* gst-plugins-base.spec.in:
+	  Fix spec file to match latest header reshuffle
+
+2012-12-12 17:22:31 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* ext/alsa/gstalsasink.h:
+	* ext/alsa/gstalsasrc.h:
+	* ext/theora/gsttheoraenc.c:
+	  ext: Fix some compilation errors caused by circular header includes
+
+2012-12-12 17:13:10 +0000  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/app/app.h:
+	* gst-libs/gst/app/gstapp.h:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/gstaudio.h:
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	* gst-libs/gst/audio/gstaudioiec61937.c:
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	* gst-libs/gst/audio/gstaudiosink.c:
+	* gst-libs/gst/audio/gstaudiosrc.c:
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/fft/fft.h:
+	* gst-libs/gst/fft/gstfft.h:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/pbutils/gstpbutils.h:
+	* gst-libs/gst/riff/Makefile.am:
+	* gst-libs/gst/riff/gstriff.h:
+	* gst-libs/gst/riff/riff.h:
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtp/gstrtp.h:
+	* gst-libs/gst/rtp/rtp.h:
+	* gst-libs/gst/rtsp/Makefile.am:
+	* gst-libs/gst/rtsp/rtsp.h:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/sdp/gstsdp.h:
+	* gst-libs/gst/sdp/sdp.h:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/tag/gsttag.h:
+	* gst-libs/gst/tag/tag.h:
+	* gst-libs/gst/video/Makefile.am:
+	* gst-libs/gst/video/gstvideo.h:
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* gst-libs/gst/video/gstvideoutils.c:
+	* gst-libs/gst/video/video-frame.c:
+	* gst-libs/gst/video/video.h:
+	  libs: Use foo/foo.h as single-include header consistently everywhere
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688785
+
+2012-12-12 15:31:20 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefindfunctions: aac: don't try to unref NULL caps
+
+2012-12-10 13:39:27 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/plugins/gst-plugins-base-plugins.args:
+	* docs/plugins/gst-plugins-base-plugins.interfaces:
+	* docs/plugins/gst-plugins-base-plugins.prerequisites:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	  docs: update
+
 2012-12-10 13:35:37 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst-libs/gst/video/videooverlay.c:
@@ -888,8 +3703,106 @@
 	* gst-libs/gst/rtsp/gstrtspmessage.c:
 	  rtspmessage: Add several missing g-i annotations
 	  https://bugzilla.gnome.org/show_bug.cgi?id=689873
-	  Conflicts:
-	  gst-libs/gst/rtsp/gstrtspmessage.c
+
+2012-12-09 22:36:32 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* win32/common/libgstpbutils.def:
+	  win32: add new encoding profile API to .def file
+
+2012-12-05 17:53:19 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* tests/check/elements/encodebin.c:
+	  tests: encodebin: Properly rename new preset test
+
+2012-12-05 15:22:42 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	* gst/encoding/gstencodebin.c:
+	* tests/check/elements/encodebin.c:
+	  encodebin: Make use of the new preset_name when setting a preset
+	  The behaviour is sensibly changed here. Instead of purely falling when a
+	  preset is set on the #GstEncodingProfile, we now make sure that the
+	  element that is plugged corresponds to the one specified as preset. Then,
+	  if we have a preset_name, we use it, if it fails, we fail (we might rather
+	  just keep working even without setting the element properties?)
+	  + Add tests that it behave correctly
+
+2012-12-05 15:21:43 -0300  Thibault Saunier <thibault.saunier@collabora.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	* gst-libs/gst/pbutils/encoding-profile.h:
+	  encoding-profile: Let the user decide what preset name to use
+	  It was possible to decide only what #GstElement implementing #GstPreset
+	  to use during the encoding, we can now let the user select a specific preset previously
+	  saved using #gst_preset_save_preset specifying the name chosen when it was saved
+	  in the gst_encoding_profile_set_preset_name.
+	  Actually loading a preset with %NULL as a name would have always failed, so
+	  in the current state of the API that feature is unusable
+	  API:
+	  gst_encoding_profile_set_preset_name
+	  gst_encoding_profile_get_preset_name
+
+2012-12-04 13:16:09 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  pbutils: encoding-profile: fix _new function introspection docs
+	  Makes the parameter accept NULL as input for GI bindings
+
+2012-12-02 12:54:17 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/tcp/gstmultifdsink.c:
+	* gst/tcp/gstmultihandlesink.c:
+	* tests/check/elements/multifdsink.c:
+	  tcp: print warning if someone tries to add clients in NULL state
+	  And mention this in docs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689326
+
+2012-12-02 12:33:43 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: add some more debug info and remove obsolete comment
+
+2012-11-30 12:15:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstrtsp.def:
+	  win32: update .def for new API
+
+2012-11-29 13:42:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/playbin.c:
+	  test: add test for playbin in combination with appsink
+	  Make sure appsink works multiple times in a row.
+	  Disable it though for now though.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=644989
+
+2012-11-28 18:50:45 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* configure.ac:
+	  configure.ac: Update libtool versioning
+	  In order for 1.x and 1.(x+1) versions to not invade on each other
+	  we need to have different lib versions.
+	  So we need a consistent and predictable scheme:
+	  library version number = MINOR * 100 + MICRO
+	  Ex:
+	  1.0.0 => 0 (duh)
+	  1.0.3 => 3
+	  1.1.0 => 100
+	  1.1.1 => 101
+	  1.2.0 => 120
+	  1.10.5 => 1005
+
+2012-11-27 11:02:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/rtsp/gstrtspdefs.c:
+	* gst-libs/gst/rtsp/gstrtspdefs.h:
+	  rtsp: add method to parse options list
+
+2012-11-27 10:30:08 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/videoscale.c:
+	  videoscale: Fix unit test to ignore unsupported color formats
 
 2012-11-26 18:41:07 +0000  Tim-Philipp Müller <tim@centricular.net>
 
@@ -913,6 +3826,30 @@
 	  streamsynchronizer: reduce debug log spam a bit
 	  Log locking/unlocking with TRACE debug level.
 
+2012-11-23 13:58:25 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* docs/libs/gst-plugins-base-libs-docs.sgml:
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	  docs: update audio multi-channel docs
+	  Remove includes and functions that don't exist any longer,
+	  add new ones instead.
+
+2012-11-23 11:14:40 +0100  Christian Fredrik Kalager Schaller <uraeus@linuxrisin.org>
+
+	* gst-plugins-base.spec.in:
+	  Add new header files
+
+2012-11-22 13:09:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Set element to NULL state before removing it from the bin
+
+2012-11-22 13:06:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Check if the element really accepts the caps after setting it to READY
+	  It might know the caps constraints for sure only after opening a decoder.
+
 2012-11-21 23:17:22 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst-libs/gst/audio/gstaudioringbuffer.c:
@@ -925,79 +3862,97 @@
 	  app: fix g-i annotation for gst_app_src_push_buffer()
 	  It takes ownership of the buffer.
 
-2012-11-21 12:56:13 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-21 20:51:37 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* configure.ac:
-	* docs/plugins/inspect/plugin-adder.xml:
-	* docs/plugins/inspect/plugin-alsa.xml:
-	* docs/plugins/inspect/plugin-app.xml:
-	* docs/plugins/inspect/plugin-audioconvert.xml:
-	* docs/plugins/inspect/plugin-audiorate.xml:
-	* docs/plugins/inspect/plugin-audioresample.xml:
-	* docs/plugins/inspect/plugin-audiotestsrc.xml:
-	* docs/plugins/inspect/plugin-cdparanoia.xml:
-	* docs/plugins/inspect/plugin-encoding.xml:
-	* docs/plugins/inspect/plugin-gio.xml:
-	* docs/plugins/inspect/plugin-ivorbisdec.xml:
-	* docs/plugins/inspect/plugin-libvisual.xml:
-	* docs/plugins/inspect/plugin-ogg.xml:
-	* docs/plugins/inspect/plugin-pango.xml:
-	* docs/plugins/inspect/plugin-playback.xml:
-	* docs/plugins/inspect/plugin-subparse.xml:
-	* docs/plugins/inspect/plugin-tcp.xml:
-	* docs/plugins/inspect/plugin-theora.xml:
-	* docs/plugins/inspect/plugin-typefindfunctions.xml:
-	* docs/plugins/inspect/plugin-videoconvert.xml:
-	* docs/plugins/inspect/plugin-videorate.xml:
-	* docs/plugins/inspect/plugin-videoscale.xml:
-	* docs/plugins/inspect/plugin-videotestsrc.xml:
-	* docs/plugins/inspect/plugin-volume.xml:
-	* docs/plugins/inspect/plugin-vorbis.xml:
-	* docs/plugins/inspect/plugin-ximagesink.xml:
-	* docs/plugins/inspect/plugin-xvimagesink.xml:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Back to development (bug-fixing)
+	* win32/common/libgstrtsp.def:
+	  win32: update .def file for new rtsp API
 
-=== release 1.0.3 ===
+2012-11-21 16:25:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-2012-11-21 09:56:12 +0000  Tim-Philipp Müller <tim@centricular.net>
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* tests/check/libs/rtsp.c:
+	  rtsprange: add string conversion for new formats
 
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-adder.xml:
-	* docs/plugins/inspect/plugin-alsa.xml:
-	* docs/plugins/inspect/plugin-app.xml:
-	* docs/plugins/inspect/plugin-audioconvert.xml:
-	* docs/plugins/inspect/plugin-audiorate.xml:
-	* docs/plugins/inspect/plugin-audioresample.xml:
-	* docs/plugins/inspect/plugin-audiotestsrc.xml:
-	* docs/plugins/inspect/plugin-cdparanoia.xml:
-	* docs/plugins/inspect/plugin-encoding.xml:
-	* docs/plugins/inspect/plugin-gio.xml:
-	* docs/plugins/inspect/plugin-ivorbisdec.xml:
-	* docs/plugins/inspect/plugin-libvisual.xml:
-	* docs/plugins/inspect/plugin-ogg.xml:
-	* docs/plugins/inspect/plugin-pango.xml:
-	* docs/plugins/inspect/plugin-playback.xml:
-	* docs/plugins/inspect/plugin-subparse.xml:
-	* docs/plugins/inspect/plugin-tcp.xml:
-	* docs/plugins/inspect/plugin-theora.xml:
-	* docs/plugins/inspect/plugin-typefindfunctions.xml:
-	* docs/plugins/inspect/plugin-videoconvert.xml:
-	* docs/plugins/inspect/plugin-videorate.xml:
-	* docs/plugins/inspect/plugin-videoscale.xml:
-	* docs/plugins/inspect/plugin-videotestsrc.xml:
-	* docs/plugins/inspect/plugin-volume.xml:
-	* docs/plugins/inspect/plugin-vorbis.xml:
-	* docs/plugins/inspect/plugin-ximagesink.xml:
-	* docs/plugins/inspect/plugin-xvimagesink.xml:
-	* gst-plugins-base.doap:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Release 1.0.3
+2012-11-21 15:29:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	* tests/check/libs/rtsp.c:
+	  rtsprange: add method to convert ranges to GstClockTime
+	  Add a method to convert the values of GstRTSPRange to GstClockTime.
+	  Add unit tests for the conversions.
+	  API: gst_rtsp_range_get_times()
+
+2012-11-21 15:22:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  range: don't overwrite unit field
+
+2012-11-21 12:12:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  range: add g_return_if check
+
+2012-11-21 11:12:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/video/gstvideo.h:
+	  libs: Fix last commit by using correct include paths and only include existing headers
+
+2012-11-20 23:22:27 -0800  Evan Nemerson <evan@coeus-group.com>
+
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/app/gstapp.h:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/gstaudio.h:
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/fft/gstfft.h:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/pbutils/gstpbutils.h:
+	* gst-libs/gst/riff/Makefile.am:
+	* gst-libs/gst/riff/gstriff.h:
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtp/gstrtp.h:
+	* gst-libs/gst/rtsp/Makefile.am:
+	* gst-libs/gst/rtsp/gstrtsp.h:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/sdp/gstsdp.h:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/tag/gsttag.h:
+	* gst-libs/gst/video/Makefile.am:
+	* gst-libs/gst/video/gstvideo.h:
+	  libs: Add missing single include headers and use them in GIRs
+
+2012-11-21 10:28:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/playback/gstplayback.c:
+	* gst/playback/gststreamsynchronizer.c:
+	* gst/playback/gststreamsynchronizer.h:
+	  streamsynchronizer: Make the element public
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688240
+
+2012-11-21 10:25:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	  rtsprange: improve docs
+
+2012-11-20 14:56:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	* gst-libs/gst/pbutils/gstdiscoverer.h:
+	* gst-libs/gst/pbutils/pbutils-private.h:
+	* tools/gst-discoverer.c:
+	* win32/common/libgstpbutils.def:
+	  discoverer: Add support for getting the stream-id
+	  https://bugzilla.gnome.org/show_bug.cgi?id=654830
+
+2012-11-20 14:37:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	  discoverer: Use switch/case instead of lots of ifs for the event handling
 
 2012-11-20 12:21:08 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -1016,6 +3971,20 @@
 	  retrieved from get_max_decode_time() and by renaming we allow this
 	  to be more extensible in the future.
 
+2012-11-20 11:10:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/struct_x86_64.h:
+	  check: update for larger struct
+
+2012-11-20 09:18:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	* tests/check/libs/rtsp.c:
+	  rtsp: avoid ABI break
+	  Move new fields into structures appended at the end of the GstRTSPRange
+	  to avoid ABI break.
+
 2012-11-20 07:17:00 +0100  Alessandro Decina <alessandro.d@gmail.com>
 
 	* gst-libs/gst/pbutils/encoding-profile.c:
@@ -1033,21 +4002,78 @@
 	  API: gst_video_decoder_get_qos_info()
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687991
 
-2012-11-12 12:44:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2012-11-19 17:08:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/rtsp/gstrtspconnection.c:
-	  rtspconnection: improve docs
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  rtsp: fix format string
 
-2012-11-12 12:57:35 +0000  Tim-Philipp Müller <tim@centricular.net>
+2012-11-19 16:59:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/pbutils/descriptions.c:
-	  pbutils: add description for Opus audio codec
-	  https://bugzilla.gnome.org/show_bug.cgi?id=688151
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	* tests/check/libs/rtsp.c:
+	  rtsp: parse UTC ranges
 
-2012-11-12 11:17:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+2012-11-19 16:15:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* gst-libs/gst/rtp/gstrtpbuffer.c:
-	  rtpbuffer: protect against empty buffers
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	* tests/check/libs/rtsp.c:
+	  rtsp: parse SMPTE ranges
+
+2012-11-19 16:13:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  range: handle parse errors better
+
+2012-11-19 16:04:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  rtsp: detect npt time parse errors
+
+2012-11-19 13:52:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/rtsp.c:
+	  check: add rtsp range checks
+
+2012-11-19 13:37:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  range: a single - is not allowed
+
+2012-11-19 13:33:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	  range: handle ranges starting with -
+	  An RTSP range that starts with a - means that the first value of the range is
+	  the end of the stream.
+
+2012-11-19 11:24:28 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From b497c4f to a72faea
+
+2012-11-17 00:26:45 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/examples/playback/playback-test.c:
+	  examples: don't use deprecated API
+
+2012-11-14 00:03:15 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* ext/libvisual/gstaudiovisualizer.c:
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.c:
+	  gst_adapter_prev_timestamp -> gst_adapter_prev_pts
+	  https://bugzilla.gnome.org/show_bug.cgi?id=675598
+
+2012-11-13 16:15:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	  video-format: fix plane offsets for GBR formats
+	  Also make some macros to get to the R/G/B planes
+	  Remove unused stride macros.
 
 2012-11-13 16:11:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
@@ -1063,6 +4089,28 @@
 	* ext/vorbis/gstvorbisdeclib.h:
 	  vorbisdec: Fix GType name conflict if tremor and libvorbis decoder are used in the same process
 
+2012-11-12 12:44:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	  rtspconnection: improve docs
+
+2012-11-12 12:57:35 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: add description for Opus audio codec
+	  https://bugzilla.gnome.org/show_bug.cgi?id=688151
+
+2012-11-12 11:45:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiosink.c:
+	* gst-libs/gst/audio/gstaudiosrc.c:
+	  audio: Use new GType for GThread instead of just G_TYPE_POINTER
+
+2012-11-12 11:17:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	  rtpbuffer: protect against empty buffers
+
 2012-11-11 16:33:32 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst/typefind/gsttypefindfunctions.c:
@@ -1073,13 +4121,6 @@
 	  based on how many we found. Fixes mis-detection of wavpack file.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687674
 
-2012-11-11 19:44:31 +0000  Tim-Philipp Müller <tim@centricular.net>
-
-	* gst/typefind/gsttypefindfunctions.c:
-	  typefinding: fix block size calculation in wavpack typefinder
-	  The blocksize includes part of the header, just not the sync
-	  marker and the four size bytes.
-
 2012-11-11 20:04:40 +0000  Tim-Philipp Müller <tim@centricular.net>
 
 	* gst/typefind/gsttypefindfunctions.c:
@@ -1090,6 +4131,39 @@
 	  finding a second frame sync in this particular case).
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687674
 
+2012-11-11 19:44:31 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefinding: fix block size calculation in wavpack typefinder
+	  The blocksize includes part of the header, just not the sync
+	  marker and the four size bytes.
+
+2012-11-10 16:45:34 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-info.c:
+	  video: Add GBR/GBR_10LE/GBR_10BE color formats
+	  Planar RGB color format used by h264
+
+2012-10-29 15:11:48 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-info.c:
+	  video: Add Y444_10{LE,BE} video formats
+
+2012-11-09 23:41:16 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* tests/check/libs/video.c:
+	  tests: add test for video unpack and pack functions
+
+2012-11-09 15:55:05 +0100  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst-libs/gst/rtsp/gstrtspmessage.c:
+	  rtsp: fix g-i annotation for gst_rtsp_message_set_body(), take_body() and take_header()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687620
+
 2012-11-09 16:48:54 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudiodecoder.c:
@@ -1100,28 +4174,26 @@
 	* gst-libs/gst/video/gstvideodecoder.c:
 	  videodecoder: Reset the error count to 0 after successfully decoding a frame
 
-2012-11-01 16:44:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2012-11-07 18:41:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-	* gst/audioconvert/gstaudioconvert.c:
-	  audioconvert: Always prefer the input format if possible
-	  Previously we could've chosen another format with the same
-	  depth even if the input format was possible.
-	  Also make sure to chose according to the order in the
-	  caps.
+	* configure.ac:
+	  configure.ac: update courtesy of autoupdate
 
-2012-11-01 14:31:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2012-11-07 17:34:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-	* gst/audioconvert/gstaudioconvert.c:
-	  audioconvert: Also ignore the SIGNED flag when matching an output format
+	* common:
+	* configure.ac:
+	  configure: let AG_GST_PLUGIN_DOCS check for python
+	  And update common for move from AS_PATH_PYTHON to AM_PATH_PYTHON,
+	  which as a side-effect should pick up newer python versions as
+	  well.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=563903
 
-2012-10-31 20:01:05 +0100  Rasmus Rohde <rohde@duff.dk>
+2012-11-07 13:59:53 +0000  Tim-Philipp Müller <tim@centricular.net>
 
-	* gst/audioconvert/gstaudioconvert.c:
-	* tests/check/elements/audioconvert.c:
-	  audioconvert: Prefer output formats with the same depth or at least a higher depth
-	  Enhance current code to prefer an exact match on sample depth if
-	  possible. Also ignore GST_AUDIO_FORMAT_FLAG_UNPACK when checking
-	  equality on the flags.
+	* ext/pango/gstbasetextoverlay.c:
+	  textoverlay: implement background shading for IYU1
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687817
 
 2012-11-07 13:25:13 +0000  Tim-Philipp Müller <tim@centricular.net>
 
@@ -1185,6 +4257,30 @@
 	  It's not a very nice thing to do.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687666
 
+2012-09-24 13:36:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstrtp.def:
+	  win32: add new header extension methods
+
+2012-09-24 13:09:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/rtp.c:
+	  tests: add NTP64 and ntp56 header extension checks
+
+2012-09-24 13:08:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtp/gstrtphdrext.c:
+	  rtp: fix ntp56 parsing
+
+2012-09-24 12:13:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtp/gstrtcpbuffer.h:
+	* gst-libs/gst/rtp/gstrtphdrext.c:
+	* gst-libs/gst/rtp/gstrtphdrext.h:
+	  rtp: add helpers for header extensions
+	  Add helpers and defines for the NTP-64 and NTP-56 header extensions.
+
 2012-11-05 14:35:56 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
 
 	* ext/pango/gstbasetextoverlay.c:
@@ -1199,6 +4295,468 @@
 	  rtsp: fix GstRTSPMessage g-i annotations for out parameters
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687620
 
+2012-11-03 23:05:09 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* COPYING:
+	* COPYING.LIB:
+	* android/NOTICE:
+	* docs/random/LICENSE:
+	* ext/alsa/gstalsa.c:
+	* ext/alsa/gstalsa.h:
+	* ext/alsa/gstalsadeviceprobe.c:
+	* ext/alsa/gstalsadeviceprobe.h:
+	* ext/alsa/gstalsaplugin.c:
+	* ext/alsa/gstalsasink.c:
+	* ext/alsa/gstalsasink.h:
+	* ext/alsa/gstalsasrc.c:
+	* ext/alsa/gstalsasrc.h:
+	* ext/cdparanoia/gstcdparanoiasrc.c:
+	* ext/cdparanoia/gstcdparanoiasrc.h:
+	* ext/libvisual/gstaudiovisualizer.c:
+	* ext/libvisual/gstaudiovisualizer.h:
+	* ext/libvisual/plugin.c:
+	* ext/libvisual/visual.c:
+	* ext/libvisual/visual.h:
+	* ext/ogg/gstogg.c:
+	* ext/ogg/gstogg.h:
+	* ext/ogg/gstoggaviparse.c:
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggdemux.h:
+	* ext/ogg/gstoggmux.c:
+	* ext/ogg/gstoggmux.h:
+	* ext/ogg/gstoggparse.c:
+	* ext/ogg/gstoggstream.c:
+	* ext/ogg/gstoggstream.h:
+	* ext/ogg/gstogmparse.c:
+	* ext/ogg/vorbis_parse.h:
+	* ext/pango/gstbasetextoverlay.c:
+	* ext/pango/gstclockoverlay.c:
+	* ext/pango/gstclockoverlay.h:
+	* ext/pango/gsttextoverlay.c:
+	* ext/pango/gsttextoverlay.h:
+	* ext/pango/gsttextrender.c:
+	* ext/pango/gsttimeoverlay.c:
+	* ext/pango/gsttimeoverlay.h:
+	* ext/theora/gsttheora.c:
+	* ext/theora/gsttheoradec.c:
+	* ext/theora/gsttheoradec.h:
+	* ext/theora/gsttheoraenc.c:
+	* ext/theora/gsttheoraenc.h:
+	* ext/theora/gsttheoraparse.c:
+	* ext/theora/gsttheoraparse.h:
+	* ext/vorbis/gstivorbisdec.c:
+	* ext/vorbis/gstvorbis.c:
+	* ext/vorbis/gstvorbiscommon.c:
+	* ext/vorbis/gstvorbiscommon.h:
+	* ext/vorbis/gstvorbisdec.c:
+	* ext/vorbis/gstvorbisdec.h:
+	* ext/vorbis/gstvorbisdeclib.c:
+	* ext/vorbis/gstvorbisdeclib.h:
+	* ext/vorbis/gstvorbisenc.c:
+	* ext/vorbis/gstvorbisenc.h:
+	* ext/vorbis/gstvorbisparse.c:
+	* ext/vorbis/gstvorbisparse.h:
+	* ext/vorbis/gstvorbistag.c:
+	* ext/vorbis/gstvorbistag.h:
+	* gst-libs/gst/app/gstappsink.c:
+	* gst-libs/gst/app/gstappsink.h:
+	* gst-libs/gst/app/gstappsrc.c:
+	* gst-libs/gst/app/gstappsrc.h:
+	* gst-libs/gst/audio/audio-channels.c:
+	* gst-libs/gst/audio/audio-channels.h:
+	* gst-libs/gst/audio/audio-format.c:
+	* gst-libs/gst/audio/audio-format.h:
+	* gst-libs/gst/audio/audio-info.c:
+	* gst-libs/gst/audio/audio-info.h:
+	* gst-libs/gst/audio/audio.c:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	* gst-libs/gst/audio/gstaudiobasesink.h:
+	* gst-libs/gst/audio/gstaudiobasesrc.c:
+	* gst-libs/gst/audio/gstaudiobasesrc.h:
+	* gst-libs/gst/audio/gstaudiocdsrc.c:
+	* gst-libs/gst/audio/gstaudiocdsrc.h:
+	* gst-libs/gst/audio/gstaudioclock.c:
+	* gst-libs/gst/audio/gstaudioclock.h:
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudiodecoder.h:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.h:
+	* gst-libs/gst/audio/gstaudiofilter.c:
+	* gst-libs/gst/audio/gstaudiofilter.h:
+	* gst-libs/gst/audio/gstaudioiec61937.c:
+	* gst-libs/gst/audio/gstaudioiec61937.h:
+	* gst-libs/gst/audio/gstaudiometa.c:
+	* gst-libs/gst/audio/gstaudiometa.h:
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	* gst-libs/gst/audio/gstaudioringbuffer.h:
+	* gst-libs/gst/audio/gstaudiosink.c:
+	* gst-libs/gst/audio/gstaudiosink.h:
+	* gst-libs/gst/audio/gstaudiosrc.c:
+	* gst-libs/gst/audio/gstaudiosrc.h:
+	* gst-libs/gst/audio/streamvolume.c:
+	* gst-libs/gst/audio/streamvolume.h:
+	* gst-libs/gst/fft/gstfft.c:
+	* gst-libs/gst/fft/gstfft.h:
+	* gst-libs/gst/fft/gstfftf32.c:
+	* gst-libs/gst/fft/gstfftf32.h:
+	* gst-libs/gst/fft/gstfftf64.c:
+	* gst-libs/gst/fft/gstfftf64.h:
+	* gst-libs/gst/fft/gstffts16.c:
+	* gst-libs/gst/fft/gstffts16.h:
+	* gst-libs/gst/fft/gstffts32.c:
+	* gst-libs/gst/fft/gstffts32.h:
+	* gst-libs/gst/gettext.h:
+	* gst-libs/gst/glib-compat-private.h:
+	* gst-libs/gst/gst-i18n-plugin.h:
+	* gst-libs/gst/pbutils/codec-utils.c:
+	* gst-libs/gst/pbutils/codec-utils.h:
+	* gst-libs/gst/pbutils/descriptions.c:
+	* gst-libs/gst/pbutils/descriptions.h:
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	* gst-libs/gst/pbutils/encoding-profile.h:
+	* gst-libs/gst/pbutils/encoding-target.c:
+	* gst-libs/gst/pbutils/encoding-target.h:
+	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	* gst-libs/gst/pbutils/gstdiscoverer.h:
+	* gst-libs/gst/pbutils/gstpluginsbaseversion.c:
+	* gst-libs/gst/pbutils/gstpluginsbaseversion.h.in:
+	* gst-libs/gst/pbutils/install-plugins.c:
+	* gst-libs/gst/pbutils/install-plugins.h:
+	* gst-libs/gst/pbutils/missing-plugins.c:
+	* gst-libs/gst/pbutils/missing-plugins.h:
+	* gst-libs/gst/pbutils/pbutils-private.h:
+	* gst-libs/gst/pbutils/pbutils.c:
+	* gst-libs/gst/pbutils/pbutils.h:
+	* gst-libs/gst/riff/riff-ids.h:
+	* gst-libs/gst/riff/riff-media.c:
+	* gst-libs/gst/riff/riff-media.h:
+	* gst-libs/gst/riff/riff-read.c:
+	* gst-libs/gst/riff/riff-read.h:
+	* gst-libs/gst/riff/riff.c:
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	* gst-libs/gst/rtp/gstrtcpbuffer.h:
+	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.c:
+	* gst-libs/gst/rtp/gstrtpbaseaudiopayload.h:
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	* gst-libs/gst/rtp/gstrtpbasedepayload.h:
+	* gst-libs/gst/rtp/gstrtpbasepayload.h:
+	* gst-libs/gst/rtp/gstrtpbuffer.c:
+	* gst-libs/gst/rtp/gstrtpbuffer.h:
+	* gst-libs/gst/rtp/gstrtppayloads.c:
+	* gst-libs/gst/rtp/gstrtppayloads.h:
+	* gst-libs/gst/rtsp/gstrtsp.h:
+	* gst-libs/gst/rtsp/gstrtspconnection.c:
+	* gst-libs/gst/rtsp/gstrtspconnection.h:
+	* gst-libs/gst/rtsp/gstrtspdefs.c:
+	* gst-libs/gst/rtsp/gstrtspdefs.h:
+	* gst-libs/gst/rtsp/gstrtspextension.c:
+	* gst-libs/gst/rtsp/gstrtspextension.h:
+	* gst-libs/gst/rtsp/gstrtspmessage.c:
+	* gst-libs/gst/rtsp/gstrtspmessage.h:
+	* gst-libs/gst/rtsp/gstrtsprange.c:
+	* gst-libs/gst/rtsp/gstrtsprange.h:
+	* gst-libs/gst/rtsp/gstrtsptransport.c:
+	* gst-libs/gst/rtsp/gstrtsptransport.h:
+	* gst-libs/gst/rtsp/gstrtspurl.c:
+	* gst-libs/gst/rtsp/gstrtspurl.h:
+	* gst-libs/gst/sdp/gstsdp.h:
+	* gst-libs/gst/sdp/gstsdpmessage.c:
+	* gst-libs/gst/sdp/gstsdpmessage.h:
+	* gst-libs/gst/tag/gstexiftag.c:
+	* gst-libs/gst/tag/gstid3tag.c:
+	* gst-libs/gst/tag/gsttagdemux.c:
+	* gst-libs/gst/tag/gsttagdemux.h:
+	* gst-libs/gst/tag/gsttageditingprivate.c:
+	* gst-libs/gst/tag/gsttageditingprivate.h:
+	* gst-libs/gst/tag/gsttagmux.c:
+	* gst-libs/gst/tag/gsttagmux.h:
+	* gst-libs/gst/tag/gstvorbistag.c:
+	* gst-libs/gst/tag/gstxmptag.c:
+	* gst-libs/gst/tag/id3v2.c:
+	* gst-libs/gst/tag/id3v2.h:
+	* gst-libs/gst/tag/id3v2frames.c:
+	* gst-libs/gst/tag/lang.c:
+	* gst-libs/gst/tag/licenses.c:
+	* gst-libs/gst/tag/mklangtables.c:
+	* gst-libs/gst/tag/mklicensestables.c:
+	* gst-libs/gst/tag/tag.h:
+	* gst-libs/gst/tag/tags.c:
+	* gst-libs/gst/tag/xmpwriter.c:
+	* gst-libs/gst/tag/xmpwriter.h:
+	* gst-libs/gst/video/colorbalance.c:
+	* gst-libs/gst/video/colorbalance.h:
+	* gst-libs/gst/video/colorbalancechannel.c:
+	* gst-libs/gst/video/colorbalancechannel.h:
+	* gst-libs/gst/video/convertframe.c:
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideodecoder.h:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* gst-libs/gst/video/gstvideoencoder.h:
+	* gst-libs/gst/video/gstvideofilter.c:
+	* gst-libs/gst/video/gstvideofilter.h:
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/gstvideometa.h:
+	* gst-libs/gst/video/gstvideopool.c:
+	* gst-libs/gst/video/gstvideopool.h:
+	* gst-libs/gst/video/gstvideosink.c:
+	* gst-libs/gst/video/gstvideosink.h:
+	* gst-libs/gst/video/gstvideoutils.c:
+	* gst-libs/gst/video/gstvideoutils.h:
+	* gst-libs/gst/video/navigation.c:
+	* gst-libs/gst/video/navigation.h:
+	* gst-libs/gst/video/video-blend.c:
+	* gst-libs/gst/video/video-blend.h:
+	* gst-libs/gst/video/video-color.c:
+	* gst-libs/gst/video/video-color.h:
+	* gst-libs/gst/video/video-event.c:
+	* gst-libs/gst/video/video-event.h:
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-frame.c:
+	* gst-libs/gst/video/video-frame.h:
+	* gst-libs/gst/video/video-info.c:
+	* gst-libs/gst/video/video-info.h:
+	* gst-libs/gst/video/video-overlay-composition.c:
+	* gst-libs/gst/video/video-overlay-composition.h:
+	* gst-libs/gst/video/video.c:
+	* gst-libs/gst/video/video.h:
+	* gst-libs/gst/video/videoorientation.c:
+	* gst-libs/gst/video/videoorientation.h:
+	* gst-libs/gst/video/videooverlay.c:
+	* gst-libs/gst/video/videooverlay.h:
+	* gst/adder/gstadder.c:
+	* gst/adder/gstadder.h:
+	* gst/app/gstapp.c:
+	* gst/audioconvert/audioconvert.c:
+	* gst/audioconvert/audioconvert.h:
+	* gst/audioconvert/gstaudioconvert.c:
+	* gst/audioconvert/gstaudioconvert.h:
+	* gst/audioconvert/gstaudioquantize.c:
+	* gst/audioconvert/gstaudioquantize.h:
+	* gst/audioconvert/gstchannelmix.c:
+	* gst/audioconvert/gstchannelmix.h:
+	* gst/audioconvert/gstfastrandom.h:
+	* gst/audioconvert/plugin.c:
+	* gst/audioconvert/plugin.h:
+	* gst/audiorate/gstaudiorate.c:
+	* gst/audiorate/gstaudiorate.h:
+	* gst/audioresample/gstaudioresample.c:
+	* gst/audioresample/gstaudioresample.h:
+	* gst/audioresample/speex_resampler_double.c:
+	* gst/audioresample/speex_resampler_float.c:
+	* gst/audioresample/speex_resampler_int.c:
+	* gst/audioresample/speex_resampler_wrapper.h:
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	* gst/audiotestsrc/gstaudiotestsrc.h:
+	* gst/encoding/gstencodebin.c:
+	* gst/encoding/gstencodebin.h:
+	* gst/encoding/gstsmartencoder.c:
+	* gst/encoding/gstsmartencoder.h:
+	* gst/encoding/gststreamcombiner.c:
+	* gst/encoding/gststreamcombiner.h:
+	* gst/encoding/gststreamsplitter.c:
+	* gst/encoding/gststreamsplitter.h:
+	* gst/gio/gstgio.c:
+	* gst/gio/gstgio.h:
+	* gst/gio/gstgiobasesink.c:
+	* gst/gio/gstgiobasesink.h:
+	* gst/gio/gstgiobasesrc.c:
+	* gst/gio/gstgiobasesrc.h:
+	* gst/gio/gstgiosink.c:
+	* gst/gio/gstgiosink.h:
+	* gst/gio/gstgiosrc.c:
+	* gst/gio/gstgiosrc.h:
+	* gst/gio/gstgiostreamsink.c:
+	* gst/gio/gstgiostreamsink.h:
+	* gst/gio/gstgiostreamsrc.c:
+	* gst/gio/gstgiostreamsrc.h:
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplay-enum.c:
+	* gst/playback/gstplay-enum.h:
+	* gst/playback/gstplayback.c:
+	* gst/playback/gstplayback.h:
+	* gst/playback/gstplaybin2.c:
+	* gst/playback/gstplaysink.c:
+	* gst/playback/gstplaysink.h:
+	* gst/playback/gstplaysinkaudioconvert.c:
+	* gst/playback/gstplaysinkaudioconvert.h:
+	* gst/playback/gstplaysinkconvertbin.c:
+	* gst/playback/gstplaysinkconvertbin.h:
+	* gst/playback/gstplaysinkvideoconvert.c:
+	* gst/playback/gstplaysinkvideoconvert.h:
+	* gst/playback/gstrawcaps.h:
+	* gst/playback/gststreamsynchronizer.c:
+	* gst/playback/gststreamsynchronizer.h:
+	* gst/playback/gstsubtitleoverlay.c:
+	* gst/playback/gstsubtitleoverlay.h:
+	* gst/playback/gsturidecodebin.c:
+	* gst/subparse/gstssaparse.c:
+	* gst/subparse/gstssaparse.h:
+	* gst/subparse/gstsubparse.c:
+	* gst/subparse/gstsubparse.h:
+	* gst/subparse/mpl2parse.c:
+	* gst/subparse/mpl2parse.h:
+	* gst/subparse/qttextparse.c:
+	* gst/subparse/qttextparse.h:
+	* gst/subparse/samiparse.c:
+	* gst/subparse/samiparse.h:
+	* gst/subparse/tmplayerparse.c:
+	* gst/subparse/tmplayerparse.h:
+	* gst/tcp/gstmultifdsink.c:
+	* gst/tcp/gstmultifdsink.h:
+	* gst/tcp/gstmultihandlesink.c:
+	* gst/tcp/gstmultihandlesink.h:
+	* gst/tcp/gstmultioutputsink.c:
+	* gst/tcp/gstmultisocketsink.c:
+	* gst/tcp/gstmultisocketsink.h:
+	* gst/tcp/gsttcp.h:
+	* gst/tcp/gsttcpclientsink.c:
+	* gst/tcp/gsttcpclientsink.h:
+	* gst/tcp/gsttcpclientsrc.c:
+	* gst/tcp/gsttcpclientsrc.h:
+	* gst/tcp/gsttcpplugin.c:
+	* gst/tcp/gsttcpserversink.c:
+	* gst/tcp/gsttcpserversink.h:
+	* gst/tcp/gsttcpserversrc.c:
+	* gst/tcp/gsttcpserversrc.h:
+	* gst/typefind/gsttypefindfunctions.c:
+	* gst/videoconvert/gstcms.c:
+	* gst/videoconvert/gstcms.h:
+	* gst/videoconvert/gstvideoconvert.c:
+	* gst/videoconvert/gstvideoconvert.h:
+	* gst/videoconvert/videoconvert.c:
+	* gst/videoconvert/videoconvert.h:
+	* gst/videorate/gstvideorate.c:
+	* gst/videorate/gstvideorate.h:
+	* gst/videoscale/gstvideoscale.c:
+	* gst/videoscale/gstvideoscale.h:
+	* gst/videotestsrc/gstvideotestsrc.c:
+	* gst/videotestsrc/gstvideotestsrc.h:
+	* gst/videotestsrc/videotestsrc.c:
+	* gst/videotestsrc/videotestsrc.h:
+	* gst/volume/gstvolume.c:
+	* gst/volume/gstvolume.h:
+	* sys/ximage/ximage.c:
+	* sys/ximage/ximagepool.c:
+	* sys/ximage/ximagepool.h:
+	* sys/ximage/ximagesink.c:
+	* sys/ximage/ximagesink.h:
+	* sys/xvimage/xvimage.c:
+	* sys/xvimage/xvimagepool.c:
+	* sys/xvimage/xvimagepool.h:
+	* sys/xvimage/xvimagesink.c:
+	* sys/xvimage/xvimagesink.h:
+	* tests/check/elements/adder.c:
+	* tests/check/elements/appsink.c:
+	* tests/check/elements/appsrc.c:
+	* tests/check/elements/audioconvert.c:
+	* tests/check/elements/audiorate.c:
+	* tests/check/elements/audioresample.c:
+	* tests/check/elements/audiotestsrc.c:
+	* tests/check/elements/decodebin.c:
+	* tests/check/elements/decodebin2.c:
+	* tests/check/elements/encodebin.c:
+	* tests/check/elements/libvisual.c:
+	* tests/check/elements/multifdsink.c:
+	* tests/check/elements/multisocketsink.c:
+	* tests/check/elements/playbin-compressed.c:
+	* tests/check/elements/playbin.c:
+	* tests/check/elements/streamsynchronizer.c:
+	* tests/check/elements/subparse.c:
+	* tests/check/elements/textoverlay.c:
+	* tests/check/elements/videoconvert.c:
+	* tests/check/elements/videorate.c:
+	* tests/check/elements/videoscale.c:
+	* tests/check/elements/videotestsrc.c:
+	* tests/check/elements/volume.c:
+	* tests/check/elements/vorbisdec.c:
+	* tests/check/elements/vorbistag.c:
+	* tests/check/generic/clock-selection.c:
+	* tests/check/generic/states.c:
+	* tests/check/gst/typefindfunctions.c:
+	* tests/check/libs/audio.c:
+	* tests/check/libs/audiocdsrc.c:
+	* tests/check/libs/discoverer.c:
+	* tests/check/libs/fft.c:
+	* tests/check/libs/gstlibscpp.cc:
+	* tests/check/libs/libsabi.c:
+	* tests/check/libs/navigation.c:
+	* tests/check/libs/pbutils.c:
+	* tests/check/libs/profile.c:
+	* tests/check/libs/rtp.c:
+	* tests/check/libs/rtsp.c:
+	* tests/check/libs/tag.c:
+	* tests/check/libs/video.c:
+	* tests/check/libs/xmpwriter.c:
+	* tests/check/pipelines/basetime.c:
+	* tests/check/pipelines/capsfilter-renegotiation.c:
+	* tests/check/pipelines/gio.c:
+	* tests/check/pipelines/oggmux.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	* tests/check/pipelines/theoraenc.c:
+	* tests/check/pipelines/vorbisdec.c:
+	* tests/check/pipelines/vorbisenc.c:
+	* tests/examples/app/appsrc-ra.c:
+	* tests/examples/app/appsrc-seekable.c:
+	* tests/examples/app/appsrc-stream.c:
+	* tests/examples/app/appsrc-stream2.c:
+	* tests/examples/audio/audiomix.c:
+	* tests/examples/audio/volume.c:
+	* tests/examples/dynamic/addstream.c:
+	* tests/examples/dynamic/codec-select.c:
+	* tests/examples/dynamic/sprinkle.c:
+	* tests/examples/dynamic/sprinkle2.c:
+	* tests/examples/dynamic/sprinkle3.c:
+	* tests/examples/encoding/encoding.c:
+	* tests/examples/encoding/gstcapslist.c:
+	* tests/examples/encoding/gstcapslist.h:
+	* tests/examples/fft/fftrange.c:
+	* tests/examples/gio/giosrc-mounting.c:
+	* tests/examples/overlay/gtk-videooverlay.c:
+	* tests/examples/overlay/qt-videooverlay.cpp:
+	* tests/examples/overlay/qtgv-videooverlay.cpp:
+	* tests/examples/overlay/qtgv-videooverlay.h:
+	* tests/examples/playback/playback-test.c:
+	* tests/examples/playrec/playrec.c:
+	* tests/examples/seek/jsseek.c:
+	* tests/examples/seek/stepping.c:
+	* tests/examples/seek/stepping2.c:
+	* tests/examples/snapshot/snapshot.c:
+	* tests/icles/input-selector-test.c:
+	* tests/icles/playback/decodetest.c:
+	* tests/icles/playback/test.c:
+	* tests/icles/playback/test2.c:
+	* tests/icles/playback/test3.c:
+	* tests/icles/playback/test4.c:
+	* tests/icles/playback/test5.c:
+	* tests/icles/playback/test6.c:
+	* tests/icles/playback/test7.c:
+	* tests/icles/playbin-text.c:
+	* tests/icles/stress-videooverlay.c:
+	* tests/icles/test-box.c:
+	* tests/icles/test-colorkey.c:
+	* tests/icles/test-effect-switch.c:
+	* tests/icles/test-scale.c:
+	* tests/icles/test-textoverlay.c:
+	* tests/icles/test-videooverlay.c:
+	* tools/gst-discoverer.c:
+	  Fix FSF address
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687520
+
+2012-11-02 17:46:58 +0100  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
+
+	* gst-libs/gst/audio/gstaudiobasesink.c:
+	  audiobasesink: use the same type as the internal type to return it
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687466
+
+2012-11-02 20:09:21 +0100  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
+
+	* gst-libs/gst/video/video-blend.c:
+	  video-blend: fix memory leak when called with invalid parameters
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687472
+
 2012-11-02 20:13:07 +0100  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
 
 	* gst-libs/gst/rtsp/gstrtspconnection.c:
@@ -1211,6 +4769,29 @@
 	  rtspconnection: fix g-i annotations for out parameters
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687421
 
+2012-11-01 16:44:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: Always prefer the input format if possible
+	  Previously we could've chosen another format with the same
+	  depth even if the input format was possible.
+	  Also make sure to chose according to the order in the
+	  caps.
+
+2012-11-01 14:31:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: Also ignore the SIGNED flag when matching an output format
+
+2012-10-31 20:01:05 +0100  Rasmus Rohde <rohde@duff.dk>
+
+	* gst/audioconvert/gstaudioconvert.c:
+	* tests/check/elements/audioconvert.c:
+	  audioconvert: Prefer output formats with the same depth or at least a higher depth
+	  Enhance current code to prefer an exact match on sample depth if
+	  possible. Also ignore GST_AUDIO_FORMAT_FLAG_UNPACK when checking
+	  equality on the flags.
+
 2012-10-30 10:19:59 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* gst-libs/gst/audio/gstaudioringbuffer.c:
@@ -1218,12 +4799,59 @@
 	  Reset the caps and the audioinfo when releasing the ringbuffer.
 	  Fixed a bug with reusing pulsesink.
 
+2012-10-29 21:29:36 +0100  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
+
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	  rtpbasedepay: remove unused variable
+	  https://bugzilla.gnome.org/show_bug.cgi?id=687146
+
+2012-10-29 13:31:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gio/gstgio.c:
+	  gio: handle g_vfs_get_supported_uri_schemes() returning NULL
+	  Handle g_vfs_get_supported_uri_schemes() returning NULL more
+	  gracefully, without criticals for passing NULL to g_strv_length().
+
+2012-10-29 13:01:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/pbutils/Makefile.am:
+	  pbutils: fix g-i search path for GstBase-1.0.gir
+	  Fixes: Couldn't find include 'GstBase-1.0.gir' build error.
+
+2012-10-29 12:47:05 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/riff/Makefile.am:
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtsp/Makefile.am:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/video/Makefile.am:
+	  Revert "g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X"
+	  This reverts commit e39fbe6b7e14ccccbf47a5726a18eb963535063b.
+	  Looks like we need to pass the full .la file after all in a setup
+	  with libtool, or it might not find the library, e.g. like
+	  ERROR: can't resolve libraries to shared libraries: gstfft-1.0
+	  Conflicts:
+	  gst-libs/gst/audio/Makefile.am
+	  gst-libs/gst/pbutils/Makefile.am
+	  Also see https://bugzilla.gnome.org/show_bug.cgi?id=603710
+
 2012-10-28 21:07:16 +1100  Jonathan Liu <net147@gmail.com>
 
 	* ext/ogg/gstoggstream.c:
 	  oggstream: fix crash with 0 byte ogg packets
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687030
 
+2012-07-05 17:54:48 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: fix inappropriate compiler optimization hint macro usage
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679456
+
 2012-10-28 19:59:41 +0100  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
 
 	* gst-libs/gst/tag/gstexiftag.c:
@@ -1236,6 +4864,36 @@
 	  vorbistag: fix memory leak
 	  https://bugzilla.gnome.org/show_bug.cgi?id=687057
 
+2012-10-28 17:59:27 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/audio/Makefile.am:
+	  audio: try harder to make g-i use the build-tree libgsttag
+	  without adding additional --library= tags, which shouldn't be there.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679315
+
+2012-10-28 17:52:54 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/pbutils/Makefile.am:
+	  pbutils: try harder to make g-i use the build-tree libgsttag,-audio, and -video
+	  without adding additional --library= tags, which shouldn't be there.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679315
+
+2012-10-28 17:34:59 +0000  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/riff/Makefile.am:
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtsp/Makefile.am:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/video/Makefile.am:
+	  g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X
+	  As it should be according to the man page.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679315
+
 2012-10-25 17:16:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* gst-libs/gst/pbutils/descriptions.c:
@@ -1268,7 +4926,66 @@
 	  will still be used even though it is not valid anymore.
 	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686276
 
-2012-10-25 12:26:52 +0100  Tim-Philipp Müller <tim@centricular.net>
+2012-10-25 14:41:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst-libs/gst/pbutils/missing-plugins.c:
+	  pbutils: fix installer detail string version number
+	  Should still be '1.0' not '1.1'. Fixs pbutils unit test.
+
+2012-10-23 11:16:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioresample/speex_resampler_wrapper.h:
+	  audioresample: Use auto sinc table mode by default
+
+2012-10-15 22:07:22 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* configure.ac:
+	* gst/audioresample/Makefile.am:
+	* gst/audioresample/resample.c:
+	* gst/audioresample/resample_neon.h:
+	* gst/audioresample/speex_resampler_float.c:
+	* gst/audioresample/speex_resampler_int.c:
+	  audioresample: added ARM NEON support
+	  This adds ARM NEON accelerated code paths for 16-bit integer
+	  and 32-bit floating point samples.
+	  It is a modified combination of patches #3 and #5 from Jyri Sarha
+	  ( http://lists.xiph.org/pipermail/speex-dev/2011-September/008240.html &
+	  http://lists.xiph.org/pipermail/speex-dev/2011-September/008238.html )
+	  Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
+
+2012-10-15 22:21:14 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/audioresample/arch.h:
+	* gst/audioresample/fixed_generic.h:
+	* gst/audioresample/resample.c:
+	  audioresample: changed inner_product_single semantics
+	  This is an adaptation of patch #3 from Jyri Sarha
+	  ( http://lists.xiph.org/pipermail/speex-dev/2011-September/008240.html ),
+	  but without the NEON optimizations (these come in a separate commit).
+	  The idea is to replace SATURATE32(PSHR32(x, shift), a) operations with a
+	  combined SATURATE32PSHR(x, shift, a) macro that can be optimized for
+	  specific platforms (and also avoids rare rounding errors).
+	  Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
+
+2012-10-07 03:00:52 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/audioresample/gstaudioresample.c:
+	* gst/audioresample/gstaudioresample.h:
+	* gst/audioresample/resample.c:
+	* gst/audioresample/speex_resampler.h:
+	* gst/audioresample/speex_resampler_wrapper.h:
+	  audioresample: sinc filter performance improvements
+	  Original idea comes from Jyri Sarha
+	  ( http://lists.xiph.org/pipermail/speex-dev/2011-September/008243.html ).
+	  Patch was discovered by Branislav Katreniak
+	  ( branislav.katreniak@streamunlimited.com ) for StreamUnlimited
+	  ( http://streamunlimited.com/ ). Tests showed up to 5x speed increase in
+	  the resampler in the 44.1<->48kHz case.
+	  I added the sinc-filter-mode and sinc-filter-auto-threshold properties
+	  and the auto mode threshold tests, and adapted the code to GStreamer 1.0.
+	  Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
+
+2012-10-25 12:19:46 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* configure.ac:
 	* docs/plugins/inspect/plugin-adder.xml:
@@ -1300,7 +5017,7 @@
 	* docs/plugins/inspect/plugin-xvimagesink.xml:
 	* win32/common/_stdint.h:
 	* win32/common/config.h:
-	  Back to development (bug fixing)
+	  Back to feature development
 
 === release 1.0.2 ===
 
diff --git a/Makefile.in b/Makefile.in
index 93eff2e..b17fa59 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -26,23 +25,51 @@
 #
 # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -62,23 +89,21 @@
 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-plugins-base.spec.in \
+DIST_COMMON = $(top_srcdir)/common/win32.mak \
+	$(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak \
 	$(top_srcdir)/common/coverage/lcov.mak \
-	$(top_srcdir)/common/cruft.mak $(top_srcdir)/common/po.mak \
-	$(top_srcdir)/common/release.mak \
-	$(top_srcdir)/common/win32.mak $(top_srcdir)/configure \
-	ABOUT-NLS AUTHORS COPYING COPYING.LIB ChangeLog INSTALL NEWS \
-	compile config.guess config.rpath config.sub depcomp \
-	install-sh ltmain.sh missing
+	$(top_srcdir)/common/cruft.mak INSTALL NEWS README AUTHORS \
+	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(srcdir)/gst-plugins-base.spec.in \
+	ABOUT-NLS COPYING COPYING.LIB compile config.guess \
+	config.rpath config.sub depcomp install-sh missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -119,21 +144,28 @@
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = gst-plugins-base.spec
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -141,11 +173,33 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -155,6 +209,7 @@
       && rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -182,6 +237,7 @@
   reldir="$$dir2"
 GZIP_ENV = --best
 DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -610,22 +666,25 @@
 	-rm -f libtool config.lt
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -640,57 +699,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -706,12 +720,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -723,15 +732,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -740,9 +745,31 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
@@ -813,39 +840,35 @@
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-lzip: distdir
 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__remove_distdir)
-
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 dist-xz: distdir
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-shar: distdir
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-zip: distdir
 	-rm -f $(distdir).zip
 	zip -rq $(distdir).zip $(distdir)
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
-dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -856,8 +879,6 @@
 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lzma*) \
-	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.lz*) \
 	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 	*.tar.xz*) \
@@ -869,9 +890,9 @@
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod u+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -904,7 +925,7 @@
 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
 	  && cd "$$am__cwd" \
 	  || exit 1
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
@@ -1040,14 +1061,13 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	ctags-recursive install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) all install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am all-local am--refresh check check-am clean \
-	clean-generic clean-libtool ctags ctags-recursive dist \
-	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma \
-	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+	dist-tarZ dist-xz dist-zip distcheck distclean \
 	distclean-generic distclean-hdr distclean-libtool \
 	distclean-tags distcleancheck distdir distuninstallcheck dvi \
 	dvi-am html html-am info info-am install install-am \
@@ -1058,7 +1078,7 @@
 	installcheck installcheck-am installdirs installdirs-am \
 	maintainer-clean maintainer-clean-generic mostlyclean \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 win32-debug:
@@ -1101,11 +1121,17 @@
 	if test $$fail != 0; then \
 	  echo '-----------------------------------------------------------'; \
 	  echo 'Run this to update the .def files:'; \
-	  echo 'make check-exports 2>&1 | patch -p1'; \
+	  echo 'make update-exports'; \
 	  echo '-----------------------------------------------------------'; \
 	fi; \
 	exit $$fail
 
+update-exports:
+	make check-exports 2>&1 | patch -p1
+	git add win32/common/libgst*.def
+	git diff --cached -- win32/common/
+	echo '^^^--- updated and staged changes above'
+
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
 check-nonportable-print-format:
 	@fail=0 ; \
@@ -1171,7 +1197,7 @@
 	done
 	cp -v $(top_builddir)/win32/common/config.h-new \
 	    $(top_srcdir)/win32/common/config.h
-.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload
+.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
 lcov-reset:
@@ -1182,10 +1208,14 @@
 lcov:
 	$(MAKE) lcov-reset
 
-# reset run coverage tests
-@GST_GCOV_ENABLED_TRUE@lcov-run:
+# reset lcov stats
+@GST_GCOV_ENABLED_TRUE@lcov-clean:
 @GST_GCOV_ENABLED_TRUE@	@-rm -rf lcov
 @GST_GCOV_ENABLED_TRUE@	lcov --directory . --zerocounters
+
+# reset run coverage tests
+@GST_GCOV_ENABLED_TRUE@lcov-run:
+@GST_GCOV_ENABLED_TRUE@	-$(MAKE) lcov-clean
 @GST_GCOV_ENABLED_TRUE@	-if test -d tests/check; then $(MAKE) -C tests/check inspect; fi
 @GST_GCOV_ENABLED_TRUE@	-$(MAKE) check
 
diff --git a/NEWS b/NEWS
index 5d04d38..bc0bee2 100644
--- a/NEWS
+++ b/NEWS
@@ -1,161 +1,2 @@
-This is GStreamer Base Plugins 1.0.8
+This is GStreamer Base Plugins 1.1.2
 
-Changes since 1.0.7:
-
-      * tag: ignore malformed ID3v2 TDAT frames
-
-Bugs fixed since 1.0.7:
-
-      * 636245 : riff: for ADPCM codecs the average bitrate should be calculated instead of trusting the format header
-      * 688803 : playbin: converters don't work? not-negotiated error with non-1/1 PAR and ximagesink
-      * 690420 : decodebin: Race between GstBin and decodebin trying to change states of child elements
-      * 698896 : liveadder: What is the unit for " latency " ?
-      * 699923 : typefind: fix detection of HLS playlists with alternative renditions
-      * 701976 : flvdemux: Forwards CAPS events from upstream
-      * 703128 : videotestsrc leaks memory
-      * 703283 : id3: gst_date_time_new: assertion `(month > 0 &  & month < = 12) || month == -1' failed with malformed TDAT frames
-      * 699794 : uridecodebin: Leaking queue2 elements in playbin gapless mode
-
-Changes since 1.0.6:
-
-      * streamsynchronizer is now a public element, useful in HLS pipelines for example
-
-Bugs fixed since 1.0.6:
-
-      * 682171 : videoscale: assertion failed: (envelope ((x - (xi - 1)) * ex) == 0)
-      * 688240 : streamsynchronizer: make element public
-      * 696540 : Ring buffer released after parsing caps when setting caps
-      * 696899 : oggdemux: non flushing segment seek makes buffers late
-      * 697092 : rtspconnection: The " x-server-ip-address " header with wrong IP address is added to the GET response
-      * 697162 : SDP library is not parsing correctly
-      * 697277 : SDP library does not include timing line if there is not timing information
-      * 697820 : playbin: Enabling visualizations during playback stops the pipeline
-      * 697824 : videometa: gst_buffer_add_meta() can return NULL
-
-Changes since 1.0.5:
-
-      * adder: fix setting caps via the "caps" property
-      * alsasink: don't use 100% CPU
-      * appsrc: fix locking order
-      * encodebin: sync muxer state with parent bin so encodebin can be added dynamically to pipeline
-      * libvisual: fix improper video frame clear operation
-      * pango: fix attribute list handling
-      * playbin: fix playsink caps handling so that converters get plugged when needed
-      * playbin: fix subtitleoverlay caps handling to avoid not-negotiated errors when plugins are missing
-      * videoscale: Correct DAR and border calculations
-      * ximagesink: fon't access structures of EMPTY caps
-      * typefinding: fix y4m caps
-      * build: fix build with automake 1.13
-
-Bugs fixed since 1.0.5:
-
-      * 688476 : Seek in matroska file fails with not-negotiated error when using playsink
-      * 688803 : playbin: converters don't work? not-negotiated error with non-1/1 PAR and ximagesink
-      * 690937 : alsasink: playing video files with gst-launch causes CPU 100%
-      * 691687 : GstImageType documentation is misleading
-      * 693224 : appsrc deadlocks when setting pad caps before pushing buffer
-      * 693372 : 1.0 branch is still using AM_CONFIG_HEADER
-      * 693981 : subparse: fix bogus discontinuity detection if offset not set on buffers
-      * 696019 : videoscale does not preserve DAR with add-borders=TRUE 
-      
-Changes since 1.0.4:
-
-      * alsasrc: don't output buffers without timestamps or with bogus timestamps
-      * discoverer, decodebin: fix state change re-sync race that might lead to deadlocks
-      * video: fix crashes with and frame sizes of A420 video format
-
-Bugs fixed since 1.0.4:
-
-      * 691244 : unable to play flv file with VP6 alpha video
-
-Changes since 1.0.3:
-
-      * playbin: fix occasional not-negotiated errors when switching visualisations
-      * ssaparse: ignore invalid UTF-8 in SSA/ASS subtitles init sections in matroska files
-      * streamsynchronizer: better timestamp and gap handling at EOS, fixing potential OOM in baseaudiosink
-      * bindings: fix annotation for gst_app_src_push_buffer(), fixing crash
-      * bindings: add several missing annotations for GstRtspMessage API
-
-Bugs fixed since 1.0.3:
-
-      * 679976 : playbin: switching visualisations results in not-negotiated flow erros
-      * 689814 : Memory allocated by GstVideoDecoder base class is not freed
-      * 689873 : gstrtspmessage: Several functions are missing introspection annotations...
-
-Changes since 1.0.2:
-
-      * typefind: detect isml ftyp as iso-fragmented video/quicktime
-      * typefinding improvements fixing playback of some wavpack files
-      * textoverlay rendering fixes
-      * gobject-introspection annotation fixes
-
-Bugs fixed since 1.0.2:
-
-      * 686276 : rtsp: http tunneling does not work
-      * 687030 : ogg: crash checking header of empty ogg packet
-      * 687055 : exiftag: fix use after free and memory leak
-      * 687057 : vorbistag: fix memory leak
-      * 687421 : GstRTSPConnection: a number of methods not annotated correctly
-      * 687459 : textoverlay:forward allocation queries instead of discarding
-      * 687473 : rtspconnection: remove extra 'return'
-      * 687620 : GstRTSPMessage: fix GI annotations
-      * 687666 : textoverlay: aborts when shading is enabled but not supported for the current video format
-      * 687674 : typefinding: some WavPack files are mis-detected as AAC and fail to play
-      * 687991 : videodecoder: add getter for QoS proportion
-      * 687994 : rtsp: missing g-i annotation for gst_rtsp_message_set_body
-      * 688151 : pbutils missing description for Opus codec
-      * 686841 : pango: fix shadow text color
-
-API additions since 1.0.2:
-
-      * gst_video_decoder_get_qos_proportion()
-
-Changes since 1.0.1:
-
-      * Parallel installability with 0.10.x series
-      * alsa: fix probing of supported formats, and advertise non-native-endianness formats as fallback
-      * audiobasesink: properly handle GAP events (fixing some isses with e.g. certain DVD menus)
-      * audioconvert: try harder to not convert or to preserve input format precision
-      * audiodecoder: leak fixes and refcounting fixes
-      * audioresample: re-enable the SSE/SSE2 code paths for better performance
-      * riff: fix paletted RGB formats and msvideo mapping
-      * rtsp: make formatting and parsing of range floating-point values locale-independent
-      * playbin: streamsynchronizer fixes, esp. for handling corner-cases near EOS
-      * tcpserver{sink,src}: add 'current-port' property and signal actually used port
-      * videoconvert: fix handling of paletted RGB formats
-      * videodecoder: don't leak message strings when error is not fatal
-      * videodecoder: finetune missing timestamp estimating
-      * videotestsrc: add palette for paletted RGB formats
-      * vorbistag: fix writing of image tags into vorbis comments
-
-Bugs fixed since 1.0.1:
-
-      * 580093 : tcpserversink,src: add 'current-port' property and signal actually used port when port=0 was set
-      * 680904 : alsasink: no supported formats detected with using USB sound card on big-endian system
-      * 683098 : videodecoder: log failure message if acquire_buffer failed
-      * 684411 : rtsp: range in SDP formatted according to locale
-      * 685273 : Pre-rolling on GAP events doesn't work properly for audio sinks
-      * 685711 : audio, video: update docs for virtual functions that require chaining up
-      * 685938 : [decodebin] Issues with group switching algorithm
-      * 686081 : adder: all unit tests crash now after collectpads changes
-      * 686298 : Cannot decode some AVI files with Microsoft Video 1
-
-Changes since 1.0.0:
-    
-      * videodecoder and -encoder timestamp handling improvements
-      * thread-safey fixes for GstMeta registrations and GstVideoDecoder
-      * bug fixes
-
-Bugs fixed since 1.0.0:
-     
-      * 684424 : playbin: external subtitles break playback
-      * 684832 : videodecoder: Takes stream lock in query function
-      * 685110 : encodebin fails to release mux request sink pad for GstId3Mux as it is a static one for this mux
-      * 685242 : rtsp: mark url argument of gst_rtsp_url_parse as out
-      * 685332 : GstMeta registry race
-      * 685490 : audioencoder: don't require base class to implement to start vfunc
-
-New features in 1.0.0:
-
-      * Parallel installability with 0.10.x series
-      * See release notes for more details
diff --git a/README b/README
index 908386d..5df2d2b 100644
--- a/README
+++ b/README
@@ -1,3 +1,5 @@
+GStreamer 1.1.x development series
+
 WHAT IT IS
 ----------
 
@@ -21,8 +23,8 @@
 
 You can join us on IRC - #gstreamer on irc.freenode.org
 
-GStreamer 0.10 series
----------------------
+GStreamer 1.0 series
+--------------------
 
 Starring
 
@@ -135,13 +137,14 @@
 ---------
 
 - Linux is of course fully supported
-- FreeBSD is reported to work; other BSD's should work too
+- FreeBSD is reported to work; other BSDs should work too
 - Solaris is reported to work; a specific sunaudiosink plugin has been written
-- MacOSX is reported to work; specific audio and video sinks have been written
-- Windows support is experimental but improving.  Output sinks have been
-  written but are not yet included in the code. We support
-  - MSys/MingW builds
-  - Microsoft Visual Studio 6 builds (see win32/README.txt)
+- MacOSX works, binary 1.x packages can be built using the cerbero build tool
+- Windows works; binary 1.x packages can be built using the cerbero build tool
+  - MSys/MinGW builds
+  - Microsoft Visual Studio builds are not yet available or supported
+- Android works, binary 1.x packages can be built using the cerbero build tool
+- iOS works
 
 INSTALLING FROM PACKAGES
 ------------------------
@@ -154,7 +157,7 @@
 - want to hack on GStreamer
 - want to verify that a bug has been fixed
 - do not have a sane distribution
-should you choose to build from source tarballs or CVS.
+should you choose to build from source tarballs or git.
 
 Find more information about the various packages at
 http://gstreamer.freedesktop.org/download/
@@ -190,13 +193,13 @@
   functionality you're probably looking for by now, so go on and read
   that README.
 
-COMPILING FROM CVS
+COMPILING FROM GIT
 ------------------
 
-When building from CVS sources, you will need to run autogen.sh to generate 
+When building from git sources, you will need to run autogen.sh to generate
 the build system files.
 
-You will need a set of additional tools typical for building from CVS,
+You will need a set of additional tools typical for building from git,
 including:
 - autoconf
 - automake
@@ -208,10 +211,7 @@
 
 Check autogen.sh options by running autogen.sh --help
 
-autogen.sh can pass on arguments to configure - you just need to separate them
-from autogen.sh with -- between the two.
-prefix has been added to autogen.sh but will be passed on to configure because
-some build scripts like that.
+autogen.sh can pass on arguments to configure
 
 When you have done this once, you can use autoregen.sh to re-autogen with
 the last passed options as a handy shortcut.  Use it.
@@ -219,9 +219,17 @@
 After the autogen.sh stage, you can follow the directions listed in
 "COMPILING FROM SOURCE"
 
-You can also run your whole cvs stack uninstalled.  The script in
-the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting
-up your environment for this.
+You can also run your whole git stack uninstalled in your home directory,
+so that you can quickly test changes without affecting your system setup or
+interfering with GStreamer installed from packages.  Many GStreamer developers
+use an uninstalled setup for their work.
+
+There is a 'create-uninstalled-setup.sh' script in
+
+  http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
+
+to easily create an uninstalled setup from scratch.
+
 
 PLUG-IN DEPENDENCIES AND LICENSES
 ---------------------------------
diff --git a/RELEASE b/RELEASE
index 92defb3..f6a1829 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer Base Plugins 1.0.8
+Release notes for GStreamer Base Plugins 1.1.2
 
 
 The GStreamer team is proud to announce a new bug-fix release
@@ -60,19 +60,29 @@
 
 Features of this release
     
-      * tag: ignore malformed ID3v2 TDAT frames
 
 Bugs fixed in this release
      
-      * 636245 : [riff] For ADPCM codecs the average bitrate should be calculated instead of trusting the format header
-      * 688803 : playbin: converters don't work? not-negotiated error with non-1/1 PAR and ximagesink
-      * 690420 : decodebin: Race between GstBin and decodebin trying to change states of child elements
-      * 698896 : liveadder: What is the unit for " latency " ?
-      * 699923 : typefind: fix detection of HLS playlists with alternative renditions
-      * 701976 : flvdemux: Forwards CAPS events from upstream
-      * 703128 : videotestsrc leaks memory
-      * 703283 : id3: gst_date_time_new: assertion `(month > 0 &  & month < = 12) || month == -1' failed with malformed TDAT frames
-      * 699794 : uridecodebin: Leaking queue2 elements in playbin gapless mode
+      * 696300 : H264 video is playing too fast because of invalid PTS:
+      * 698562 : rtpbuffer: broken language bindings for gst_rtp_buffer_get_payload
+      * 700967 : playbin: sink messages are not received in the bus
+      * 701798 : rtspsrc: Regression with connections to certain live stream
+      * 701924 : tests: add playbin test for autoplugging of decoder-sink combination based on capsfeatures
+      * 701943 : playbin: unit tests fail
+      * 701997 : [regression] playbin: loses audio clock and hangs when switching songs after about-to-finish
+      * 702195 : playbin: Emit {audio,text,video}-changed signals when pads are removed
+      * 702215 : pbutils: descriptions: Allow smart codec tag handling
+      * 702465 : playsink: Fix the block diagram of deinterlace bin.
+      * 702467 : audiobasesrc: missing calls to gst_buffer_unmap
+      * 702545 : tags: xmp: adding tags is very slow
+      * 702652 : rtspconnection: tunneled connections do not work
+      * 702840 : queue2 does not work with use-buffering=true
+      * 703088 : rtspsrc parse error race condition
+      * 703119 : rtpbasepayload leaks the segment event
+      * 703196 : videoencoder: Send all pending events with type < CAPS before sending caps.
+      * 703256 : typefind: Fix low probability typefinding for video/mpeg on small amount of data
+      * 703477 : audioresample: disable NEON code path for 16-bit integer
+      * 703684 : POTFILES.in is out of date
 
 ==== Download ====
 
@@ -109,13 +119,20 @@
         
 Contributors to this release
     
-      * Andoni Morales Alastruey
+      * Branko Subasic
+      * Brendan Long
+      * Carlos Rafael Giani
       * Edward Hervey
       * Jonas Holmberg
-      * Julien Moutte
       * Marcin Lewandowski
-      * Matej Knopp
+      * Mathieu Duponchelle
+      * Ognyan Tonchev
+      * Patricia Muscalu
+      * Piotr Drąg
       * Sebastian Dröge
+      * Sreerenj Balachandran
       * Thibault Saunier
       * Tim-Philipp Müller
+      * Vincent Penquerc'h
+      * Wim Taymans
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index cce21b0..9dd1ed5 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -12,33 +11,31 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.13'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.13.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -54,24 +51,22 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.13.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -90,7 +85,7 @@
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -116,22 +111,19 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -150,16 +142,14 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 12
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -169,7 +159,7 @@
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -182,12 +172,13 @@
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -195,8 +186,8 @@
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -236,16 +227,16 @@
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -254,8 +245,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -263,7 +254,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -311,7 +302,7 @@
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -321,9 +312,13 @@
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -338,20 +333,18 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -364,7 +357,7 @@
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -376,21 +369,19 @@
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -408,7 +399,7 @@
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -418,15 +409,12 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -442,7 +430,7 @@
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -471,31 +459,40 @@
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -506,28 +503,32 @@
 			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
@@ -555,15 +556,12 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -577,16 +575,14 @@
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -603,20 +599,17 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless `enable' is passed literally.
-# For symmetry, `disable' may be passed as well.  Anyway, the user
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
 # can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
 [m4_case(m4_default([$1], [disable]),
@@ -627,10 +620,11 @@
 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
-[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
-			  (and sometimes confusing) to the casual installer],
-      [USE_MAINTAINER_MODE=$enableval],
-      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
   AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
@@ -638,18 +632,14 @@
 ]
 )
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -667,7 +657,7 @@
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -692,15 +682,12 @@
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_PROG_CC_C_O
 # --------------
 # Like AC_PROG_CC_C_O, but changed for automake.
@@ -729,15 +716,12 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -745,11 +729,10 @@
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -762,29 +745,32 @@
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_MKDIR_P
 # ---------------
-# Check for `mkdir -p'.
+# Check for 'mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
 [AC_PREREQ([2.60])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl FIXME we are no longer going to remove this! adjust warning
+dnl FIXME message accordingly.
+AC_DIAGNOSE([obsolete],
+[$0: this macro is deprecated, and will soon be removed.
+You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.])
 dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
 dnl while keeping a definition of mkdir_p for backward compatibility.
 dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
@@ -801,15 +787,12 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -819,7 +802,7 @@
 # --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -833,13 +816,246 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+
+# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
+  dnl supported. (2.0 was released on October 16, 2000).
+  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
+ python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
+
+  AC_ARG_VAR([PYTHON], [the Python interpreter])
+
+  m4_if([$1],[],[
+    dnl No version check is needed.
+    # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+    fi
+    am_display_PYTHON=python
+  ], [
+    dnl A version check is needed.
+    if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      AC_MSG_CHECKING([whether $PYTHON version is >= $1])
+      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+			      [AC_MSG_RESULT([yes])],
+			      [AC_MSG_RESULT([no])
+			       AC_MSG_ERROR([Python interpreter is too old])])
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+	[am_cv_pathless_PYTHON],[
+	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+	  test "$am_cv_pathless_PYTHON" = none && break
+	  AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+	done])
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+	PYTHON=:
+      else
+        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+  ])
+
+  if test "$PYTHON" = :; then
+  dnl Run any user-specified action, or abort.
+    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+  else
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behavior
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+    [am_cv_python_pythondir],
+    [if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+
+  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+    [am_cv_python_pyexecdir],
+    [if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+  dnl Run any user-specified action.
+  $2
+  fi
+
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # AM_RUN_LOG(COMMAND)
 # -------------------
@@ -854,22 +1070,16 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -880,32 +1090,40 @@
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
 
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -915,31 +1133,50 @@
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
 dnl
-dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
 dnl do not support nested variable expansions.
 dnl See automake bug#9928 and bug#10237.
 am_make=${MAKE-make}
@@ -957,7 +1194,7 @@
   am_cv_make_support_nested_variables=no
 fi])
 if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using `$V' instead of `$(V)' breaks IRIX make.
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
   AM_V='$(V)'
   AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
 else
@@ -974,44 +1211,40 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1025,18 +1258,16 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -1046,76 +1277,114 @@
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
 
-  # tar/untar a dummy directory, and stop if the command works
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
@@ -1124,7 +1393,6 @@
 m4_include([common/m4/as-auto-alt.m4])
 m4_include([common/m4/as-compiler-flag.m4])
 m4_include([common/m4/as-libtool.m4])
-m4_include([common/m4/as-python.m4])
 m4_include([common/m4/as-scrub-include.m4])
 m4_include([common/m4/as-version.m4])
 m4_include([common/m4/ax_create_stdint_h.m4])
diff --git a/autogen.sh b/autogen.sh
index 3629f00..2f34610 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,5 +1,11 @@
 #!/bin/sh
+#
+# gst-plugins-base autogen.sh
+#
 # Run this to generate all the initial makefiles, etc.
+#
+# This file has been generated from common/autogen.sh.in via common/update-autogen
+
 
 test -n "$srcdir" || srcdir=`dirname "$0"`
 test -n "$srcdir" || srcdir=.
@@ -9,7 +15,7 @@
 
 DIE=0
 package=gst-plugins-base
-srcfile=gst/audiotestsrc/gstaudiotestsrc.c
+srcfile=gst-plugins-base.doap
 
 # Make sure we have common
 if test ! -f common/gst-autogen.sh;
@@ -37,16 +43,22 @@
 
 # GNU gettext automake support doesn't get along with git.
 # https://bugzilla.gnome.org/show_bug.cgi?id=661128
-touch -t 200001010000 po/gst-plugins-base-0.10.pot
+if test -d po ; then
+  touch -t 200001010000 po/gst-plugins-base-1.0.pot
+fi
 
 CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc'
 
+if test "x$package" = "xgstreamer"; then
+  CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning"
+fi
+
 autogen_options $@
 
 printf "+ check for build tools"
-if test ! -z "$NOCHECK"; then echo " skipped"; else  echo; fi
-version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262" \
-              "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 62 || DIE=1
+if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else  echo; fi
+version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 " \
+              "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 68 || DIE=1
 version_check "automake" "$AUTOMAKE automake automake-1.11" \
               "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1
 version_check "autopoint" "autopoint" \
@@ -64,7 +76,7 @@
 die_check $DIE
 
 # if no arguments specified then this will be printed
-if test -z "$*"; then
+if test -z "$*" && test -z "$NOCONFIGURE"; then
   echo "+ checking for autogen.sh options"
   echo "  This autogen script will automatically run ./configure as:"
   echo "  ./configure $CONFIGURE_DEF_OPT"
@@ -75,16 +87,17 @@
 toplevel_check $srcfile
 
 # autopoint
-#    older autopoint (< 0.12) has a tendency to complain about mkinstalldirs
-if test -x mkinstalldirs; then rm mkinstalldirs; fi
 #    first remove patch if necessary, then run autopoint, then reapply
 if test -f po/Makefile.in.in;
 then
   patch -p0 -R --forward < common/gettext.patch
 fi
-tool_run "$autopoint --force"
+tool_run "$autopoint" "--force" "patch -p0 < common/gettext.patch"
 patch -p0 < common/gettext.patch
 
+# aclocal
+if test -f acinclude.m4; then rm acinclude.m4; fi
+
 tool_run "$libtoolize" "--copy --force"
 tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS"
 tool_run "$autoheader"
@@ -93,21 +106,8 @@
 echo timestamp > stamp-h.in 2> /dev/null
 
 tool_run "$autoconf"
-tool_run "$automake" "-a -c"
-
-# if enable exists, add an -enable option for each of the lines in that file
-if test -f enable; then
-  for a in `cat enable`; do
-    CONFIGURE_FILE_OPT="--enable-$a"
-  done
-fi
-
-# if disable exists, add an -disable option for each of the lines in that file
-if test -f disable; then
-  for a in `cat disable`; do
-    CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a"
-  done
-fi
+debug "automake: $automake"
+tool_run "$automake" "--add-missing --copy"
 
 test -n "$NOCONFIGURE" && {
   echo "+ skipping configure stage for package $package, as requested."
@@ -118,12 +118,12 @@
 cd "$olddir"
 
 echo "+ running configure ... "
-test ! -z "$CONFIGURE_DEF_OPT" && echo "  $srcdir/configure default flags: $CONFIGURE_DEF_OPT"
-test ! -z "$CONFIGURE_EXT_OPT" && echo "  $srcdir/configure external flags: $CONFIGURE_EXT_OPT"
-test ! -z "$CONFIGURE_FILE_OPT" && echo "  $srcdir/configure enable/disable flags: $CONFIGURE_FILE_OPT"
+test ! -z "$CONFIGURE_DEF_OPT" && echo "  default flags:  $CONFIGURE_DEF_OPT"
+test ! -z "$CONFIGURE_EXT_OPT" && echo "  external flags: $CONFIGURE_EXT_OPT"
 echo
 
-"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || {
+echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT
+"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || {
         echo "  configure failed"
         exit 1
 }
diff --git a/common/Makefile.in b/common/Makefile.in
index 9e52d93..c49a465 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog \
+	README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,21 +124,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -119,9 +153,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -504,22 +558,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -534,57 +591,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -600,12 +612,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -617,15 +624,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -634,6 +637,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -794,22 +812,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/common/README b/common/README
new file mode 100644
index 0000000..83a1b88
--- /dev/null
+++ b/common/README
@@ -0,0 +1,255 @@
+GStreamer @SERIES_VERSION@
+
+WHAT IT IS
+----------
+
+This is GStreamer, a framework for streaming media.
+
+WHERE TO START
+--------------
+
+We have a website at
+http://gstreamer.freedesktop.org/
+
+You should start by going through our FAQ at
+http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/
+
+There is more documentation; go to
+http://gstreamer.freedesktop.org/documentation
+
+You can subscribe to our mailing lists; see the website for details.
+
+We track bugs in GNOME's bugzilla; see the website for details.
+
+You can join us on IRC - #gstreamer on irc.freenode.org
+
+GStreamer 1.0 series
+--------------------
+
+Starring
+
+  GSTREAMER
+
+The core around which all other modules revolve.  Base functionality and
+libraries, some essential elements, documentation, and testing.
+
+  BASE
+
+A well-groomed and well-maintained collection of GStreamer plug-ins and
+elements, spanning the range of possible types of elements one would want
+to write for GStreamer.  
+
+And introducing, for the first time ever, on the development screen ...
+
+  THE GOOD
+
+ --- "Such ingratitude.  After all the times I've saved your life."
+
+A collection of plug-ins you'd want to have right next to you on the
+battlefield.  Shooting sharp and making no mistakes, these plug-ins have it
+all: good looks, good code, and good licensing.  Documented and dressed up
+in tests.  If you're looking for a role model to base your own plug-in on,
+here it is.
+
+If you find a plot hole or a badly lip-synced line of code in them,
+let us know - it is a matter of honour for us to ensure Blondie doesn't look
+like he's been walking 100 miles through the desert without water.
+
+  THE UGLY
+
+  --- "When you have to shoot, shoot.  Don't talk."
+
+There are times when the world needs a color between black and white.
+Quality code to match the good's, but two-timing, backstabbing and ready to
+sell your freedom down the river.  These plug-ins might have a patent noose
+around their neck, or a lock-up license, or any other problem that makes you
+think twice about shipping them.
+
+We don't call them ugly because we like them less.  Does a mother love her
+son less because he's not as pretty as the other ones ? No  - she commends
+him on his great personality.  These plug-ins are the life of the party.
+And we'll still step in and set them straight if you report any unacceptable
+behaviour - because there are two kinds of people in the world, my friend:
+those with a rope around their neck and the people who do the cutting.
+
+  THE BAD
+
+  --- "That an accusation?"
+
+No perfectly groomed moustache or any amount of fine clothing is going to
+cover up the truth - these plug-ins are Bad with a capital B. 
+They look fine on the outside, and might even appear to get the job done, but
+at the end of the day they're a black sheep. Without a golden-haired angel
+to watch over them, they'll probably land in an unmarked grave at the final
+showdown.
+
+Don't bug us about their quality - exercise your Free Software rights,
+patch up the offender and send us the patch on the fastest steed you can
+steal from the Confederates. Because you see, in this world, there's two
+kinds of people, my friend: those with loaded guns and those who dig.
+You dig.
+
+The Lowdown
+-----------
+
+  --- "I've never seen so many plug-ins wasted so badly."
+
+GStreamer Plug-ins has grown so big that it's hard to separate the wheat from
+the chaff.  Also, distributors have brought up issues about the legal status
+of some of the plug-ins we ship.  To remedy this, we've divided the previous
+set of available plug-ins into four modules:
+
+- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range
+  of possible types of elements; these are continuously kept up-to-date
+  with any core changes during the development series.
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+  - These elements come with examples, documentation, and regression tests.
+
+- gst-plugins-good: a set of plug-ins that we consider to have good quality
+  code, correct functionality, our preferred license (LGPL for the plug-in
+  code, LGPL or LGPL-compatible for the supporting library).
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+ 
+- gst-plugins-ugly: a set of plug-ins that have good quality and correct
+  functionality, but distributing them might pose problems.  The license
+  on either the plug-ins or the supporting libraries might not be how we'd
+  like. The code might be widely known to present patent problems.
+
+  - Distributors should check if they want/can ship these plug-ins.
+  - People writing elements should base their code on these elements.
+
+- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the
+  rest.  They might be close to being good quality, but they're missing
+  something - be it a good code review, some documentation, a set of tests,
+  a real live maintainer, or some actual wide use.
+  If the blanks are filled in they might be upgraded to become part of
+  either gst-plugins-good or gst-plugins-ugly, depending on the other factors.
+
+  - If the plug-ins break, you can't complain - instead, you can fix the
+    problem and send us a patch, or bribe someone into fixing them for you.
+  - New contributors can start here for things to work on.
+
+PLATFORMS
+---------
+
+- Linux is of course fully supported
+- FreeBSD is reported to work; other BSDs should work too
+- Solaris is reported to work; a specific sunaudiosink plugin has been written
+- MacOSX works, binary 1.x packages can be built using the cerbero build tool
+- Windows works; binary 1.x packages can be built using the cerbero build tool
+  - MSys/MinGW builds
+  - Microsoft Visual Studio builds are not yet available or supported
+- Android works, binary 1.x packages can be built using the cerbero build tool
+- iOS works
+
+INSTALLING FROM PACKAGES
+------------------------
+
+You should always prefer installing from packages first.  GStreamer is
+well-maintained for a number of distributions, including Fedora, Debian,
+Ubuntu, Mandrake, Gentoo, ...
+
+Only in cases where you:
+- want to hack on GStreamer
+- want to verify that a bug has been fixed
+- do not have a sane distribution
+should you choose to build from source tarballs or git.
+
+Find more information about the various packages at
+http://gstreamer.freedesktop.org/download/
+
+COMPILING FROM SOURCE TARBALLS
+------------------------------
+
+- again, make sure that you really need to install from source !
+  If GStreamer is one of your first projects ever that you build from source,
+  consider taking on an easier project.
+
+- check output of ./configure --help to see if any options apply to you
+- run
+  ./configure
+  make
+
+  to build GStreamer.
+- if you want to install it (not required, but what you usually want to do), run
+  make install
+
+- try out a simple test:
+  gst-launch -v fakesrc num_buffers=5 ! fakesink
+  (If you didn't install GStreamer, prefix gst-launch with tools/)
+
+  If it outputs a bunch of messages from fakesrc and fakesink, everything is
+  ok.
+
+  If it did not work, keep in mind that you might need to adjust the
+  PATH and/or LD_LIBRARY_PATH environment variables to make the system
+  find GStreamer in the prefix where you installed (by default that is /usr/local).
+
+- After this, you're ready to install gst-plugins, which will provide the
+  functionality you're probably looking for by now, so go on and read
+  that README.
+
+COMPILING FROM GIT
+------------------
+
+When building from git sources, you will need to run autogen.sh to generate
+the build system files.
+
+You will need a set of additional tools typical for building from git,
+including:
+- autoconf
+- automake
+- libtool
+
+autogen.sh will check for recent enough versions and complain if you don't have
+them.  You can also specify specific versions of automake and autoconf with
+--with-automake and --with-autoconf
+
+Check autogen.sh options by running autogen.sh --help
+
+autogen.sh can pass on arguments to configure
+
+When you have done this once, you can use autoregen.sh to re-autogen with
+the last passed options as a handy shortcut.  Use it.
+
+After the autogen.sh stage, you can follow the directions listed in
+"COMPILING FROM SOURCE"
+
+You can also run your whole git stack uninstalled in your home directory,
+so that you can quickly test changes without affecting your system setup or
+interfering with GStreamer installed from packages.  Many GStreamer developers
+use an uninstalled setup for their work.
+
+There is a 'create-uninstalled-setup.sh' script in
+
+  http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/
+
+to easily create an uninstalled setup from scratch.
+
+
+PLUG-IN DEPENDENCIES AND LICENSES
+---------------------------------
+
+GStreamer is developed under the terms of the LGPL (see LICENSE file for
+details). Some of our plug-ins however rely on libraries which are available
+under other licenses. This means that if you are distributing an application
+which has a non-GPL compatible license (for instance a closed-source
+application) with GStreamer, you have to make sure not to distribute GPL-linked
+plug-ins.
+
+When using GPL-linked plug-ins, GStreamer is for all practical reasons
+under the GPL itself.
+
+HISTORY
+-------
+
+The fundamental design comes from the video pipeline at Oregon Graduate
+Institute, as well as some ideas from DirectMedia.  It's based on plug-ins that
+will provide the various codec and other functionality.  The interface
+hopefully is generic enough for various companies (ahem, Apple) to release
+binary codecs for Linux, until such time as they get a clue and release the
+source.
diff --git a/common/c-to-xml.py b/common/c-to-xml.py
index 397c112..7a7a35b 100644
--- a/common/c-to-xml.py
+++ b/common/c-to-xml.py
@@ -5,6 +5,8 @@
 Convert a C program to valid XML to be included in docbook
 """
 
+from __future__ import print_function, unicode_literals
+
 import sys
 import os
 from xml.sax import saxutils
@@ -22,13 +24,13 @@
     content = open(source, "r").read()
 
     # print header
-    print '<?xml version="1.0"?>'
-    print '<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">'
-    print
-    print '<programlisting>'
+    print ('<?xml version="1.0"?>')
+    print ('<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">')
+    print ()
+    print ('<programlisting>')
 
     # print content
-    print saxutils.escape(content).encode('UTF-8')
-    print '</programlisting>'
+    print (saxutils.escape(content))
+    print ('</programlisting>')
 
 main()
diff --git a/common/check.mak b/common/check.mak
index 0aec843..285876c 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -11,7 +11,7 @@
 	@true
 endif
 
-LOOPS = 10
+LOOPS ?= 10
 
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
@@ -74,6 +74,17 @@
 	--gen-suppressions=all					\
 	./$* 2>&1 | tee suppressions.log
 	
+# valgrind torture any given test
+%.valgrind-torture: %
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) $*.valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind any given test until failure by running make test.valgrind-forever
 %.valgrind-forever: %
 	@while $(MAKE) $*.valgrind; do				\
@@ -86,9 +97,34 @@
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
 
+%.lcov-reset:
+	$(MAKE) $*.lcov-run
+	$(MAKE) $*.lcov-report
+
+%.lcov: %
+	$(MAKE) $*.lcov-reset
+
+if GST_GCOV_ENABLED
+%.lcov-clean:
+	$(MAKE) -C $(top_builddir) lcov-clean
+
+%.lcov-run:
+	$(MAKE) $*.lcov-clean
+	$(MAKE) $*.check
+
+%.lcov-report:
+	$(MAKE) -C $(top_builddir) lcov-report
+else
+%.lcov-run:
+	echo "Need to reconfigure with --enable-gcov"
+
+%.lcov-report:
+	echo "Need to reconfigure with --enable-gcov"
+endif
+
 # torture tests
 torture: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Torturing tests ..."
 	@for i in `seq 1 $(LOOPS)`; do				\
 		$(MAKE) check ||				\
@@ -101,7 +137,7 @@
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -127,6 +163,29 @@
 		false;							\
 	fi
 
+# valgrind all tests until failure
+valgrind-forever: $(TESTS)
+	-rm test-registry.*
+	@echo "Forever valgrinding tests ..."
+	@while true; do						\
+		$(MAKE) valgrind ||				\
+		(echo "Failure"; exit 1) ||			\
+		exit 1;						\
+	done
+
+# valgrind torture all tests
+valgrind-torture: $(TESTS)
+	-rm test-registry.*
+	@echo "Torturing and valgrinding tests ..."
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind all tests and generate suppressions
 valgrind.gen-suppressions: $(TESTS)
 	@echo "Valgrinding tests ..."
@@ -166,10 +225,13 @@
 	@echo "make (dir)/(test).gdb              -- start up gdb for the given test"
 	@echo
 	@echo "make valgrind                      -- valgrind all tests"
+	@echo "make valgrind-forever              -- valgrind all tests forever"
+	@echo "make valgrind-torture              -- valgrind all tests $(LOOPS) times"
 	@echo "make valgrind.gen-suppressions     -- generate suppressions for all tests"
 	@echo "                                      and save to suppressions.log"
 	@echo "make (dir)/(test).valgrind         -- valgrind the given test"
 	@echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever"
+	@echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times"
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
diff --git a/common/coverage/coverage-report-entry.pl b/common/coverage/coverage-report-entry.pl
index 51c506c..d0036b3 100644
--- a/common/coverage/coverage-report-entry.pl
+++ b/common/coverage/coverage-report-entry.pl
@@ -14,7 +14,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 print <<EOF;
diff --git a/common/coverage/coverage-report.pl b/common/coverage/coverage-report.pl
index ed30f8d..18bd6f1 100644
--- a/common/coverage/coverage-report.pl
+++ b/common/coverage/coverage-report.pl
@@ -14,7 +14,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 use warnings;
 use strict;
diff --git a/common/coverage/coverage-report.xsl b/common/coverage/coverage-report.xsl
index b19ebb6..3fe124b 100644
--- a/common/coverage/coverage-report.xsl
+++ b/common/coverage/coverage-report.xsl
@@ -15,7 +15,7 @@
 #

 # You should have received a copy of the GNU General Public License

 # along with this program; if not, write to the Free Software

-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

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

 -->

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

                 version="1.0">

diff --git a/common/coverage/lcov.mak b/common/coverage/lcov.mak
index fc1f6b2..b45728a 100644
--- a/common/coverage/lcov.mak
+++ b/common/coverage/lcov.mak
@@ -1,5 +1,5 @@
 ## .PHONY so it always rebuilds it
-.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload
+.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
 lcov-reset:
@@ -11,10 +11,14 @@
 	$(MAKE) lcov-reset
 
 if GST_GCOV_ENABLED
-# reset run coverage tests
-lcov-run:
+# reset lcov stats
+lcov-clean:
 	@-rm -rf lcov
 	lcov --directory . --zerocounters
+
+# reset run coverage tests
+lcov-run:
+	-$(MAKE) lcov-clean
 	-if test -d tests/check; then $(MAKE) -C tests/check inspect; fi
 	-$(MAKE) check
 
diff --git a/common/gst.supp b/common/gst.supp
index d7f8961..05ecbb9 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -3961,3 +3961,18 @@
    fun:gst_system_clock_init
 }
 
+{
+   <glib types are singletons>
+   Memcheck:Leak
+   fun:calloc
+   ...
+   fun:gobject_init_ctor
+}
+
+{
+   <quark table is leaked on purpose if it grows too big>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:g_quark_from*_string
+}
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 0d69a86..09039a5 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -16,7 +16,7 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 #
@@ -307,10 +307,10 @@
             /* output element data */
             fputs ("    <element>\\n", inspect);
             fputs (xmlprint(6, "name", gst_plugin_feature_get_name (feature)),inspect);
-            fputs (xmlprint(6, "longname", gst_element_factory_get_longname (factory)),inspect);
-            fputs (xmlprint(6, "class", gst_element_factory_get_klass (factory)),inspect);
-            fputs (xmlprint(6, "description", gst_element_factory_get_description (factory)),inspect);
-            fputs (xmlprint(6, "author", gst_element_factory_get_author (factory)),inspect);
+            fputs (xmlprint(6, "longname", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)),inspect);
+            fputs (xmlprint(6, "class", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS)),inspect);
+            fputs (xmlprint(6, "description", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_DESCRIPTION)),inspect);
+            fputs (xmlprint(6, "author", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_AUTHOR)),inspect);
             fputs ("      <pads>\\n", inspect);
 
             /* output pad-template data */
@@ -354,11 +354,11 @@
       factory = GST_ELEMENT_FACTORY (l->data);
       type = gst_element_factory_get_element_type (factory);
       if (type != 0) {
-        $debug_log ("adding type for factory %s", gst_element_factory_get_longname (factory));
+        $debug_log ("adding type for factory %s", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
         object_types[i++] = type;
       } else {
         g_message ("type info for factory %s not found",
-            gst_element_factory_get_longname (factory));
+            gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME));
       }
       l = g_list_next (l);
     }
diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak
index 2468cb0..f19e7d7 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -94,9 +94,9 @@
 INSPECT_REGISTRY=$(top_builddir)/docs/plugins/inspect-registry.xml
 INSPECT_ENVIRONMENT=\
 	LC_ALL=C \
-	GST_PLUGIN_SYSTEM_PATH= \
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
-	GST_REGISTRY=$(INSPECT_REGISTRY) \
+	GST_PLUGIN_SYSTEM_PATH_1_0= \
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
+	GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \
 	PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 	$(INSPECT_EXTRA_ENVIRONMENT)
 
@@ -222,10 +222,7 @@
 	    mkhtml_options="$$mkhtml_options --verbose"; \
 	  fi; \
 	fi; \
-	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
-	@mv html/index.sgml html/index.sgml.bak
-	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-	@rm -f html/index.sgml.bak
+	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE)
 	@rm -f html/$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
 	@rm -f html/version.entities
@@ -289,9 +286,9 @@
 	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	    done; \
 	  fi; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index a1e07dc..9d76889 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -81,9 +81,9 @@
 		--ignore-headers="$(IGNORE_HFILES)"
 	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then	\
 	    echo "  DOC   Introspecting gobjects"; \
-	    GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`		\
-	    GST_PLUGIN_PATH=						\
-	    GST_REGISTRY=doc-registry.xml				\
+	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
+	    GST_PLUGIN_PATH_1_0=						\
+	    GST_REGISTRY_1_0=doc-registry.xml				\
 	    $(GTKDOC_EXTRA_ENVIRONMENT)					\
 	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"				\
 	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
@@ -130,10 +130,7 @@
 	if test "$(?)" = "0"; then \
 	  mkhtml_options=--path="$(abs_srcdir)"; \
 	fi; \
-	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-	@mv html/index.sgml html/index.sgml.bak
-	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-	@rm -f html/index.sgml.bak
+	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
 	@rm -f version.entities
 	@test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
@@ -189,9 +186,9 @@
 	    echo '-- Installing '$$i ; \
 	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	  done; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 706befc..1c99439 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,12 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common/m4
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,12 +123,18 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -110,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -482,11 +515,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -622,15 +655,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/common/m4/as-docbook.m4 b/common/m4/as-docbook.m4
index 8a1b32a..2e27050 100644
--- a/common/m4/as-docbook.m4
+++ b/common/m4/as-docbook.m4
@@ -14,7 +14,19 @@
   TYPE_UC=XML
   DOCBOOK_VERSION=4.1.2
 
-  if test ! -f /etc/xml/catalog; then
+  if test -n "$XML_CATALOG_FILES"; then
+    oldIFS=$IFS
+    IFS=' '
+    for xml_catalog_file in $XML_CATALOG_FILES; do
+      if test -f $xml_catalog_file; then
+        XML_CATALOG=$xml_catalog_file
+        CAT_ENTRY_START='<!--'
+        CAT_ENTRY_END='-->'
+        break
+      fi
+    done
+    IFS=$oldIFS
+  elif test ! -f /etc/xml/catalog; then
     for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ;
     do
       if test -d "$i"; then
diff --git a/common/m4/gst-check.m4 b/common/m4/gst-check.m4
index cba7e96..4277053 100644
--- a/common/m4/gst-check.m4
+++ b/common/m4/gst-check.m4
@@ -266,29 +266,29 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-API_VERSION], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_LIBAV([GST-API_VERSION], [MIN-VERSION])
 dnl
-dnl Will set GST_PLUGINS_FFMPEG_DIR for use in Makefile.am. Note that this will
-dnl only be set in an uninstalled setup, since -ffmpeg ships no .pc file and in
+dnl Will set GST_PLUGINS_LIBAV_DIR for use in Makefile.am. Note that this will
+dnl only be set in an uninstalled setup, since -libav ships no .pc file and in
 dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway.
 dnl ===========================================================================
-AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_FFMPEG],
+AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_LIBAV],
 [
-  AG_GST_CHECK_MODULES(GST_PLUGINS_FFMPEG, gstreamer-plugins-ffmpeg-[$1], [$2],
-    [GStreamer FFmpeg Plugins], [no])
+  AG_GST_CHECK_MODULES(GST_PLUGINS_LIBAV, gstreamer-plugins-libav-[$1], [$2],
+    [GStreamer Libav Plugins], [no])
 
-  if test "x$HAVE_GST_PLUGINS_FFMPEG" = "xyes"; then
-    dnl check for where ffmpeg plugins got installed
+  if test "x$HAVE_GST_PLUGINS_LIBAV" = "xyes"; then
+    dnl check for where libav plugins got installed
     dnl this is used for unit tests
     dnl allow setting before calling this macro to override
-    if test -z $GST_PLUGINS_FFMPEG_DIR; then
-      GST_PLUGINS_FFMPEG_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ffmpeg-[$1]`
-      if test -z $GST_PLUGINS_FFMPEG_DIR; then
-        AC_MSG_ERROR([no pluginsdir set in GStreamer FFmpeg Plugins pkg-config file])
+    if test -z $GST_PLUGINS_LIBAV_DIR; then
+      GST_PLUGINS_LIBAV_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-libav-[$1]`
+      if test -z $GST_PLUGINS_LIBAV_DIR; then
+        AC_MSG_ERROR([no pluginsdir set in GStreamer Libav Plugins pkg-config file])
       fi
     fi
-    GST_PLUGINS_FFMPEG_DIR="$GST_PLUGINS_FFMPEG_DIR/ext/ffmpeg"
-    AC_MSG_NOTICE([using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR])
-    AC_SUBST(GST_PLUGINS_FFMPEG_DIR)
+    GST_PLUGINS_LIBAV_DIR="$GST_PLUGINS_LIBAV_DIR/ext/libav"
+    AC_MSG_NOTICE([using GStreamer Libav Plugins in $GST_PLUGINS_LIBAV_DIR])
+    AC_SUBST(GST_PLUGINS_LIBAV_DIR)
   fi
 ])
diff --git a/common/m4/gst-doc.m4 b/common/m4/gst-doc.m4
index 871c346..5d3f0fd 100644
--- a/common/m4/gst-doc.m4
+++ b/common/m4/gst-doc.m4
@@ -20,34 +20,10 @@
 
     dnl check for docbook tools
     AC_CHECK_PROG(HAVE_DOCBOOK2PS, docbook2ps, yes, no)
-    AC_CHECK_PROG(HAVE_DOCBOOK2HTML, docbook2html, yes, no)
+    AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, yes, no)
     AC_CHECK_PROG(HAVE_JADETEX, jadetex, yes, no)
     AC_CHECK_PROG(HAVE_PS2PDF, ps2pdf, yes, no)
 
-    # -V option appeared in 0.6.10
-    docbook2html_min_version=0.6.10
-    if test "x$HAVE_DOCBOOK2HTML" != "xno"; then
-      docbook2html_version=`docbook2html --version`
-      AC_MSG_CHECKING([docbook2html version ($docbook2html_version) >= $docbook2html_min_version])
-      if perl -w <<EOF
-        (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$docbook2html_min_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        (\$docbook2html_version_major, \$docbook2html_version_minor, \$docbook2html_version_micro ) = "$docbook2html_version" =~ /(\d+)\.(\d+)\.(\d+)/;
-        exit (((\$docbook2html_version_major > \$min_version_major) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor)) ||
-  	     ((\$docbook2html_version_major == \$min_version_major) &&
-  	      (\$docbook2html_version_minor >= \$min_version_minor) &&
-  	      (\$docbook2html_version_micro >= \$min_version_micro)))
-  	     ? 0 : 1);
-EOF
-      then
-        AC_MSG_RESULT(yes)
-      else
-        AC_MSG_RESULT(no)
-        HAVE_DOCBOOK2HTML=no
-      fi
-    fi
-
     dnl check if we can process docbook stuff
     AS_DOCBOOK(have_docbook=yes, have_docbook=no)
 
@@ -55,45 +31,14 @@
     AC_CHECK_PROG(HAVE_DVIPS, dvips, yes, no)
     AC_CHECK_PROG(HAVE_XMLLINT, xmllint, yes, no)
 
-    dnl check for image conversion tools
-    AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, yes, no)
-    if test "x$HAVE_FIG2DEV" = "xno" ; then
-      AC_MSG_WARN([Did not find fig2dev (from xfig), images will not be generated.])
-    fi
-
-    dnl The following is a hack: if fig2dev doesn't display an error message
-    dnl for the desired type, we assume it supports it.
-    HAVE_FIG2DEV_EPS=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L eps </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_EPS=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PNG=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PNG=yes
-      fi
-    fi
-    HAVE_FIG2DEV_PDF=no
-    if test "x$HAVE_FIG2DEV" = "xyes" ; then
-      fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
-      if test "x$fig2dev_quiet" = "x" ; then
-        HAVE_FIG2DEV_PDF=yes
-      fi
-    fi
-
     AC_CHECK_PROG(HAVE_PNGTOPNM, pngtopnm, yes, no)
     AC_CHECK_PROG(HAVE_PNMTOPS,  pnmtops,  yes, no)
     AC_CHECK_PROG(HAVE_EPSTOPDF, epstopdf, yes, no)
 
     dnl check if we can generate HTML
-    if test "x$HAVE_DOCBOOK2HTML" = "xyes" && \
+    if test "x$HAVE_XSLTPROC" = "xyes" && \
        test "x$enable_docbook" = "xyes" && \
-       test "x$HAVE_XMLLINT" = "xyes" && \
-       test "x$HAVE_FIG2DEV_PNG" = "xyes"; then
+       test "x$HAVE_XMLLINT" = "xyes"; then
       DOC_HTML=yes
       AC_MSG_NOTICE(Will output HTML documentation)
      else
@@ -106,7 +51,6 @@
        test "x$enable_docbook" = "xyes" && \
        test "x$HAVE_XMLLINT" = "xyes" && \
        test "x$HAVE_JADETEX" = "xyes" && \
-       test "x$HAVE_FIG2DEV_EPS" = "xyes" && \
        test "x$HAVE_DVIPS" = "xyes" && \
        test "x$HAVE_PNGTOPNM" = "xyes" && \
        test "x$HAVE_PNMTOPS" = "xyes"; then
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index 3f3d565..9a3a923 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -16,7 +16,7 @@
 
   dnl Check for glib with everything
   AG_GST_PKG_CHECK_MODULES(GLIB,
-    glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0)
+    glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0)
 
   if test "x$HAVE_GLIB" = "xno"; then
     AC_MSG_ERROR([This package requires GLib >= $GLIB_REQ to compile.])
@@ -28,7 +28,7 @@
   GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY"
 
   dnl Define G_DISABLE_DEPRECATED for GIT versions
-  if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+  if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED"
   fi
 
@@ -39,7 +39,7 @@
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
     dnl For releases, turn off the cast checks
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_gobject_cast_checks=yes
     else
       enable_gobject_cast_checks=no
@@ -57,7 +57,7 @@
 
   if test "x$enable_glib_assertions" = "xauto"; then
     dnl For releases, turn off the assertions
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_glib_assertions=yes
     else
       enable_glib_assertions=no
diff --git a/common/m4/gst-plugin-docs.m4 b/common/m4/gst-plugin-docs.m4
index dcfd61d..0e2ab6e 100644
--- a/common/m4/gst-plugin-docs.m4
+++ b/common/m4/gst-plugin-docs.m4
@@ -1,4 +1,4 @@
-dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION],[MINIMUM-PYTHON-VERSION])
+dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION])
 dnl
 dnl checks for prerequisites for the common/mangle-tmpl.py script
 dnl used when building the plugin documentation
@@ -6,13 +6,17 @@
 AC_DEFUN([AG_GST_PLUGIN_DOCS],
 [
   AC_BEFORE([GTK_DOC_CHECK],[$0])dnl check for gtk-doc first
-  AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first
+  AC_REQUIRE([AM_PATH_PYTHON])dnl find python first
 
   build_plugin_docs=no
   AC_MSG_CHECKING([whether to build plugin documentation])
   if test x$enable_gtk_doc = xyes; then
-    build_plugin_docs=yes
-    AC_MSG_RESULT([yes])
+    if test x$PYTHON != x; then
+      build_plugin_docs=yes
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no (python not found)])
+    fi
   else
     AC_MSG_RESULT([no (gtk-doc disabled or not available)])
   fi
diff --git a/common/mangle-tmpl.py b/common/mangle-tmpl.py
index bd4f948..51ea8c2 100644
--- a/common/mangle-tmpl.py
+++ b/common/mangle-tmpl.py
@@ -15,6 +15,8 @@
 # read in inspect/*.xml
 # for every tmpl/element-(name).xml: mangle with details from element
 
+from __future__ import print_function, unicode_literals
+
 import glob
 import re
 import sys
diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py
index 9a1cac9..4a9f1fc 100755
--- a/common/scangobj-merge.py
+++ b/common/scangobj-merge.py
@@ -6,6 +6,8 @@
 parse, merge and write gstdoc-scanobj files
 """
 
+from __future__ import print_function, unicode_literals
+
 import sys
 import os
 
@@ -76,13 +78,13 @@
         return "<Object %s>" % self.name
 
     def add_signal(self, signal, overwrite=True):
-        if not overwrite and self._signals.has_key(signal.name):
-            raise IndexError, "signal %s already in %r" % (signal.name, self)
+        if not overwrite and signal.name in self._signals:
+            raise IndexError("signal %s already in %r" % (signal.name, self))
         self._signals[signal.name] = signal
 
     def add_arg(self, arg, overwrite=True):
-        if not overwrite and self._args.has_key(arg.name):
-            raise IndexError, "arg %s already in %r" % (arg.name, self)
+        if not overwrite and arg.name in self._args:
+            raise IndexError("arg %s already in %r" % (arg.name, self))
         self._args[arg.name] = arg
 
 class Docable:
@@ -106,7 +108,7 @@
             lines = open(filename).readlines()
             self.load_data("".join(lines))
         except IOError:
-            print "WARNING - could not read from %s" % filename
+            print ("WARNING - could not read from %s" % filename)
 
     def save_file(self, filename, backup=False):
         """
@@ -117,7 +119,7 @@
             lines = open(filename).readlines()
             olddata = "".join(lines)
         except IOError:
-            print "WARNING - could not read from %s" % filename
+            print ("WARNING - could not read from %s" % filename)
         newdata = self.get_data()
         if olddata and olddata == newdata:
             return
@@ -161,7 +163,7 @@
                 o = nmatch.group('object')
                 debug("Found object", o)
                 debug("Found signal", nmatch.group('signal'))
-                if not self._objects.has_key(o):
+                if o not in self._objects:
                     object = Object(o)
                     self._objects[o] = object
 
@@ -222,7 +224,7 @@
                 o = nmatch.group('object')
                 debug("Found object", o)
                 debug("Found arg", nmatch.group('arg'))
-                if not self._objects.has_key(o):
+                if o not in self._objects:
                     object = Object(o)
                     self._objects[o] = object
 
@@ -233,7 +235,7 @@
                     arg = Arg(**dict)
                     self._objects[o].add_arg(arg)
                 else:
-                    print "ERROR: could not match arg from block %s" % block
+                    print ("ERROR: could not match arg from block %s" % block)
 
     def get_data(self):
         lines = []
diff --git a/common/win32.mak b/common/win32.mak
index c343a04..30e347e 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -51,11 +51,17 @@
 	if test $$fail != 0; then \
 	  echo '-----------------------------------------------------------'; \
 	  echo 'Run this to update the .def files:'; \
-	  echo 'make check-exports 2>&1 | patch -p1'; \
+	  echo 'make update-exports'; \
 	  echo '-----------------------------------------------------------'; \
 	fi; \
 	exit $$fail
 
+update-exports:
+	make check-exports 2>&1 | patch -p1
+	git add win32/common/libgst*.def
+	git diff --cached -- win32/common/
+	echo '^^^--- updated and staged changes above'
+
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
 check-nonportable-print-format:
 	@fail=0 ; \
diff --git a/compile b/compile
index 862a14e..b1f4749 100755
--- a/compile
+++ b/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2012-01-04.17; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
 # Software Foundation, Inc.
@@ -79,48 +79,6 @@
   esac
 }
 
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
-  func_file_conv "$1"
-  if test -z "$lib_path"; then
-    lib_path=$file
-  else
-    lib_path="$lib_path;$file"
-  fi
-  linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
-  lib=$1
-  found=no
-  save_IFS=$IFS
-  IFS=';'
-  for dir in $lib_path $LIB
-  do
-    IFS=$save_IFS
-    if $shared && test -f "$dir/$lib.dll.lib"; then
-      found=yes
-      lib=$dir/$lib.dll.lib
-      break
-    fi
-    if test -f "$dir/$lib.lib"; then
-      found=yes
-      lib=$dir/$lib.lib
-      break
-    fi
-  done
-  IFS=$save_IFS
-
-  if test "$found" != yes; then
-    lib=$lib.lib
-  fi
-}
-
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -151,34 +109,43 @@
 	      ;;
 	  esac
 	  ;;
-	-I)
-	  eat=1
-	  func_file_conv "$2" mingw
-	  set x "$@" -I"$file"
-	  shift
-	  ;;
 	-I*)
 	  func_file_conv "${1#-I}" mingw
 	  set x "$@" -I"$file"
 	  shift
 	  ;;
-	-l)
-	  eat=1
-	  func_cl_dashl "$2"
-	  set x "$@" "$lib"
-	  shift
-	  ;;
 	-l*)
-	  func_cl_dashl "${1#-l}"
-	  set x "$@" "$lib"
+	  lib=${1#-l}
+	  found=no
+	  save_IFS=$IFS
+	  IFS=';'
+	  for dir in $lib_path $LIB
+	  do
+	    IFS=$save_IFS
+	    if $shared && test -f "$dir/$lib.dll.lib"; then
+	      found=yes
+	      set x "$@" "$dir/$lib.dll.lib"
+	      break
+	    fi
+	    if test -f "$dir/$lib.lib"; then
+	      found=yes
+	      set x "$@" "$dir/$lib.lib"
+	      break
+	    fi
+	  done
+	  IFS=$save_IFS
+
+	  test "$found" != yes && set x "$@" "$lib.lib"
 	  shift
 	  ;;
-	-L)
-	  eat=1
-	  func_cl_dashL "$2"
-	  ;;
 	-L*)
-	  func_cl_dashL "${1#-L}"
+	  func_file_conv "${1#-L}"
+	  if test -z "$lib_path"; then
+	    lib_path=$file
+	  else
+	    lib_path="$lib_path;$file"
+	  fi
+	  linker_opts="$linker_opts -LIBPATH:$file"
 	  ;;
 	-static)
 	  shared=false
diff --git a/config.h.in b/config.h.in
index 0f55416..f7a5a92 100644
--- a/config.h.in
+++ b/config.h.in
@@ -92,6 +92,9 @@
 /* Define to enable ALSA (used by alsa). */
 #undef HAVE_ALSA
 
+/* ARM NEON support is enabled */
+#undef HAVE_ARM_NEON
+
 /* Define to enable CDParanoia (used by cdparanoia). */
 #undef HAVE_CDPARANOIA
 
@@ -209,6 +212,9 @@
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Defined if mmap is supported */
+#undef HAVE_MMAP
+
 /* Define to enable Xiph Ogg library (used by ogg). */
 #undef HAVE_OGG
 
diff --git a/config.sub b/config.sub
index 6205f84..c894da4 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2012-02-10'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -225,12 +225,6 @@
 	-isc*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
-	-lynx*178)
-		os=-lynxos178
-		;;
-	-lynx*5)
-		os=-lynxos5
-		;;
 	-lynx*)
 		os=-lynxos
 		;;
@@ -1543,9 +1537,6 @@
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
-	hexagon-*)
-		os=-elf
-		;;
 	tic54x-*)
 		os=-coff
 		;;
diff --git a/configure b/configure
index b830a40..313c266 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 Base Plug-ins 1.0.8.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.1.2.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Base Plug-ins'
 PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='1.0.8'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.0.8'
+PACKAGE_VERSION='1.1.2'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.1.2'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -989,10 +989,6 @@
 GST_REVISION
 GST_CURRENT
 GST_API_VERSION
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
@@ -1001,6 +997,10 @@
 PACKAGE_VERSION_MICRO
 PACKAGE_VERSION_MINOR
 PACKAGE_VERSION_MAJOR
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -1077,8 +1077,8 @@
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-enable_maintainer_mode
 enable_silent_rules
+enable_maintainer_mode
 enable_static
 enable_shared
 with_pic
@@ -1188,6 +1188,7 @@
 CXXCPP
 GTKDOC_DEPS_CFLAGS
 GTKDOC_DEPS_LIBS
+PYTHON
 GLIB_CFLAGS
 GLIB_LIBS
 GIO_CFLAGS
@@ -1771,7 +1772,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 Base Plug-ins 1.0.8 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.1.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1847,7 +1848,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.0.8:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.1.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1855,16 +1856,19 @@
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-maintainer-mode  disable make rules and dependencies not useful
-			  (and sometimes confusing) to the casual installer
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --disable-maintainer-mode
+                          disable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
   --enable-static[=PKGS]  build static libraries [default=no]
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
@@ -2003,6 +2007,7 @@
               C compiler flags for GTKDOC_DEPS, overriding pkg-config
   GTKDOC_DEPS_LIBS
               linker flags for GTKDOC_DEPS, overriding pkg-config
+  PYTHON      the Python interpreter
   GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
   GLIB_LIBS   linker flags for GLIB, overriding pkg-config
   GIO_CFLAGS  C compiler flags for GIO, overriding pkg-config
@@ -2132,7 +2137,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.0.8
+GStreamer Base Plug-ins configure 1.1.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2905,7 +2910,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 Base Plug-ins $as_me 1.0.8, which was
+It was created by GStreamer Base Plug-ins $as_me 1.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3398,7 +3403,7 @@
 
 
 
-am__api_version='1.11'
+am__api_version='1.13'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3495,9 +3500,6 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -3508,32 +3510,40 @@
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
 
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -3545,6 +3555,16 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -3567,12 +3587,12 @@
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -3584,10 +3604,10 @@
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
@@ -3726,12 +3746,6 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -3814,6 +3828,45 @@
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -3836,7 +3889,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='1.0.8'
+ VERSION='1.1.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3864,6 +3917,12 @@
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
@@ -3871,86 +3930,125 @@
 AMTAR='$${TAR-tar}'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
-$as_echo_n "checking how to create a ustar tar archive... " >&6; }
-# Loop over all known methods to create a tar archive until one works.
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
-_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      { echo "$as_me:$LINENO: $_am_tar --version" >&5
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
    ($_am_tar --version) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } && break
-    done
-    am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x ustar -w "$$tardir"'
-    am__tar_='pax -L -x ustar -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
-    am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
-    am__untar='cpio -i -H ustar -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_ustar}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
    (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
    ($am__untar <conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
 
-if ${am_cv_prog_tar_ustar+:} false; then :
+  if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -3959,9 +4057,10 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.0.8 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.0.8 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.0.8 | cut -d'.' -f3)
+
+  PACKAGE_VERSION_MAJOR=$(echo 1.1.2 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.1.2 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.1.2 | cut -d'.' -f3)
 
 
 
@@ -3972,7 +4071,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.0.8 | cut -d'.' -f4)
+  NANO=$(echo 1.1.2 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -4031,10 +4130,10 @@
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=0;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=0;;
 esac
 am_make=${MAKE-make}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
@@ -4187,7 +4286,7 @@
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -5031,8 +5130,8 @@
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -5067,16 +5166,16 @@
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -5085,8 +5184,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -5094,7 +5193,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -8556,10 +8655,10 @@
 done
 
 
-  GST_CURRENT=7
+  GST_CURRENT=102
   GST_REVISION=0
-  GST_AGE=7
-  GST_LIBVERSION=7:0:7
+  GST_AGE=102
+  GST_LIBVERSION=102:0:102
 
 
 
@@ -12884,7 +12983,7 @@
 
 
 
-GST_REQ=1.0.5
+GST_REQ=1.1.2
 
 
 
@@ -12950,6 +13049,13 @@
 
 
 
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
@@ -16985,8 +17091,8 @@
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -17021,16 +17127,16 @@
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -17039,8 +17145,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -17048,7 +17154,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -17790,8 +17896,8 @@
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -17826,16 +17932,16 @@
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -17844,8 +17950,8 @@
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -17853,7 +17959,7 @@
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -21676,27 +21782,16 @@
 
 
 
-    PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \
-                     python1.6 python1.5"
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: Looking for Python version >= 2.1" >&5
-$as_echo "$as_me: Looking for Python version >= 2.1" >&6;}
-        prog="
-import sys, string
-minver = '2.1'
-# split string by '.' and convert to numeric
-minver_info = map(string.atoi, string.split(minver, '.'))
-# we can now do comparisons on the two lists:
-if sys.version_info >= tuple(minver_info):
-	sys.exit(0)
-else:
-	sys.exit(1)"
 
-    python_good=false
-    for python_candidate in $PYTHON_CANDIDATES; do
-      unset PYTHON
-      # Extract the first word of "$python_candidate", so it can be a program name with args.
-set dummy $python_candidate; ac_word=$2
+
+
+        # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
 if ${ac_cv_path_PYTHON+:} false; then :
@@ -21734,80 +21829,178 @@
 $as_echo "no" >&6; }
 fi
 
- 1> /dev/null 2> /dev/null
 
-      if test "x$PYTHON" = "x"; then continue; fi
+  test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
 
-      if $PYTHON -c "$prog" 1>&5 2>&5; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON\":" >&5
-$as_echo_n "checking \"$PYTHON\":... " >&6; }
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5
-$as_echo "okay" >&6; }
-        python_good=true
-        break;
-      else
-                unset ac_cv_path_PYTHON
-      fi
-    done
+    fi
+    am_display_PYTHON=python
 
 
-  if test "$python_good" != "true"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No suitable version of python found" >&5
-$as_echo "$as_me: WARNING: No suitable version of python found" >&2;}
-    PYTHON=
+  if test "$PYTHON" = :; then
+      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
   else
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration" >&5
-$as_echo_n "checking local Python configuration... " >&6; }
 
-
-
-    PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
-
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if ${am_cv_python_version+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+  PYTHON_VERSION=$am_cv_python_version
 
 
 
   PYTHON_PREFIX='${prefix}'
 
-
   PYTHON_EXEC_PREFIX='${exec_prefix}'
 
 
 
-  PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if ${am_cv_python_platform+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+  PYTHON_PLATFORM=$am_cv_python_platform
 
 
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
 
 
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if ${am_cv_python_pythondir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  ;;
+       esac
+       ;;
+     esac
 
-  pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+  pythondir=$am_cv_python_pythondir
 
 
 
   pkgpythondir=\${pythondir}/$PACKAGE
 
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if ${am_cv_python_pyexecdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   ;;
+       esac
+       ;;
+     esac
 
-  pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+  pyexecdir=$am_cv_python_pyexecdir
 
 
 
   pkgpyexecdir=\${pyexecdir}/$PACKAGE
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5
-$as_echo "looks good" >&6; }
+
 
   fi
 
 
 
+
   build_plugin_docs=no
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build plugin documentation" >&5
 $as_echo_n "checking whether to build plugin documentation... " >&6; }
   if test x$enable_gtk_doc = xyes; then
-    build_plugin_docs=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+    if test x$PYTHON != x; then
+      build_plugin_docs=yes
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (python not found)" >&5
+$as_echo "no (python not found)" >&6; }
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (gtk-doc disabled or not available)" >&5
 $as_echo "no (gtk-doc disabled or not available)" >&6; }
@@ -22165,6 +22358,42 @@
 done
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM NEON support in current arch/CFLAGS" >&5
+$as_echo_n "checking for ARM NEON support in current arch/CFLAGS... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+  #include <arm_neon.h>
+  int32x4_t testfunc(int16_t *a, int16_t *b) {
+      return vmull_s16(vld1_s16(a), vld1_s16(b));
+  }
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+
+$as_echo "#define HAVE_ARM_NEON /**/" >>confdefs.h
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
 # ------ AX CREATE STDINT H -------------------------------------
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint types" >&5
 $as_echo_n "checking for stdint types... " >&6; }
@@ -22946,7 +23175,7 @@
 
 
 
-  which="glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0"
+  which="glib-2.0 >= $GLIB_REQ gobject-2.0 gmodule-no-export-2.0"
     required="no"
 
 
@@ -23047,7 +23276,7 @@
 
         GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY"
 
-    if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+    if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED"
   fi
 
@@ -23060,7 +23289,7 @@
 
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
-        if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+        if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_gobject_cast_checks=yes
     else
       enable_gobject_cast_checks=no
@@ -23080,7 +23309,7 @@
 
 
   if test "x$enable_glib_assertions" = "xauto"; then
-        if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+        if test "x$PACKAGE_VERSION_NANO" = "x1" -o "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1"; then
       enable_glib_assertions=yes
     else
       enable_glib_assertions=no
@@ -23294,7 +23523,7 @@
 
 
 
-  ORC_REQ=0.4.16
+  ORC_REQ=0.4.17
 
   # Check whether --enable-orc was given.
 if test "${enable_orc+set}" = set; then :
@@ -24439,11 +24668,13 @@
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+
+                           { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
                            enable_Bsymbolic=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
+                           { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
                            enable_Bsymbolic=no
 fi
@@ -25752,6 +25983,14 @@
 
 esac
 
+ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+
+$as_echo "#define HAVE_MMAP 1" >>confdefs.h
+
+fi
+
+
 
 
   GST_PLUGINS_ALL="$GST_PLUGINS_ALL adder"
@@ -31480,7 +31719,7 @@
 
 
 
-ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/videoconvert/Makefile gst/gio/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playback/Makefile tests/examples/playrec/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
+ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/videoconvert/Makefile gst/gio/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/allocators/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-allocators.pc pkgconfig/gstreamer-allocators-uninstalled.pc pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playback/Makefile tests/examples/playrec/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
 
 
 sed \
@@ -31635,6 +31874,14 @@
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -32389,7 +32636,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 1.0.8, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32455,7 +32702,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 Base Plug-ins config.status 1.0.8
+GStreamer Base Plug-ins config.status 1.1.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -33024,6 +33271,7 @@
     "ext/vorbis/Makefile") CONFIG_FILES="$CONFIG_FILES ext/vorbis/Makefile" ;;
     "gst-libs/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/Makefile" ;;
     "gst-libs/gst/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/Makefile" ;;
+    "gst-libs/gst/allocators/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/allocators/Makefile" ;;
     "gst-libs/gst/audio/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/audio/Makefile" ;;
     "gst-libs/gst/app/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/app/Makefile" ;;
     "gst-libs/gst/fft/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/fft/Makefile" ;;
@@ -33037,6 +33285,8 @@
     "gst-libs/gst/video/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/video/Makefile" ;;
     "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
     "pkgconfig/Makefile") CONFIG_FILES="$CONFIG_FILES pkgconfig/Makefile" ;;
+    "pkgconfig/gstreamer-allocators.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-allocators.pc" ;;
+    "pkgconfig/gstreamer-allocators-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-allocators-uninstalled.pc" ;;
     "pkgconfig/gstreamer-audio.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-audio.pc" ;;
     "pkgconfig/gstreamer-audio-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-audio-uninstalled.pc" ;;
     "pkgconfig/gstreamer-app.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-app.pc" ;;
@@ -33681,7 +33931,7 @@
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -33694,7 +33944,7 @@
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -33728,21 +33978,19 @@
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
diff --git a/configure.ac b/configure.ac
index 51530f1..3e65948 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,13 +1,11 @@
-AC_PREREQ(2.62)
+AC_PREREQ([2.68])
 
 dnl please read gstreamer/docs/random/autotools before changing this file
 
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/prerelease
-AC_INIT(GStreamer Base Plug-ins, 1.0.8,
-    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
-    gst-plugins-base)
+AC_INIT([GStreamer Base Plug-ins],[1.1.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
 
 AG_GST_INIT
 
@@ -49,11 +47,19 @@
 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
+dnl
+dnl Keep CURRENT as MINOR * 100 + MICRO
+dnl Ex : 1.0.0 => 0
+dnl      1.0.3 => 3
+dnl      1.1.0 => 100
+dnl      1.2.5 => 205
+dnl      1.10.9 (who knows) => 1009
+dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 7, 0, 7)
+AS_LIBTOOL(GST, 102, 0, 102)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.0.5
+GST_REQ=1.1.2
 
 dnl *** autotools stuff ****
 
@@ -88,8 +94,7 @@
 
 dnl let distro override plugin install helper path
 AC_ARG_WITH(install-plugins-helper,
-  AC_HELP_STRING([--with-install-plugins-helper],
-    [specify path of helper script to call to install plugins]),
+  AS_HELP_STRING([--with-install-plugins-helper],[specify path of helper script to call to install plugins]),
   [
     case "${withval}" in
       yes) AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
@@ -140,7 +145,7 @@
 dnl CXX may be set to some default even if no c++ compiler is available
 dnl (thanks autotools!), so just try to compile some c++ code to make sure
 AC_LANG_PUSH([C++])
-AC_TRY_COMPILE([ class Foo { int bar; };], , working_cxx=yes, working_cxx=no)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ class Foo { int bar; };]], [[]])],[working_cxx=yes],[working_cxx=no])
 AC_LANG_POP([C++])
 AC_MSG_NOTICE([working c++ compiler found: $working_cxx])
 AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes")
@@ -153,8 +158,7 @@
 
 dnl check for documentation tools
 GTK_DOC_CHECK([1.12])
-AS_PATH_PYTHON([2.1])
-AG_GST_PLUGIN_DOCS([1.3],[2.1])
+AG_GST_PLUGIN_DOCS([1.12])
 
 dnl *** checks for libraries ***
 
@@ -196,6 +200,24 @@
 dnl used in gst-libs/gst/pbutils and associated unit test
 AC_CHECK_HEADERS([process.h sys/types.h sys/wait.h sys/stat.h], [], [], [AC_INCLUDES_DEFAULT])
 
+dnl checks for ARM NEON support
+dnl this instruction set is used by the speex resampler code
+AC_MSG_CHECKING(for ARM NEON support in current arch/CFLAGS)
+AC_LINK_IFELSE([
+AC_LANG_PROGRAM([[
+  #include <arm_neon.h>
+  int32x4_t testfunc(int16_t *a, int16_t *b) {
+      return vmull_s16(vld1_s16(a), vld1_s16(b));
+  }
+]])],
+[
+  AC_DEFINE(HAVE_ARM_NEON,[],[ARM NEON support is enabled])
+  AC_MSG_RESULT(yes)
+],
+[
+  AC_MSG_RESULT(no)
+])
+
 dnl also, Windows does not have long long
 AX_CREATE_STDINT_H
 
@@ -236,7 +258,7 @@
 GLIB_REQ=2.32
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
-ORC_CHECK([0.4.16])
+ORC_CHECK([0.4.17])
 
 dnl checks for gstreamer
 dnl uninstalled is selected preferentially -- see pkg-config(1)
@@ -305,16 +327,15 @@
 dnl Check for -Bsymbolic-functions linker flag used to avoid
 dnl intra-library PLT jumps, if available.
 AC_ARG_ENABLE(Bsymbolic,
-              [AC_HELP_STRING([--disable-Bsymbolic],
-                              [avoid linking with -Bsymbolic])],,
+              [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
               [SAVED_LDFLAGS="${LDFLAGS}"
                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
                LDFLAGS=-Wl,-Bsymbolic-functions
-               AC_TRY_LINK([], [int main (void) { return 0; }],
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],[
                            AC_MSG_RESULT(yes)
-                           enable_Bsymbolic=yes,
+                           enable_Bsymbolic=yes],[
                            AC_MSG_RESULT(no)
-                           enable_Bsymbolic=no)
+                           enable_Bsymbolic=no])
                LDFLAGS="${SAVED_LDFLAGS}"])
 
 
@@ -406,6 +427,9 @@
     AC_SUBST(AUDIORESAMPLE_FORMAT_AUTO)
 esac
 
+dnl Check for mmap (needed by allocators library)
+AC_CHECK_FUNC([mmap], [AC_DEFINE(HAVE_MMAP, 1, [Defined if mmap is supported])])
+
 dnl *** plug-ins to include ***
 
 dnl these are all the gst plug-ins, compilable without additional libs
@@ -438,7 +462,7 @@
 
 dnl iso-codes is optional, used by libgsttag
 AC_ARG_ENABLE(iso-codes,
-AC_HELP_STRING([--enable-iso-codes],[use iso-codes if installed]),
+AS_HELP_STRING([--enable-iso-codes],[use iso-codes if installed]),
 [case "${enableval}" in
   yes) enable_iso_codes=yes ;;
   no)  enable_iso_codes=no ;;
@@ -866,6 +890,7 @@
 ext/vorbis/Makefile
 gst-libs/Makefile
 gst-libs/gst/Makefile
+gst-libs/gst/allocators/Makefile
 gst-libs/gst/audio/Makefile
 gst-libs/gst/app/Makefile
 gst-libs/gst/fft/Makefile
@@ -879,6 +904,8 @@
 gst-libs/gst/video/Makefile
 tools/Makefile
 pkgconfig/Makefile
+pkgconfig/gstreamer-allocators.pc
+pkgconfig/gstreamer-allocators-uninstalled.pc
 pkgconfig/gstreamer-audio.pc
 pkgconfig/gstreamer-audio-uninstalled.pc
 pkgconfig/gstreamer-app.pc
diff --git a/depcomp b/depcomp
index 25a39e6..bd0ac08 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2011-12-04.11; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# 2011 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
@@ -40,8 +40,8 @@
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by 'PROGRAMS ARGS'.
-  object      Object file output by 'PROGRAMS ARGS'.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputting dependencies.
@@ -57,12 +57,6 @@
     ;;
 esac
 
-# A tabulation character.
-tab='	'
-# A newline character.
-nl='
-'
-
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -108,12 +102,6 @@
    depmode=msvc7
 fi
 
-if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
-fi
-
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -168,14 +156,15 @@
 ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
+## This next piece of magic avoids the `deleted header file' problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
-## Some versions of gcc put a space before the ':'.  On the theory
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
@@ -214,15 +203,18 @@
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like '#:fec' to the end of the
+    # the IRIX cc adds comments like `#:fec' to the end of the
     # dependency line.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+    tr '
+' ' ' >> "$depfile"
     echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
-    tr ' ' "$nl" < "$tmpdepfile" \
+    tr ' ' '
+' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"
   else
@@ -234,17 +226,10 @@
   rm -f "$tmpdepfile"
   ;;
 
-xlc)
-  # This case exists only to let depend.m4 do its work.  It works by
-  # looking at the text of this script.  This case will never be run,
-  # since it is checked for above.
-  exit 1
-  ;;
-
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -274,11 +259,12 @@
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
+    # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
+    # `$object: dependent.h' and one to simply `dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -289,26 +275,23 @@
   ;;
 
 icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want
+  # which is wrong.  We want:
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using \ :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
+
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -317,21 +300,15 @@
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -367,7 +344,7 @@
   done
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add 'dependent.h:' lines.
+    # Add `dependent.h:' lines.
     sed -ne '2,${
 	       s/^ *//
 	       s/ \\*$//
@@ -382,9 +359,9 @@
 
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
+   # dependencies in `foo.d' instead, so we check for that too.
    # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=
@@ -430,7 +407,8 @@
    done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
@@ -465,11 +443,11 @@
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
+s/\(.*\)/	\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/'"$tab"'/
+  s/.*/	/
   G
   p
 }' >> "$depfile"
@@ -500,7 +478,7 @@
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -520,14 +498,15 @@
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for ':'
+  # Require at least two characters before searching for `:'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
+  tr ' ' '
+' < "$tmpdepfile" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -583,7 +562,8 @@
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -603,7 +583,7 @@
     shift
   fi
 
-  # Remove '-o $object'.
+  # Remove `-o $object'.
   IFS=" "
   for arg
   do
@@ -672,8 +652,8 @@
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
-  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
diff --git a/docs/Makefile.in b/docs/Makefile.in
index d314ba7..e3bc8e5 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,14 +79,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(srcdir)/version.entities.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -98,21 +124,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.entities
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -120,9 +153,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -492,22 +545,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -522,57 +578,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -588,12 +599,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -605,15 +611,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -622,6 +624,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -782,22 +799,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 upload:
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 47f2b9e..e0f9aed 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,12 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs/design
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,21 +123,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -119,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -492,22 +545,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -522,57 +578,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -588,12 +599,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -605,15 +611,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -622,6 +624,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -782,22 +799,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am
index 1285061..54126f8 100644
--- a/docs/libs/Makefile.am
+++ b/docs/libs/Makefile.am
@@ -57,6 +57,7 @@
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
 GTKDOC_LIBS = \
+	$(top_builddir)/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 6721d97..fe781b2 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,23 +33,51 @@
 ###########################################################################
 # thomas: except of course that we did
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -70,16 +97,15 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gtk-doc.mak \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
+	$(top_srcdir)/common/gtk-doc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/libs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -118,12 +144,18 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -131,6 +163,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -484,6 +517,7 @@
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
 GTKDOC_LIBS = \
+	$(top_builddir)/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
 	$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
@@ -583,11 +617,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -726,18 +760,18 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic \
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
 	maintainer-clean-local mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-	uninstall-local
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-local
 
 html: html-build.stamp
 
@@ -821,9 +855,9 @@
 @ENABLE_GTK_DOC_TRUE@		--ignore-headers="$(IGNORE_HFILES)"
 @ENABLE_GTK_DOC_TRUE@	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then	\
 @ENABLE_GTK_DOC_TRUE@	    echo "  DOC   Introspecting gobjects"; \
-@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd`		\
-@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_PATH=						\
-@ENABLE_GTK_DOC_TRUE@	    GST_REGISTRY=doc-registry.xml				\
+@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_SYSTEM_PATH_1_0=`cd $(top_builddir) && pwd`		\
+@ENABLE_GTK_DOC_TRUE@	    GST_PLUGIN_PATH_1_0=						\
+@ENABLE_GTK_DOC_TRUE@	    GST_REGISTRY_1_0=doc-registry.xml				\
 @ENABLE_GTK_DOC_TRUE@	    $(GTKDOC_EXTRA_ENVIRONMENT)					\
 @ENABLE_GTK_DOC_TRUE@	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)"				\
 @ENABLE_GTK_DOC_TRUE@	    CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)"				\
@@ -870,10 +904,7 @@
 @ENABLE_GTK_DOC_TRUE@	if test "$(?)" = "0"; then \
 @ENABLE_GTK_DOC_TRUE@	  mkhtml_options=--path="$(abs_srcdir)"; \
 @ENABLE_GTK_DOC_TRUE@	fi; \
-@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-@ENABLE_GTK_DOC_TRUE@	@mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE)-@GST_API_VERSION@ ../$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f version.entities
 @ENABLE_GTK_DOC_TRUE@	@test "x$(HTML_IMAGES)" = "x" ||  ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
@@ -927,9 +958,9 @@
 	    echo '-- Installing '$$i ; \
 	    $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	  done; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml
index bfe0fcc..78e4ad2 100644
--- a/docs/libs/gst-plugins-base-libs-docs.sgml
+++ b/docs/libs/gst-plugins-base-libs-docs.sgml
@@ -21,6 +21,16 @@
     </para>
     <xi:include href="compiling.sgml" />
 
+    <chapter id="gstreamer-allocators">
+      <title>Allocators Library</title>
+      <para>
+        This library should be linked to by getting cflags and libs from
+        <filename>gstreamer-plugins-base-&GST_API_VERSION;.pc</filename> and adding
+        <filename>-lgstallocators-&GST_API_VERSION;</filename> to the library flags.
+      </para>
+      <xi:include href="xml/gstdmabuf.xml" />
+    </chapter>
+
     <chapter id="gstreamer-app">
       <title>App Library</title>
       <para>
@@ -43,6 +53,7 @@
         <filename>-lgstaudio-&GST_API_VERSION;</filename> to the library flags.
       </para>
       <xi:include href="xml/gstaudio.xml" />
+      <xi:include href="xml/gstaudiometa.xml" />
       <xi:include href="xml/gstaudiocdsrc.xml" />
       <xi:include href="xml/gstaudioclock.xml" />
       <xi:include href="xml/gstaudiodecoder.xml" />
@@ -53,7 +64,7 @@
       <xi:include href="xml/gstaudiosrc.xml" />
       <xi:include href="xml/gstaudiobasesink.xml" />
       <xi:include href="xml/gstaudiobasesrc.xml" />
-      <xi:include href="xml/gstmultichannel.xml" />
+      <xi:include href="xml/gstaudiochannels.xml" />
       <xi:include href="xml/gstaudioringbuffer.xml" />
       <xi:include href="xml/gstaudioiec61937.xml" />
       <xi:include href="xml/gststreamvolume.xml" />
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index de1f262..8df3533 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -1,3 +1,17 @@
+# allocators
+
+<SECTION>
+<FILE>gstdmabuf</FILE>
+<TITLE>dmabuf</TITLE>
+<INCLUDE>gst/allocators/gstdmabuf.h</INCLUDE>
+gst_dmabuf_allocator_alloc
+gst_dmabuf_allocator_obtain
+gst_dmabuf_memory_get_fd
+gst_is_dmabuf_memory
+<SUBSECTION Standard>
+<SUBSECTION Private>
+</SECTION>
+
 # app
 <SECTION>
 <FILE>gstappsrc</FILE>
@@ -101,6 +115,7 @@
 gst_audio_info_free
 gst_audio_info_new
 gst_audio_info_set_format
+gst_audio_info_is_equal
 
 gst_audio_format_build_integer
 gst_audio_format_fill_silence
@@ -141,7 +156,15 @@
 
 GST_FRAMES_TO_CLOCK_TIME
 GST_CLOCK_TIME_TO_FRAMES
+GST_AUDIO_NE
+GST_AUDIO_OE
+GST_AUDIO_RATE_RANGE
+GST_AUDIO_CHANNELS_RANGE
+GST_AUDIO_FORMATS_ALL
+GST_AUDIO_CAPS_MAKE
 GST_AUDIO_DEF_RATE
+GST_AUDIO_DEF_CHANNELS
+GST_AUDIO_DEF_FORMAT
 gst_audio_buffer_clip
 <SUBSECTION Standard>
 GST_TYPE_BUFFER_FORMAT
@@ -165,6 +188,20 @@
 </SECTION>
 
 <SECTION>
+<FILE>gstaudiometa</FILE>
+<INCLUDE>gst/audio/gstaudiometa.h</INCLUDE>
+GstAudioDownmixMeta
+gst_buffer_add_audio_downmix_meta
+gst_buffer_get_audio_downmix_meta
+gst_buffer_get_audio_downmix_meta_for_channels
+<SUBSECTION Standard>
+GST_AUDIO_DOWNMIX_META_API_TYPE
+GST_AUDIO_DOWNMIX_META_INFO
+gst_audio_downmix_meta_api_get_type
+gst_audio_downmix_meta_get_info
+</SECTION>
+
+<SECTION>
 <FILE>gstaudioclock</FILE>
 <INCLUDE>gst/audio/gstaudioclock.h</INCLUDE>
 GstAudioClock
@@ -430,15 +467,17 @@
 </SECTION>
 
 <SECTION>
-<FILE>gstmultichannel</FILE>
-<INCLUDE>gst/audio/multichannel.h</INCLUDE>
+<FILE>gstaudiochannels</FILE>
+<INCLUDE>gst/audio/audio-channels.h</INCLUDE>
 GstAudioChannelPosition
-gst_audio_fixate_channel_positions
-gst_audio_get_channel_positions
-gst_audio_set_caps_channel_positions_list
-gst_audio_set_channel_positions
-gst_audio_set_structure_channel_positions_list
-gst_audio_check_channel_positions
+GST_AUDIO_CHANNEL_POSITION_MASK
+gst_audio_channel_positions_to_mask
+gst_audio_channel_positions_from_mask
+gst_audio_channel_positions_to_valid_order
+gst_audio_check_valid_channel_positions
+gst_audio_buffer_reorder_channels
+gst_audio_reorder_channels
+gst_audio_get_channel_reorder_map
 <SUBSECTION Standard>
 GST_TYPE_AUDIO_CHANNEL_POSITION
 gst_audio_channel_position_get_type
@@ -942,6 +981,7 @@
 GST_RIFF_TAG_fact
 GST_RIFF_TAG_fmt
 GST_RIFF_TAG_idx1
+GST_RIFF_TAG_note
 GST_RIFF_TAG_plst
 GST_RIFF_TAG_strd
 GST_RIFF_TAG_strf
@@ -1346,6 +1386,7 @@
 gst_rtsp_header_allow_multiple
 gst_rtsp_status_as_text
 gst_rtsp_options_as_text
+gst_rtsp_options_from_text
 gst_rtsp_find_header_field
 gst_rtsp_find_method
 <SUBSECTION Standard>
@@ -1523,14 +1564,16 @@
 
 <SECTION>
 <FILE>gstrtsprange</FILE>
-<INCLUDE>gst/rtsp/gstrtsrange.h</INCLUDE>
+<INCLUDE>gst/rtsp/gstrtsprange.h</INCLUDE>
 GstRTSPRangeUnit
 GstRTSPTimeRange
 GstRTSPTime
+GstRTSPTime2
 GstRTSPTimeType
 gst_rtsp_range_parse
 gst_rtsp_range_get_times
 gst_rtsp_range_to_string
+gst_rtsp_range_convert_units
 gst_rtsp_range_free
 </SECTION>
 
@@ -1539,8 +1582,13 @@
 <FILE>gstsdpmessage</FILE>
 <INCLUDE>gst/sdp/gstsdpmessage.h</INCLUDE>
 GstSDPResult
+
 GstSDPOrigin
+
 GstSDPConnection
+gst_sdp_connection_set
+gst_sdp_connection_clear
+
 GST_SDP_BWTYPE_CT
 GST_SDP_BWTYPE_AS
 GST_SDP_BWTYPE_EXT_PREFIX
@@ -1548,12 +1596,25 @@
 GST_SDP_BWTYPE_RS
 GST_SDP_BWTYPE_TIAS
 GstSDPBandwidth
+gst_sdp_bandwidth_set
+gst_sdp_bandwidth_clear
+
 GstSDPTime
+gst_sdp_time_set
+gst_sdp_time_clear
+
 GstSDPZone
+gst_sdp_zone_set
+gst_sdp_zone_clear
+
 GstSDPKey
 GstSDPAttribute
+gst_sdp_attribute_set
+gst_sdp_attribute_clear
+
 GstSDPMedia
 GstSDPMessage
+
 gst_sdp_message_new
 gst_sdp_message_init
 gst_sdp_message_uninit
@@ -1579,20 +1640,35 @@
 gst_sdp_message_set_uri
 gst_sdp_message_emails_len
 gst_sdp_message_get_email
+gst_sdp_message_insert_email
+gst_sdp_message_replace_email
+gst_sdp_message_remove_email
 gst_sdp_message_add_email
 gst_sdp_message_phones_len
 gst_sdp_message_get_phone
+gst_sdp_message_insert_phone
+gst_sdp_message_replace_phone
+gst_sdp_message_remove_phone
 gst_sdp_message_add_phone
 gst_sdp_message_get_connection
 gst_sdp_message_set_connection
 gst_sdp_message_bandwidths_len
 gst_sdp_message_get_bandwidth
+gst_sdp_message_insert_bandwidth
+gst_sdp_message_replace_bandwidth
+gst_sdp_message_remove_bandwidth
 gst_sdp_message_add_bandwidth
 gst_sdp_message_times_len
 gst_sdp_message_get_time
+gst_sdp_message_insert_time
+gst_sdp_message_replace_time
+gst_sdp_message_remove_time
 gst_sdp_message_add_time
 gst_sdp_message_zones_len
 gst_sdp_message_get_zone
+gst_sdp_message_insert_zone
+gst_sdp_message_replace_zone
+gst_sdp_message_remove_zone
 gst_sdp_message_add_zone
 gst_sdp_message_get_key
 gst_sdp_message_set_key
@@ -1600,6 +1676,9 @@
 gst_sdp_message_get_attribute
 gst_sdp_message_get_attribute_val
 gst_sdp_message_get_attribute_val_n
+gst_sdp_message_insert_attribute
+gst_sdp_message_replace_attribute
+gst_sdp_message_remove_attribute
 gst_sdp_message_add_attribute
 gst_sdp_message_medias_len
 gst_sdp_message_get_media
@@ -1610,6 +1689,7 @@
 gst_sdp_media_init
 gst_sdp_media_uninit
 gst_sdp_media_free
+gst_sdp_media_as_text
 gst_sdp_media_get_media
 gst_sdp_media_set_media
 gst_sdp_media_get_port
@@ -1619,14 +1699,23 @@
 gst_sdp_media_set_proto
 gst_sdp_media_formats_len
 gst_sdp_media_get_format
+gst_sdp_media_insert_format
+gst_sdp_media_replace_format
+gst_sdp_media_remove_format
 gst_sdp_media_add_format
 gst_sdp_media_get_information
 gst_sdp_media_set_information
 gst_sdp_media_connections_len
 gst_sdp_media_get_connection
+gst_sdp_media_insert_connection
+gst_sdp_media_replace_connection
+gst_sdp_media_remove_connection
 gst_sdp_media_add_connection
 gst_sdp_media_bandwidths_len
 gst_sdp_media_get_bandwidth
+gst_sdp_media_insert_bandwidth
+gst_sdp_media_replace_bandwidth
+gst_sdp_media_remove_bandwidth
 gst_sdp_media_add_bandwidth
 gst_sdp_media_get_key
 gst_sdp_media_set_key
@@ -1634,8 +1723,10 @@
 gst_sdp_media_get_attribute
 gst_sdp_media_get_attribute_val
 gst_sdp_media_get_attribute_val_n
+gst_sdp_media_insert_attribute
+gst_sdp_media_replace_attribute
+gst_sdp_media_remove_attribute
 gst_sdp_media_add_attribute
-gst_sdp_media_as_text
 </SECTION>
 
 # tag
@@ -1929,6 +2020,7 @@
 gst_encoding_profile_get_description
 gst_encoding_profile_get_format
 gst_encoding_profile_get_preset
+gst_encoding_profile_get_preset_name
 gst_encoding_profile_get_presence
 gst_encoding_profile_get_restriction
 gst_encoding_profile_get_file_extension
@@ -1936,6 +2028,7 @@
 gst_encoding_profile_set_description
 gst_encoding_profile_set_format
 gst_encoding_profile_set_preset
+gst_encoding_profile_set_preset_name
 gst_encoding_profile_set_restriction
 gst_encoding_profile_set_presence
 gst_encoding_profile_is_equal
@@ -2223,6 +2316,8 @@
 gst_video_buffer_pool_new
 gst_buffer_pool_config_get_video_alignment
 gst_buffer_pool_config_set_video_alignment
+GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT
+GST_BUFFER_POOL_OPTION_VIDEO_META
 <SUBSECTION Standard>
 GST_TYPE_VIDEO_BUFFER_POOL
 GST_VIDEO_BUFFER_POOL
@@ -2232,11 +2327,11 @@
 gst_video_buffer_pool_get_type
 </SECTION>
 
-
 <SECTION>
 <FILE>gstvideometa</FILE>
-<INCLUDE>>gst/video/gstvideometa.h</INCLUDE>
+<INCLUDE>gst/video/gstvideometa.h</INCLUDE>
 GstVideoMeta
+GstVideoMetaTransform
 gst_video_meta_map
 gst_video_meta_unmap
 gst_video_meta_get_info
@@ -2247,6 +2342,11 @@
 GstVideoCropMeta
 gst_buffer_add_video_crop_meta
 gst_buffer_get_video_crop_meta
+GstVideoGLTextureUpload
+GstVideoGLTextureUploadMeta
+gst_buffer_add_video_gl_texture_upload_meta
+gst_buffer_get_video_gl_texture_upload_meta
+gst_video_gl_texture_upload_meta_upload
 <SUBSECTION Standard>
 gst_video_crop_meta_api_get_type
 gst_video_meta_api_get_type
@@ -2257,6 +2357,10 @@
 GST_VIDEO_META_TRANSFORM_IS_SCALE
 gst_video_meta_transform_scale_get_quark
 gst_video_crop_meta_get_info
+GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE
+GST_VIDEO_GL_TEXTURE_UPLOAD_META_INFO
+gst_video_gl_texture_upload_meta_api_get_type
+gst_video_gl_texture_upload_meta_get_info
 </SECTION>
 
 <SECTION>
@@ -2274,10 +2378,12 @@
 gst_video_overlay_composition_get_seqnum
 gst_video_overlay_composition_copy
 gst_video_overlay_composition_make_writable
+
+GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS
 gst_video_overlay_composition_blend
 
 <SUBSECTION composition-set-get>
-GstVideoOverlayCompositionMeta:
+GstVideoOverlayCompositionMeta
 gst_video_overlay_composition_meta_get_info
 gst_buffer_add_video_overlay_composition_meta
 gst_buffer_get_video_overlay_composition_meta
@@ -2311,6 +2417,8 @@
 GST_IS_VIDEO_OVERLAY_COMPOSITION
 GST_IS_VIDEO_VIDEO_OVERLAY_COMPOSITION_CLASS
 GST_VIDEO_OVERLAY_COMPOSITION_CAST
+GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE
+GST_VIDEO_OVERLAY_COMPOSITION_META_INFO
 gst_video_overlay_composition_get_type
 gst_video_overlay_composition_meta_api_get_type
 
@@ -2527,6 +2635,7 @@
 gst_discoverer_stream_info_get_previous
 gst_discoverer_stream_info_get_tags
 gst_discoverer_stream_info_get_toc
+gst_discoverer_stream_info_get_stream_id
 gst_discoverer_stream_info_ref
 gst_discoverer_stream_info_unref
 gst_discoverer_stream_info_list_free
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
index 859c301..3d2d0f5 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
@@ -38,43 +38,34 @@
 </td></tr>
 </table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
 <a name="glsO"></a><h3 class="title">O</h3>
-<dt>
-<a name="annotation-glossterm-out"></a>out</dt>
-<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
-<dt>
-<a name="annotation-glossterm-scope%20async"></a>scope async</dt>
-<dd><p>The callback is valid until first called.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt>
+<dd class="glossdef"><p>The callback is valid until first called.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
-<dd><p>NULL is ok, both for passing and for returning.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
-<dt>
-<a name="annotation-glossterm-closure"></a>closure</dt>
-<dd><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-closure"></a>closure</span></dt>
+<dd class="glossdef"><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
-<dd><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-array"></a>array</dt>
-<dd><p>Parameter points to an array of items.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
+<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsE"></a><h3 class="title">E</h3>
-<dt>
-<a name="annotation-glossterm-element-type"></a>element-type</dt>
-<dd><p>Generics and defining elements of containers and arrays.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
+<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
-<dd><p>Free data after the code is done.</p></dd>
-<dt>
-<a name="annotation-glossterm-type"></a>type</dt>
-<dd><p>Override the parsed C type with given type</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
+<dd class="glossdef"><p>Override the parsed C type with given type</p></dd>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index bb45b24..efc9729 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-full.html" title="Index">
@@ -20,8 +20,8 @@
 <td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-deprecated"></a>Index of deprecated API</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-deprecated"></a>Index of deprecated API</h1></div></div></div>
 <a name="idx"></a>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 13c090c..12bac45 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
@@ -51,8 +51,8 @@
 </td></tr>
 </table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-full"></a>Index</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>Index</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
 <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks">GstAppSinkCallbacks</a>, struct in <a class="link" href="gst-plugins-base-libs-appsink.html" title="appsink">appsink</a>
@@ -283,7 +283,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition">GstAudioChannelPosition</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition">GstAudioChannelPosition</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
 </dt>
 <dd></dd>
 <dt>
@@ -315,6 +315,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta">GstAudioDownmixMeta</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">gstaudiometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct" title="struct GstAudioEncoder">GstAudioEncoder</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
 </dt>
 <dd></dd>
@@ -507,10 +511,42 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-buffer-reorder-channels" title="gst_audio_buffer_reorder_channels ()">gst_audio_buffer_reorder_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CAPS-MAKE:CAPS" title="GST_AUDIO_CAPS_MAKE()">GST_AUDIO_CAPS_MAKE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track" title="gst_audio_cd_src_add_track ()">gst_audio_cd_src_add_track</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html" title="gstaudiocdsrc">gstaudiocdsrc</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CHANNELS-RANGE:CAPS" title="GST_AUDIO_CHANNELS_RANGE">GST_AUDIO_CHANNELS_RANGE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-from-mask" title="gst_audio_channel_positions_from_mask ()">gst_audio_channel_positions_from_mask</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-mask" title="gst_audio_channel_positions_to_mask ()">gst_audio_channel_positions_to_mask</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order" title="gst_audio_channel_positions_to_valid_order ()">gst_audio_channel_positions_to_valid_order</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-MASK:CAPS" title="GST_AUDIO_CHANNEL_POSITION_MASK()">GST_AUDIO_CHANNEL_POSITION_MASK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-check-valid-channel-positions" title="gst_audio_check_valid_channel_positions ()">gst_audio_check_valid_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust" title="gst_audio_clock_adjust ()">gst_audio_clock_adjust</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
 </dt>
 <dd></dd>
@@ -659,6 +695,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-CHANNELS:CAPS" title="GST_AUDIO_DEF_CHANNELS">GST_AUDIO_DEF_CHANNELS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-FORMAT:CAPS" title="GST_AUDIO_DEF_FORMAT">GST_AUDIO_DEF_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
@@ -807,6 +851,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMATS-ALL:CAPS" title="GST_AUDIO_FORMATS_ALL">GST_AUDIO_FORMATS_ALL</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-build-integer" title="gst_audio_format_build_integer ()">gst_audio_format_build_integer</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
@@ -871,6 +919,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-get-channel-reorder-map" title="gst_audio_get_channel_reorder_map ()">gst_audio_get_channel_reorder_map</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" title="gst_audio_iec61937_frame_size ()">gst_audio_iec61937_frame_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">gstaudioiec61937</a>
 </dt>
 <dd></dd>
@@ -931,6 +983,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal" title="gst_audio_info_is_equal ()">gst_audio_info_is_equal</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-IS-FLOAT:CAPS" title="GST_AUDIO_INFO_IS_FLOAT()">GST_AUDIO_INFO_IS_FLOAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
 </dt>
 <dd></dd>
@@ -987,6 +1043,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-NE:CAPS" title="GST_AUDIO_NE()">GST_AUDIO_NE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-OE:CAPS" title="GST_AUDIO_OE()">GST_AUDIO_OE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-RATE-RANGE:CAPS" title="GST_AUDIO_RATE_RANGE">GST_AUDIO_RATE_RANGE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-reorder-channels" title="gst_audio_reorder_channels ()">gst_audio_reorder_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-acquire" title="gst_audio_ring_buffer_acquire ()">gst_audio_ring_buffer_acquire</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">gstaudioringbuffer</a>
 </dt>
 <dd></dd>
@@ -1116,10 +1188,18 @@
 <dd></dd>
 <a name="idxB"></a><h3 class="title">B</h3>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-downmix-meta" title="gst_buffer_add_audio_downmix_meta ()">gst_buffer_add_audio_downmix_meta</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">gstaudiometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-crop-meta" title="gst_buffer_add_video_crop_meta()">gst_buffer_add_video_crop_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-gl-texture-upload-meta" title="gst_buffer_add_video_gl_texture_upload_meta ()">gst_buffer_add_video_gl_texture_upload_meta</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-meta" title="gst_buffer_add_video_meta ()">gst_buffer_add_video_meta</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
 </dt>
 <dd></dd>
@@ -1132,10 +1212,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta" title="gst_buffer_get_audio_downmix_meta()">gst_buffer_get_audio_downmix_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">gstaudiometa</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta-for-channels" title="gst_buffer_get_audio_downmix_meta_for_channels ()">gst_buffer_get_audio_downmix_meta_for_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">gstaudiometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-crop-meta" title="gst_buffer_get_video_crop_meta()">gst_buffer_get_video_crop_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-gl-texture-upload-meta" title="gst_buffer_get_video_gl_texture_upload_meta()">gst_buffer_get_video_gl_texture_upload_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-meta" title="gst_buffer_get_video_meta()">gst_buffer_get_video_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
 </dt>
 <dd></dd>
@@ -1156,6 +1248,14 @@
 </dt>
 <dd></dd>
 <dt>
+GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT, macro in gstvideopool
+</dt>
+<dd></dd>
+<dt>
+GST_BUFFER_POOL_OPTION_VIDEO_META, macro in gstvideopool
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-remove-video-overlay-composition-meta" title="gst_buffer_remove_video_overlay_composition_meta()">gst_buffer_remove_video_overlay_composition_meta</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
 </dt>
 <dd></dd>
@@ -1442,6 +1542,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-id" title="gst_discoverer_stream_info_get_stream_id ()">gst_discoverer_stream_info_get_stream_id</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
@@ -1513,6 +1617,18 @@
 <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced" title="gst_discoverer_video_info_is_interlaced ()">gst_discoverer_video_info_is_interlaced</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
 </dt>
 <dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-alloc" title="gst_dmabuf_allocator_alloc ()">gst_dmabuf_allocator_alloc</a>, function in <a class="link" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">dmabuf</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-obtain" title="gst_dmabuf_allocator_obtain ()">gst_dmabuf_allocator_obtain</a>, function in <a class="link" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">dmabuf</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd" title="gst_dmabuf_memory_get_fd ()">gst_dmabuf_memory_get_fd</a>, function in <a class="link" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">dmabuf</a>
+</dt>
+<dd></dd>
 <a name="idxE"></a><h3 class="title">E</h3>
 <dt>
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
@@ -1591,6 +1707,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-file-extension" title="gst_encoding_profile_get_file_extension ()">gst_encoding_profile_get_file_extension</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
@@ -1611,6 +1731,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset-name" title="gst_encoding_profile_get_preset_name ()">gst_encoding_profile_get_preset_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
@@ -1647,6 +1771,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset-name" title="gst_encoding_profile_set_preset_name ()">gst_encoding_profile_set_preset_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()">gst_encoding_profile_set_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
 </dt>
 <dd></dd>
@@ -1897,6 +2025,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory" title="gst_is_dmabuf_memory ()">gst_is_dmabuf_memory</a>, function in <a class="link" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">dmabuf</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message" title="gst_is_missing_plugin_message ()">gst_is_missing_plugin_message</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
 </dt>
 <dd></dd>
@@ -1955,147 +2087,147 @@
 <dd></dd>
 <a name="idxN"></a><h3 class="title">N</h3>
 <dt>
-GstNavigation, struct in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct">GstNavigation</a>, struct in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GstNavigationCommand, enum in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand">GstNavigationCommand</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GstNavigationEventType, enum in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType">GstNavigationEventType</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GstNavigationInterface, struct in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface">GstNavigationInterface</a>, struct in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GstNavigationMessageType, enum in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GstNavigationQueryType, enum in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_ROOT_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-GST_NAVIGATION_COMMAND_DVD_TITLE_MENU, macro in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_event_parse_command, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command">gst_navigation_event_parse_command</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_event_parse_key_event, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event">gst_navigation_event_parse_key_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_event_parse_mouse_button_event, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event">gst_navigation_event_parse_mouse_button_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_event_parse_mouse_move_event, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event">gst_navigation_event_parse_mouse_move_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_message_get_type, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type">gst_navigation_message_get_type</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_message_new_angles_changed, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed">gst_navigation_message_new_angles_changed</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_message_new_commands_changed, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed">gst_navigation_message_new_commands_changed</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_message_new_mouse_over, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over">gst_navigation_message_new_mouse_over</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_message_parse_angles_changed, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed">gst_navigation_message_parse_angles_changed</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_message_parse_mouse_over, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over">gst_navigation_message_parse_mouse_over</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_get_type, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type">gst_navigation_query_get_type</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_new_angles, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles">gst_navigation_query_new_angles</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_new_commands, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands">gst_navigation_query_new_commands</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_parse_angles, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles">gst_navigation_query_parse_angles</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_parse_commands_length, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length">gst_navigation_query_parse_commands_length</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_parse_commands_nth, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth">gst_navigation_query_parse_commands_nth</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_set_angles, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles">gst_navigation_query_set_angles</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_set_commands, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands">gst_navigation_query_set_commands</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_query_set_commandsv, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv">gst_navigation_query_set_commandsv</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_send_command, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command">gst_navigation_send_command</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_send_event, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event">gst_navigation_send_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_send_key_event, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event">gst_navigation_send_key_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <dt>
-gst_navigation_send_mouse_event, function in gstnavigation
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event">gst_navigation_send_mouse_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
 </dt>
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
@@ -2841,6 +2973,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-56" title="gst_rtp_hdrext_get_ntp_56 ()">gst_rtp_hdrext_get_ntp_56</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">gstrtphdrext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-64" title="gst_rtp_hdrext_get_ntp_64 ()">gst_rtp_hdrext_get_ntp_64</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">gstrtphdrext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-56" title="gst_rtp_hdrext_set_ntp_56 ()">gst_rtp_hdrext_set_ntp_56</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">gstrtphdrext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-64" title="gst_rtp_hdrext_set_ntp_64 ()">gst_rtp_hdrext_set_ntp_64</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">gstrtphdrext</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name" title="gst_rtp_payload_info_for_name ()">gst_rtp_payload_info_for_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">gstrtppayloads</a>
 </dt>
 <dd></dd>
@@ -2929,6 +3077,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" title="struct GstRTSPTime2">GstRTSPTime2</a>, struct in <a class="link" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">gstrtsprange</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange">GstRTSPTimeRange</a>, struct in <a class="link" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">gstrtsprange</a>
 </dt>
 <dd></dd>
@@ -3209,10 +3361,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-from-text" title="gst_rtsp_options_from_text ()">gst_rtsp_options_from_text</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">gstrtspdefs</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-convert-units" title="gst_rtsp_range_convert_units ()">gst_rtsp_range_convert_units</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">gstrtsprange</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free" title="gst_rtsp_range_free ()">gst_rtsp_range_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">gstrtsprange</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times" title="gst_rtsp_range_get_times ()">gst_rtsp_range_get_times</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">gstrtsprange</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse" title="gst_rtsp_range_parse ()">gst_rtsp_range_parse</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">gstrtsprange</a>
 </dt>
 <dd></dd>
@@ -3293,6 +3457,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-get-send-backlog" title="gst_rtsp_watch_get_send_backlog ()">gst_rtsp_watch_get_send_backlog</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">gstrtspconnection</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-new" title="gst_rtsp_watch_new ()">gst_rtsp_watch_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">gstrtspconnection</a>
 </dt>
 <dd></dd>
@@ -3305,6 +3473,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()">gst_rtsp_watch_set_send_backlog</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">gstrtspconnection</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref" title="gst_rtsp_watch_unref ()">gst_rtsp_watch_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">gstrtspconnection</a>
 </dt>
 <dd></dd>
@@ -3358,6 +3530,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-clear" title="gst_sdp_attribute_clear ()">gst_sdp_attribute_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-set" title="gst_sdp_attribute_set ()">gst_sdp_attribute_set</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-clear" title="gst_sdp_bandwidth_clear ()">gst_sdp_bandwidth_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set" title="gst_sdp_bandwidth_set ()">gst_sdp_bandwidth_set</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-AS:CAPS" title="GST_SDP_BWTYPE_AS">GST_SDP_BWTYPE_AS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -3382,6 +3570,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear" title="gst_sdp_connection_clear ()">gst_sdp_connection_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set" title="gst_sdp_connection_set ()">gst_sdp_connection_set</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute" title="gst_sdp_media_add_attribute ()">gst_sdp_media_add_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -3474,10 +3670,58 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-attribute" title="gst_sdp_media_insert_attribute ()">gst_sdp_media_insert_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-bandwidth" title="gst_sdp_media_insert_bandwidth ()">gst_sdp_media_insert_bandwidth</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-connection" title="gst_sdp_media_insert_connection ()">gst_sdp_media_insert_connection</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-format" title="gst_sdp_media_insert_format ()">gst_sdp_media_insert_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new" title="gst_sdp_media_new ()">gst_sdp_media_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-attribute" title="gst_sdp_media_remove_attribute ()">gst_sdp_media_remove_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-bandwidth" title="gst_sdp_media_remove_bandwidth ()">gst_sdp_media_remove_bandwidth</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-connection" title="gst_sdp_media_remove_connection ()">gst_sdp_media_remove_connection</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-format" title="gst_sdp_media_remove_format ()">gst_sdp_media_remove_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-attribute" title="gst_sdp_media_replace_attribute ()">gst_sdp_media_replace_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-bandwidth" title="gst_sdp_media_replace_bandwidth ()">gst_sdp_media_replace_bandwidth</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-connection" title="gst_sdp_media_replace_connection ()">gst_sdp_media_replace_connection</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-format" title="gst_sdp_media_replace_format ()">gst_sdp_media_replace_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information" title="gst_sdp_media_set_information ()">gst_sdp_media_set_information</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -3626,6 +3870,30 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-attribute" title="gst_sdp_message_insert_attribute ()">gst_sdp_message_insert_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-bandwidth" title="gst_sdp_message_insert_bandwidth ()">gst_sdp_message_insert_bandwidth</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-email" title="gst_sdp_message_insert_email ()">gst_sdp_message_insert_email</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-phone" title="gst_sdp_message_insert_phone ()">gst_sdp_message_insert_phone</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-time" title="gst_sdp_message_insert_time ()">gst_sdp_message_insert_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-zone" title="gst_sdp_message_insert_zone ()">gst_sdp_message_insert_zone</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len" title="gst_sdp_message_medias_len ()">gst_sdp_message_medias_len</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -3646,6 +3914,54 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-attribute" title="gst_sdp_message_remove_attribute ()">gst_sdp_message_remove_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-bandwidth" title="gst_sdp_message_remove_bandwidth ()">gst_sdp_message_remove_bandwidth</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-email" title="gst_sdp_message_remove_email ()">gst_sdp_message_remove_email</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-phone" title="gst_sdp_message_remove_phone ()">gst_sdp_message_remove_phone</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-time" title="gst_sdp_message_remove_time ()">gst_sdp_message_remove_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-zone" title="gst_sdp_message_remove_zone ()">gst_sdp_message_remove_zone</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-attribute" title="gst_sdp_message_replace_attribute ()">gst_sdp_message_replace_attribute</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-bandwidth" title="gst_sdp_message_replace_bandwidth ()">gst_sdp_message_replace_bandwidth</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-email" title="gst_sdp_message_replace_email ()">gst_sdp_message_replace_email</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-phone" title="gst_sdp_message_replace_phone ()">gst_sdp_message_replace_phone</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-time" title="gst_sdp_message_replace_time ()">gst_sdp_message_replace_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-zone" title="gst_sdp_message_replace_zone ()">gst_sdp_message_replace_zone</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection" title="gst_sdp_message_set_connection ()">gst_sdp_message_set_connection</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
 </dt>
 <dd></dd>
@@ -3686,6 +4002,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-clear" title="gst_sdp_time_clear ()">gst_sdp_time_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-set" title="gst_sdp_time_set ()">gst_sdp_time_set</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-clear" title="gst_sdp_zone_clear ()">gst_sdp_zone_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-set" title="gst_sdp_zone_set ()">gst_sdp_zone_set</a>, function in <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">gstsdpmessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct" title="GstStreamVolume">GstStreamVolume</a>, struct in <a class="link" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">gststreamvolume</a>
 </dt>
 <dd></dd>
@@ -4176,6 +4508,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload" title="GstVideoGLTextureUpload ()">GstVideoGLTextureUpload</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta">GstVideoGLTextureUploadMeta</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo">GstVideoInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -4188,6 +4528,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform" title="GstVideoMetaTransform">GstVideoMetaTransform</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct" title="GstVideoOrientation">GstVideoOrientation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">gstvideoorientation</a>
 </dt>
 <dd></dd>
@@ -4204,6 +4548,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta">GstVideoOverlayCompositionMeta</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
 </dt>
 <dd></dd>
@@ -4904,6 +5252,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload" title="gst_video_gl_texture_upload_meta_upload ()">gst_video_gl_texture_upload_meta_upload</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">gstvideometa</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-align" title="gst_video_info_align ()">gst_video_info_align</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
 </dt>
 <dd></dd>
@@ -5124,6 +5476,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS" title="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS">GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()">gst_video_overlay_composition_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
 </dt>
 <dd></dd>
diff --git a/docs/libs/html/compiling.html b/docs/libs/html/compiling.html
index 129da4e..6668bb6 100644
--- a/docs/libs/html/compiling.html
+++ b/docs/libs/html/compiling.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Compiling</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="next" href="gstreamer-app.html" title="App Library">
+<link rel="next" href="gstreamer-allocators.html" title="Allocators Library">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-allocators.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="compiling"></a><div class="titlepage"></div>
@@ -31,7 +31,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6627968"></a><h2>Compiling against the base plugins libraries</h2>
+<a name="idp9259904"></a><h2>Compiling against the base plugins libraries</h2>
 <p>
 To compile against these libraries, you need to tell the compiler where to 
 find the header files and libraries. This is done with the
diff --git a/docs/libs/html/gst-plugins-base-libs.devhelp2 b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
similarity index 92%
rename from docs/libs/html/gst-plugins-base-libs.devhelp2
rename to docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
index e0b0eb8..04eeeb4 100644
--- a/docs/libs/html/gst-plugins-base-libs.devhelp2
+++ b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
@@ -1,15 +1,19 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 1.0 Library Reference Manual" link="index.html" author="" name="gst-plugins-base-libs" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 1.0 Library Reference Manual" link="index.html" author="" name="gst-plugins-base-libs-1.0" version="2" language="c">
   <chapters>
     <sub name="GStreamer Base Plugins Libraries" link="gstreamer-plugins-base.html">
       <sub name="Compiling" link="compiling.html"/>
+      <sub name="Allocators Library" link="gstreamer-allocators.html">
+        <sub name="dmabuf" link="gst-plugins-base-libs-dmabuf.html"/>
+      </sub>
       <sub name="App Library" link="gstreamer-app.html">
         <sub name="appsrc" link="gst-plugins-base-libs-appsrc.html"/>
         <sub name="appsink" link="gst-plugins-base-libs-appsink.html"/>
       </sub>
       <sub name="Audio Library" link="gstreamer-audio.html">
         <sub name="gstaudio" link="gst-plugins-base-libs-gstaudio.html"/>
+        <sub name="gstaudiometa" link="gst-plugins-base-libs-gstaudiometa.html"/>
         <sub name="gstaudiocdsrc" link="gst-plugins-base-libs-gstaudiocdsrc.html"/>
         <sub name="gstaudioclock" link="gst-plugins-base-libs-gstaudioclock.html"/>
         <sub name="gstaudiodecoder" link="gst-plugins-base-libs-gstaudiodecoder.html"/>
@@ -20,7 +24,7 @@
         <sub name="gstaudiosrc" link="gst-plugins-base-libs-gstaudiosrc.html"/>
         <sub name="gstaudiobasesink" link="gst-plugins-base-libs-gstaudiobasesink.html"/>
         <sub name="gstaudiobasesrc" link="gst-plugins-base-libs-gstaudiobasesrc.html"/>
-        <sub name="gstmultichannel" link="gst-plugins-base-libs-gstmultichannel.html"/>
+        <sub name="gstaudiochannels" link="gst-plugins-base-libs-gstaudiochannels.html"/>
         <sub name="gstaudioringbuffer" link="gst-plugins-base-libs-gstaudioringbuffer.html"/>
         <sub name="gstaudioiec61937" link="gst-plugins-base-libs-gstaudioiec61937.html"/>
         <sub name="gststreamvolume" link="gst-plugins-base-libs-gststreamvolume.html"/>
@@ -99,6 +103,10 @@
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
+    <keyword type="function" name="gst_dmabuf_allocator_alloc ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-alloc" since="1.2"/>
+    <keyword type="function" name="gst_dmabuf_allocator_obtain ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-obtain" since="1.2"/>
+    <keyword type="function" name="gst_dmabuf_memory_get_fd ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd" since="1.2"/>
+    <keyword type="function" name="gst_is_dmabuf_memory ()" link="gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory" since="1.2"/>
     <keyword type="enum" name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
     <keyword type="function" name="gst_app_src_set_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps"/>
     <keyword type="function" name="gst_app_src_get_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps"/>
@@ -147,6 +155,7 @@
     <keyword type="function" name="gst_audio_info_free ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free"/>
     <keyword type="function" name="gst_audio_info_new ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-new"/>
     <keyword type="function" name="gst_audio_info_set_format ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-set-format"/>
+    <keyword type="function" name="gst_audio_info_is_equal ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal" since="1.2"/>
     <keyword type="function" name="gst_audio_format_build_integer ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-build-integer"/>
     <keyword type="function" name="gst_audio_format_fill_silence ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-fill-silence"/>
     <keyword type="function" name="gst_audio_format_from_string ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-from-string"/>
@@ -183,11 +192,23 @@
     <keyword type="macro" name="GST_AUDIO_INFO_LAYOUT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-LAYOUT:CAPS"/>
     <keyword type="macro" name="GST_FRAMES_TO_CLOCK_TIME()" link="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS"/>
     <keyword type="macro" name="GST_CLOCK_TIME_TO_FRAMES()" link="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_NE()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-NE:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_OE()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-OE:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_RATE_RANGE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-RATE-RANGE:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_CHANNELS_RANGE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CHANNELS-RANGE:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_FORMATS_ALL" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMATS-ALL:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_CAPS_MAKE()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CAPS-MAKE:CAPS"/>
     <keyword type="macro" name="GST_AUDIO_DEF_RATE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_DEF_CHANNELS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-CHANNELS:CAPS"/>
+    <keyword type="macro" name="GST_AUDIO_DEF_FORMAT" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-FORMAT:CAPS"/>
     <keyword type="function" name="gst_audio_buffer_clip ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip"/>
-    <keyword type="" name="Using GstAudioCdSrc-based elements in applications" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp5520528"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp9622128"/>
-    <keyword type="" name="Tracks and Table of Contents (TOC)" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp7748336"/>
+    <keyword type="struct" name="struct GstAudioDownmixMeta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta"/>
+    <keyword type="function" name="gst_buffer_add_audio_downmix_meta ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-downmix-meta"/>
+    <keyword type="macro" name="gst_buffer_get_audio_downmix_meta()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta"/>
+    <keyword type="function" name="gst_buffer_get_audio_downmix_meta_for_channels ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta-for-channels"/>
+    <keyword type="" name="Using GstAudioCdSrc-based elements in applications" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp6759040"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp9687648"/>
+    <keyword type="" name="Tracks and Table of Contents (TOC)" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp9692768"/>
     <keyword type="struct" name="struct GstAudioCdSrc" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc-struct"/>
     <keyword type="struct" name="struct GstAudioCdSrcClass" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass"/>
     <keyword type="struct" name="struct GstAudioCdSrcTrack" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack"/>
@@ -328,8 +349,16 @@
     <keyword type="property" name="The &quot;latency-time&quot; property" link="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--latency-time"/>
     <keyword type="property" name="The &quot;provide-clock&quot; property" link="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--provide-clock"/>
     <keyword type="property" name="The &quot;slave-method&quot; property" link="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--slave-method"/>
-    <keyword type="enum" name="enum GstAudioChannelPosition" link="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstaudioringbuffer.html#idp13515728"/>
+    <keyword type="enum" name="enum GstAudioChannelPosition" link="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition"/>
+    <keyword type="macro" name="GST_AUDIO_CHANNEL_POSITION_MASK()" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-MASK:CAPS"/>
+    <keyword type="function" name="gst_audio_channel_positions_to_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-mask"/>
+    <keyword type="function" name="gst_audio_channel_positions_from_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-from-mask"/>
+    <keyword type="function" name="gst_audio_channel_positions_to_valid_order ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order"/>
+    <keyword type="function" name="gst_audio_check_valid_channel_positions ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-check-valid-channel-positions"/>
+    <keyword type="function" name="gst_audio_buffer_reorder_channels ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-buffer-reorder-channels"/>
+    <keyword type="function" name="gst_audio_reorder_channels ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-reorder-channels"/>
+    <keyword type="function" name="gst_audio_get_channel_reorder_map ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-get-channel-reorder-map"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstaudioringbuffer.html#idp14121408"/>
     <keyword type="struct" name="struct GstAudioRingBuffer" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct"/>
     <keyword type="struct" name="struct GstAudioRingBufferClass" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass"/>
     <keyword type="struct" name="struct GstAudioRingBufferSpec" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec"/>
@@ -370,7 +399,7 @@
     <keyword type="function" name="gst_audio_ring_buffer_set_timestamp ()" link="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-timestamp"/>
     <keyword type="function" name="gst_audio_iec61937_frame_size ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size"/>
     <keyword type="function" name="gst_audio_iec61937_payload ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp10488096"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp13908656"/>
     <keyword type="struct" name="GstStreamVolume" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct"/>
     <keyword type="enum" name="enum GstStreamVolumeFormat" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat"/>
     <keyword type="function" name="gst_stream_volume_get_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume"/>
@@ -425,7 +454,7 @@
     <keyword type="function" name="gst_riff_parse_strf_vids ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids"/>
     <keyword type="function" name="gst_riff_parse_strh ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh"/>
     <keyword type="function" name="gst_riff_read_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk"/>
-    <keyword type="" name="Usage" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#idp14931920"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#idp15980400"/>
     <keyword type="struct" name="struct GstRTPBaseAudioPayload" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct"/>
     <keyword type="struct" name="struct GstRTPBaseAudioPayloadClass" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayloadClass"/>
     <keyword type="function" name="gst_rtp_base_audio_payload_set_frame_based ()" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-frame-based"/>
@@ -465,7 +494,7 @@
     <keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--ssrc"/>
     <keyword type="property" name="The &quot;timestamp&quot; property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp"/>
     <keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp-offset"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp16569680"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp17196608"/>
     <keyword type="macro" name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
     <keyword type="function" name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
     <keyword type="function" name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
@@ -515,7 +544,7 @@
     <keyword type="function" name="gst_rtp_buffer_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header"/>
     <keyword type="function" name="gst_rtp_buffer_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header"/>
     <keyword type="function" name="gst_rtp_buffer_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp17114000"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp17276416"/>
     <keyword type="macro" name="GST_RTCP_VERSION" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS"/>
     <keyword type="macro" name="GST_RTCP_MAX_SDES" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS"/>
     <keyword type="macro" name="GST_RTCP_MAX_BYE_SSRC_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"/>
@@ -583,12 +612,16 @@
     <keyword type="function" name="gst_rtcp_unix_to_ntp ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp"/>
     <keyword type="function" name="gst_rtcp_sdes_name_to_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type"/>
     <keyword type="function" name="gst_rtcp_sdes_type_to_name ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp16194368"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp17830112"/>
     <keyword type="enum" name="enum GstRTPPayload" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload"/>
     <keyword type="macro" name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
     <keyword type="struct" name="struct GstRTPPayloadInfo" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo"/>
     <keyword type="function" name="gst_rtp_payload_info_for_name ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name"/>
     <keyword type="function" name="gst_rtp_payload_info_for_pt ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt"/>
+    <keyword type="function" name="gst_rtp_hdrext_get_ntp_56 ()" link="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-56"/>
+    <keyword type="function" name="gst_rtp_hdrext_get_ntp_64 ()" link="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-64"/>
+    <keyword type="function" name="gst_rtp_hdrext_set_ntp_56 ()" link="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-56"/>
+    <keyword type="function" name="gst_rtp_hdrext_set_ntp_64 ()" link="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-64"/>
     <keyword type="struct" name="GstRTSPConnection" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection"/>
     <keyword type="function" name="gst_rtsp_connection_create ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create"/>
     <keyword type="function" name="gst_rtsp_connection_create_from_socket ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-socket"/>
@@ -627,6 +660,8 @@
     <keyword type="function" name="gst_rtsp_watch_reset ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-reset"/>
     <keyword type="function" name="gst_rtsp_watch_send_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message"/>
     <keyword type="function" name="gst_rtsp_watch_write_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data"/>
+    <keyword type="function" name="gst_rtsp_watch_get_send_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-get-send-backlog" since="1.1.1"/>
+    <keyword type="function" name="gst_rtsp_watch_set_send_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" since="1.1.1"/>
     <keyword type="macro" name="GST_RTSP_CHECK()" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS"/>
     <keyword type="macro" name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
     <keyword type="enum" name="enum GstRTSPEvent" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent"/>
@@ -645,9 +680,10 @@
     <keyword type="function" name="gst_rtsp_header_allow_multiple ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple"/>
     <keyword type="function" name="gst_rtsp_status_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text"/>
     <keyword type="function" name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text"/>
+    <keyword type="function" name="gst_rtsp_options_from_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-from-text" since="1.1.1"/>
     <keyword type="function" name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
     <keyword type="function" name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp6385888"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp15921088"/>
     <keyword type="struct" name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
     <keyword type="struct" name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
     <keyword type="enum" name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
@@ -679,9 +715,12 @@
     <keyword type="enum" name="enum GstRTSPRangeUnit" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit"/>
     <keyword type="struct" name="struct GstRTSPTimeRange" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange"/>
     <keyword type="struct" name="struct GstRTSPTime" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime"/>
+    <keyword type="struct" name="struct GstRTSPTime2" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" since="1.1.1"/>
     <keyword type="enum" name="enum GstRTSPTimeType" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType"/>
     <keyword type="function" name="gst_rtsp_range_parse ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse"/>
+    <keyword type="function" name="gst_rtsp_range_get_times ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times" since="1.1.1"/>
     <keyword type="function" name="gst_rtsp_range_to_string ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string"/>
+    <keyword type="function" name="gst_rtsp_range_convert_units ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-convert-units"/>
     <keyword type="function" name="gst_rtsp_range_free ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free"/>
     <keyword type="enum" name="enum GstRTSPTransMode" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode"/>
     <keyword type="enum" name="enum GstRTSPProfile" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPProfile"/>
@@ -704,10 +743,12 @@
     <keyword type="function" name="gst_rtsp_url_set_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port"/>
     <keyword type="function" name="gst_rtsp_url_get_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port"/>
     <keyword type="function" name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp23208784"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp25117568"/>
     <keyword type="enum" name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
     <keyword type="struct" name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
     <keyword type="struct" name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
+    <keyword type="function" name="gst_sdp_connection_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set" since="1.2"/>
+    <keyword type="function" name="gst_sdp_connection_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear" since="1.2"/>
     <keyword type="macro" name="GST_SDP_BWTYPE_CT" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-CT:CAPS"/>
     <keyword type="macro" name="GST_SDP_BWTYPE_AS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-AS:CAPS"/>
     <keyword type="macro" name="GST_SDP_BWTYPE_EXT_PREFIX" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-EXT-PREFIX:CAPS"/>
@@ -715,10 +756,18 @@
     <keyword type="macro" name="GST_SDP_BWTYPE_RS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RS:CAPS"/>
     <keyword type="macro" name="GST_SDP_BWTYPE_TIAS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-TIAS:CAPS"/>
     <keyword type="struct" name="GstSDPBandwidth" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth"/>
+    <keyword type="function" name="gst_sdp_bandwidth_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set" since="1.2"/>
+    <keyword type="function" name="gst_sdp_bandwidth_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-clear" since="1.2"/>
     <keyword type="struct" name="GstSDPTime" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime"/>
+    <keyword type="function" name="gst_sdp_time_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-set" since="1.2"/>
+    <keyword type="function" name="gst_sdp_time_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-clear" since="1.2"/>
     <keyword type="struct" name="GstSDPZone" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone"/>
+    <keyword type="function" name="gst_sdp_zone_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-set" since="1.2"/>
+    <keyword type="function" name="gst_sdp_zone_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-clear" since="1.2"/>
     <keyword type="struct" name="GstSDPKey" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey"/>
     <keyword type="struct" name="GstSDPAttribute" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute"/>
+    <keyword type="function" name="gst_sdp_attribute_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-set" since="1.2"/>
+    <keyword type="function" name="gst_sdp_attribute_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-clear" since="1.2"/>
     <keyword type="struct" name="GstSDPMedia" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia"/>
     <keyword type="struct" name="GstSDPMessage" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"/>
     <keyword type="function" name="gst_sdp_message_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new"/>
@@ -742,20 +791,35 @@
     <keyword type="function" name="gst_sdp_message_set_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri"/>
     <keyword type="function" name="gst_sdp_message_emails_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len"/>
     <keyword type="function" name="gst_sdp_message_get_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email"/>
+    <keyword type="function" name="gst_sdp_message_insert_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-email" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_replace_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-email" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_remove_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-email" since="1.2"/>
     <keyword type="function" name="gst_sdp_message_add_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email"/>
     <keyword type="function" name="gst_sdp_message_phones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len"/>
     <keyword type="function" name="gst_sdp_message_get_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone"/>
+    <keyword type="function" name="gst_sdp_message_insert_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-phone" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_replace_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-phone" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_remove_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-phone" since="1.2"/>
     <keyword type="function" name="gst_sdp_message_add_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone"/>
     <keyword type="function" name="gst_sdp_message_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection"/>
     <keyword type="function" name="gst_sdp_message_set_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection"/>
     <keyword type="function" name="gst_sdp_message_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len"/>
     <keyword type="function" name="gst_sdp_message_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth"/>
+    <keyword type="function" name="gst_sdp_message_insert_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-bandwidth" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_replace_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-bandwidth" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_remove_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-bandwidth" since="1.2"/>
     <keyword type="function" name="gst_sdp_message_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth"/>
     <keyword type="function" name="gst_sdp_message_times_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len"/>
     <keyword type="function" name="gst_sdp_message_get_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time"/>
+    <keyword type="function" name="gst_sdp_message_insert_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-time" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_replace_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-time" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_remove_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-time" since="1.2"/>
     <keyword type="function" name="gst_sdp_message_add_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time"/>
     <keyword type="function" name="gst_sdp_message_zones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len"/>
     <keyword type="function" name="gst_sdp_message_get_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone"/>
+    <keyword type="function" name="gst_sdp_message_insert_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-zone" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_replace_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-zone" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_remove_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-zone" since="1.2"/>
     <keyword type="function" name="gst_sdp_message_add_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone"/>
     <keyword type="function" name="gst_sdp_message_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key"/>
     <keyword type="function" name="gst_sdp_message_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key"/>
@@ -763,6 +827,9 @@
     <keyword type="function" name="gst_sdp_message_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute"/>
     <keyword type="function" name="gst_sdp_message_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val"/>
     <keyword type="function" name="gst_sdp_message_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n"/>
+    <keyword type="function" name="gst_sdp_message_insert_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-attribute" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_replace_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-attribute" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_remove_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-attribute" since="1.2"/>
     <keyword type="function" name="gst_sdp_message_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute"/>
     <keyword type="function" name="gst_sdp_message_medias_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len"/>
     <keyword type="function" name="gst_sdp_message_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media"/>
@@ -772,6 +839,7 @@
     <keyword type="function" name="gst_sdp_media_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init"/>
     <keyword type="function" name="gst_sdp_media_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit"/>
     <keyword type="function" name="gst_sdp_media_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free"/>
+    <keyword type="function" name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
     <keyword type="function" name="gst_sdp_media_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media"/>
     <keyword type="function" name="gst_sdp_media_set_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media"/>
     <keyword type="function" name="gst_sdp_media_get_port ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port"/>
@@ -781,14 +849,23 @@
     <keyword type="function" name="gst_sdp_media_set_proto ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto"/>
     <keyword type="function" name="gst_sdp_media_formats_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len"/>
     <keyword type="function" name="gst_sdp_media_get_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format"/>
+    <keyword type="function" name="gst_sdp_media_insert_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-format" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_replace_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-format" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_remove_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-format" since="1.2"/>
     <keyword type="function" name="gst_sdp_media_add_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format"/>
     <keyword type="function" name="gst_sdp_media_get_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information"/>
     <keyword type="function" name="gst_sdp_media_set_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information"/>
     <keyword type="function" name="gst_sdp_media_connections_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len"/>
     <keyword type="function" name="gst_sdp_media_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection"/>
+    <keyword type="function" name="gst_sdp_media_insert_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-connection" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_replace_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-connection" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_remove_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-connection" since="1.2"/>
     <keyword type="function" name="gst_sdp_media_add_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection"/>
     <keyword type="function" name="gst_sdp_media_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len"/>
     <keyword type="function" name="gst_sdp_media_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth"/>
+    <keyword type="function" name="gst_sdp_media_insert_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-bandwidth" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_replace_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-bandwidth" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_remove_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-bandwidth" since="1.2"/>
     <keyword type="function" name="gst_sdp_media_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth"/>
     <keyword type="function" name="gst_sdp_media_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key"/>
     <keyword type="function" name="gst_sdp_media_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key"/>
@@ -796,9 +873,11 @@
     <keyword type="function" name="gst_sdp_media_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute"/>
     <keyword type="function" name="gst_sdp_media_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val"/>
     <keyword type="function" name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
+    <keyword type="function" name="gst_sdp_media_insert_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-attribute" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_replace_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-attribute" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_remove_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-attribute" since="1.2"/>
     <keyword type="function" name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
-    <keyword type="function" name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp17179120"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp16950320"/>
     <keyword type="macro" name="GST_TAG_MUSICBRAINZ_TRACKID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRACKID:CAPS"/>
     <keyword type="macro" name="GST_TAG_MUSICBRAINZ_ARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"/>
     <keyword type="macro" name="GST_TAG_MUSICBRAINZ_ALBUMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"/>
@@ -836,7 +915,7 @@
     <keyword type="function" name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8"/>
     <keyword type="function" name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment"/>
     <keyword type="enum" name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp23106976"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp22820896"/>
     <keyword type="function" name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
     <keyword type="function" name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
     <keyword type="function" name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
@@ -844,7 +923,7 @@
     <keyword type="function" name="gst_tag_list_from_vorbiscomment ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment"/>
     <keyword type="function" name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
     <keyword type="function" name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp22652816"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp15937472"/>
     <keyword type="function" name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
     <keyword type="function" name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
     <keyword type="function" name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
@@ -861,21 +940,21 @@
     <keyword type="function" name="gst_tag_list_from_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer"/>
     <keyword type="function" name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer"/>
     <keyword type="function" name="gst_tag_xmp_list_schemas ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#idp19265232"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#idp23002640"/>
     <keyword type="function" name="gst_tag_xmp_writer_add_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas"/>
     <keyword type="function" name="gst_tag_xmp_writer_add_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema"/>
     <keyword type="function" name="gst_tag_xmp_writer_has_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema"/>
     <keyword type="function" name="gst_tag_xmp_writer_remove_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema"/>
     <keyword type="function" name="gst_tag_xmp_writer_remove_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas"/>
     <keyword type="function" name="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer"/>
-    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp6524864"/>
+    <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp7471744"/>
     <keyword type="struct" name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux"/>
     <keyword type="struct" name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass"/>
     <keyword type="enum" name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult"/>
-    <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#idp10890848"/>
+    <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#idp6228784"/>
     <keyword type="struct" name="struct GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#GstTagMux"/>
     <keyword type="struct" name="struct GstTagMuxClass" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp14867200"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp19612304"/>
     <keyword type="function" name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes"/>
     <keyword type="function" name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name"/>
     <keyword type="macro" name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code"/>
@@ -891,7 +970,7 @@
     <keyword type="function" name="gst_tag_get_license_jurisdiction ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction"/>
     <keyword type="function" name="gst_tag_get_license_version ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version"/>
     <keyword type="function" name="gst_tag_get_licenses ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses"/>
-    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp5657536"/>
+    <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp6729328"/>
     <keyword type="function" name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init"/>
     <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"/>
     <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS"/>
@@ -900,7 +979,7 @@
     <keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
     <keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version"/>
     <keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp21881520"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp23255856"/>
     <keyword type="function" name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index"/>
     <keyword type="function" name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile"/>
     <keyword type="function" name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level"/>
@@ -912,7 +991,7 @@
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp22576800"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp19644144"/>
     <keyword type="function" name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
     <keyword type="function" name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
     <keyword type="function" name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
@@ -920,7 +999,7 @@
     <keyword type="function" name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
     <keyword type="function" name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
     <keyword type="function" name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp22429456"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp23298112"/>
     <keyword type="function" name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
     <keyword type="function" name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
     <keyword type="function" name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
@@ -934,7 +1013,7 @@
     <keyword type="function" name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new"/>
     <keyword type="function" name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new"/>
     <keyword type="function" name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new"/>
-    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp25527792"/>
+    <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp22449248"/>
     <keyword type="enum" name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn"/>
     <keyword type="function" name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc"/>
     <keyword type="function" name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async"/>
@@ -976,6 +1055,7 @@
     <keyword type="function" name="gst_discoverer_stream_info_get_previous ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_tags ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_toc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-toc"/>
+    <keyword type="function" name="gst_discoverer_stream_info_get_stream_id ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-id"/>
     <keyword type="macro" name="gst_discoverer_stream_info_ref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref"/>
     <keyword type="macro" name="gst_discoverer_stream_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref"/>
     <keyword type="function" name="gst_discoverer_stream_info_list_free ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free"/>
@@ -1009,9 +1089,9 @@
     <keyword type="signal" name="The &quot;finished&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished"/>
     <keyword type="signal" name="The &quot;source-setup&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-source-setup"/>
     <keyword type="signal" name="The &quot;starting&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp26231488"/>
-    <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp26239056"/>
-    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp26242048"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp27908240"/>
+    <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp27915808"/>
+    <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp27918800"/>
     <keyword type="struct" name="GstEncodingProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"/>
     <keyword type="macro" name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref"/>
     <keyword type="macro" name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref"/>
@@ -1021,12 +1101,15 @@
     <keyword type="function" name="gst_encoding_profile_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description"/>
     <keyword type="function" name="gst_encoding_profile_get_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format"/>
     <keyword type="function" name="gst_encoding_profile_get_preset ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset"/>
+    <keyword type="function" name="gst_encoding_profile_get_preset_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset-name"/>
     <keyword type="function" name="gst_encoding_profile_get_presence ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence"/>
     <keyword type="function" name="gst_encoding_profile_get_restriction ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction"/>
+    <keyword type="function" name="gst_encoding_profile_get_file_extension ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-file-extension"/>
     <keyword type="function" name="gst_encoding_profile_set_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name"/>
     <keyword type="function" name="gst_encoding_profile_set_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description"/>
     <keyword type="function" name="gst_encoding_profile_set_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format"/>
     <keyword type="function" name="gst_encoding_profile_set_preset ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset"/>
+    <keyword type="function" name="gst_encoding_profile_set_preset_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset-name"/>
     <keyword type="function" name="gst_encoding_profile_set_restriction ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction"/>
     <keyword type="function" name="gst_encoding_profile_set_presence ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence"/>
     <keyword type="function" name="gst_encoding_profile_is_equal ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal"/>
@@ -1065,7 +1148,7 @@
     <keyword type="function" name="gst_encoding_target_load_from_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file"/>
     <keyword type="function" name="gst_encoding_list_all_targets ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets"/>
     <keyword type="function" name="gst_encoding_list_available_categories ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp29493584"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp31156624"/>
     <keyword type="function" name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio"/>
     <keyword type="function" name="GstVideoConvertSampleCallback ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback"/>
     <keyword type="function" name="gst_video_convert_sample ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample"/>
@@ -1211,6 +1294,7 @@
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_POFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-POFFSET:CAPS"/>
     <keyword type="enum" name="enum GstVideoBufferFlags" link="gst-plugins-base-libs-gstvideo.html#GstVideoBufferFlags"/>
     <keyword type="struct" name="struct GstVideoMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta"/>
+    <keyword type="struct" name="GstVideoMetaTransform" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform"/>
     <keyword type="function" name="gst_video_meta_map ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map"/>
     <keyword type="function" name="gst_video_meta_unmap ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-unmap"/>
     <keyword type="function" name="gst_video_meta_get_info ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-get-info"/>
@@ -1221,7 +1305,12 @@
     <keyword type="struct" name="struct GstVideoCropMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta"/>
     <keyword type="macro" name="gst_buffer_add_video_crop_meta()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-crop-meta"/>
     <keyword type="macro" name="gst_buffer_get_video_crop_meta()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-crop-meta"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#idp25336896"/>
+    <keyword type="function" name="GstVideoGLTextureUpload ()" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload"/>
+    <keyword type="struct" name="struct GstVideoGLTextureUploadMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta"/>
+    <keyword type="function" name="gst_buffer_add_video_gl_texture_upload_meta ()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-gl-texture-upload-meta"/>
+    <keyword type="macro" name="gst_buffer_get_video_gl_texture_upload_meta()" link="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-gl-texture-upload-meta"/>
+    <keyword type="function" name="gst_video_gl_texture_upload_meta_upload ()" link="gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#idp28150768"/>
     <keyword type="struct" name="GstVideoOverlayComposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition"/>
     <keyword type="function" name="gst_video_overlay_composition_new ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new"/>
     <keyword type="function" name="gst_video_overlay_composition_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref"/>
@@ -1232,7 +1321,9 @@
     <keyword type="function" name="gst_video_overlay_composition_get_seqnum ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum"/>
     <keyword type="function" name="gst_video_overlay_composition_copy ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy"/>
     <keyword type="function" name="gst_video_overlay_composition_make_writable ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable"/>
+    <keyword type="macro" name="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS" since="1.2"/>
     <keyword type="function" name="gst_video_overlay_composition_blend ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend"/>
+    <keyword type="struct" name="struct GstVideoOverlayCompositionMeta" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta"/>
     <keyword type="function" name="gst_video_overlay_composition_meta_get_info ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-meta-get-info"/>
     <keyword type="function" name="gst_buffer_add_video_overlay_composition_meta ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-add-video-overlay-composition-meta"/>
     <keyword type="macro" name="gst_buffer_get_video_overlay_composition_meta()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-get-video-overlay-composition-meta"/>
@@ -1255,10 +1346,10 @@
     <keyword type="function" name="gst_video_overlay_rectangle_get_flags ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-flags"/>
     <keyword type="function" name="gst_video_overlay_rectangle_get_global_alpha ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-global-alpha"/>
     <keyword type="function" name="gst_video_overlay_rectangle_set_global_alpha ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-global-alpha"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp24657472"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp30025936"/>
     <keyword type="struct" name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
     <keyword type="struct" name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp24791616"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp22507344"/>
     <keyword type="struct" name="struct GstVideoSink" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct"/>
     <keyword type="struct" name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
     <keyword type="struct" name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
@@ -1267,7 +1358,7 @@
     <keyword type="macro" name="GST_VIDEO_SINK_WIDTH()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-WIDTH:CAPS"/>
     <keyword type="function" name="gst_video_sink_center_rect ()" link="gst-plugins-base-libs-gstvideosink.html#gst-video-sink-center-rect"/>
     <keyword type="property" name="The &quot;show-preroll-frame&quot; property" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp27266144"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp28056816"/>
     <keyword type="struct" name="GstColorBalance" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct"/>
     <keyword type="struct" name="struct GstColorBalanceInterface" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface"/>
     <keyword type="enum" name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
@@ -1277,7 +1368,7 @@
     <keyword type="function" name="gst_color_balance_value_changed ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed"/>
     <keyword type="function" name="gst_color_balance_get_balance_type ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type"/>
     <keyword type="signal" name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp27546160"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp30072288"/>
     <keyword type="struct" name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
     <keyword type="struct" name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
     <keyword type="signal" name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
@@ -1291,10 +1382,10 @@
     <keyword type="function" name="gst_video_orientation_set_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip"/>
     <keyword type="function" name="gst_video_orientation_set_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter"/>
     <keyword type="function" name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip"/>
-    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#idp26428400"/>
-    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#idp26438512"/>
-    <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#idp28364736"/>
-    <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#idp28369936"/>
+    <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#idp23504864"/>
+    <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#idp24790736"/>
+    <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#idp24802896"/>
+    <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#idp30676032"/>
     <keyword type="struct" name="GstVideoOverlay" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay-struct"/>
     <keyword type="struct" name="struct GstVideoOverlayInterface" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface"/>
     <keyword type="function" name="gst_video_overlay_got_window_handle ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-got-window-handle"/>
@@ -1464,40 +1555,41 @@
     <keyword type="constant" name="GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP" link="gst-plugins-base-libs-gstaudiobasesrc.html#GST-AUDIO-BASE-SRC-SLAVE-RETIMESTAMP:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_BASE_SRC_SLAVE_SKEW" link="gst-plugins-base-libs-gstaudiobasesrc.html#GST-AUDIO-BASE-SRC-SLAVE-SKEW:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_BASE_SRC_SLAVE_NONE" link="gst-plugins-base-libs-gstaudiobasesrc.html#GST-AUDIO-BASE-SRC-SLAVE-NONE:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_NONE" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_MONO" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-MONO:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_INVALID" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_LFE1" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_LFE2" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS"/>
-    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_NONE" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_MONO" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-MONO:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_INVALID" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_LFE1" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_LFE2" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT" link="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_RING_BUFFER_STATE_STOPPED" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-STOPPED:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_RING_BUFFER_STATE_PAUSED" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-PAUSED:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_RING_BUFFER_STATE_STARTED" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-STARTED:CAPS"/>
+    <keyword type="constant" name="GST_AUDIO_RING_BUFFER_STATE_ERROR" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-ERROR:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-FORMAT-TYPE-RAW:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MU-LAW:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW" link="gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-FORMAT-TYPE-A-LAW:CAPS"/>
@@ -1540,6 +1632,7 @@
     <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_NACK" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-NACK:CAPS"/>
     <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_TMMBR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBR:CAPS"/>
     <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_TMMBN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBN:CAPS"/>
+    <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_RCTP_SR_REQ" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-RCTP-SR-REQ:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_PLI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-PLI:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_SLI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-SLI:CAPS"/>
     <keyword type="constant" name="GST_RTCP_PSFB_TYPE_RPSI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-RPSI:CAPS"/>
@@ -1637,6 +1730,8 @@
     <keyword type="constant" name="GST_RTSP_TIME_SECONDS" link="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-SECONDS:CAPS"/>
     <keyword type="constant" name="GST_RTSP_TIME_NOW" link="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS"/>
     <keyword type="constant" name="GST_RTSP_TIME_END" link="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-END:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_TIME_FRAMES" link="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-FRAMES:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_TIME_UTC" link="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-UTC:CAPS"/>
     <keyword type="constant" name="GST_RTSP_TRANS_UNKNOWN" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-TRANS-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_RTSP_TRANS_RTP" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-TRANS-RTP:CAPS"/>
     <keyword type="constant" name="GST_RTSP_TRANS_RDT" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-TRANS-RDT:CAPS"/>
@@ -1648,6 +1743,7 @@
     <keyword type="constant" name="GST_RTSP_LOWER_TRANS_UDP_MCAST" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-UDP-MCAST:CAPS"/>
     <keyword type="constant" name="GST_RTSP_LOWER_TRANS_TCP" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-TCP:CAPS"/>
     <keyword type="constant" name="GST_RTSP_LOWER_TRANS_HTTP" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-HTTP:CAPS"/>
+    <keyword type="constant" name="GST_RTSP_LOWER_TRANS_TLS" link="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-TLS:CAPS"/>
     <keyword type="constant" name="GST_SDP_OK" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"/>
     <keyword type="constant" name="GST_SDP_EINVAL" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-EINVAL:CAPS"/>
     <keyword type="constant" name="GST_TAG_IMAGE_TYPE_NONE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-TYPE-NONE:CAPS"/>
@@ -1750,6 +1846,12 @@
     <keyword type="constant" name="GST_VIDEO_FORMAT_I420_10LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I420-10LE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_I422_10BE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I422-10BE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_I422_10LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I422-10LE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_Y444_10BE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-Y444-10BE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_Y444_10LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-Y444-10LE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_GBR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-GBR:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_GBR_10BE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-GBR-10BE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_GBR_10LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-GBR-10LE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_NV16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-NV16:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_CHROMA_SITE_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_CHROMA_SITE_NONE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CHROMA-SITE-NONE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_CHROMA_SITE_H_COSITED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CHROMA-SITE-H-COSITED:CAPS"/>
@@ -1769,6 +1871,7 @@
     <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_UNPACK" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-UNPACK:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_PACK_FLAG_NONE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-PACK-FLAG-NONE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-PACK-FLAG-TRUNCATE-RANGE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_PACK_FLAG_INTERLACED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-PACK-FLAG-INTERLACED:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_COLOR_RANGE_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_COLOR_RANGE_0_255" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-0-255:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_COLOR_RANGE_16_235" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-16-235:CAPS"/>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
index 7f149c4..0ec5af1 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoDecoder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">
@@ -120,7 +120,7 @@
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Initially, GstVideoDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
     is activated, which allows the subclass to perform any global setup.
@@ -142,7 +142,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
       The base class gathers input data, and optionally allows subclass
       to parse this into subsequently manageable chunks, typically
@@ -163,17 +163,17 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
     The GstVideoDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
     parsing will be stopped.
   </p></li></ul>
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Additional Notes</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Seeking/Flushing</b></p>
-<ul class="itemizedlist" type="circle"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
   When the pipeline is seeked or otherwise flushed, the subclass is informed via a call
   to its <em class="parameter"><code>reset</code></em> callback, with the hard parameter set to true. This indicates the
   subclass should drop any internal data queues and timestamps and prepare for a fresh
@@ -182,7 +182,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>End Of Stream</b></p>
-<ul class="itemizedlist" type="circle"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
   At end-of-stream, the subclass <em class="parameter"><code>parse</code></em> function may be called some final times with the 
   at_eos parameter set to true, indicating that the element should not expect any more data
   to be arriving, and it should parse and remaining frames and call
@@ -228,7 +228,7 @@
 <p>
 The bare minimum that a functional subclass needs to implement is:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Provide pad templates</p></li>
 <li class="listitem"><p>
      Inform the base class of output caps via <em class="parameter"><code>gst_video_decoder_set_output_state</code></em>
@@ -261,8 +261,11 @@
 is logged. In either case, <em class="parameter"><code>ret</code></em> is set to the proper value to
 return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
@@ -332,8 +335,11 @@
 <p>
 Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
@@ -358,8 +364,11 @@
 <p>
 Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
@@ -375,8 +384,11 @@
 <p>
 Obtain a lock to protect the decoder function from concurrent access.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
 <td>video decoder instance</td>
@@ -391,8 +403,11 @@
 <p>
 Release the lock that protects the decoder function from concurrent access.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
 <td>video decoder instance</td>
@@ -407,8 +422,11 @@
 <p>
 Gives the segment of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base decoder instance</td>
@@ -423,8 +441,11 @@
 <p>
 Gives the segment of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base decoder instance</td>
@@ -488,8 +509,11 @@
 and likely as well.  If non-packetized input is supported or expected,
 <em class="parameter"><code>parse</code></em> needs to be overridden as well.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.open"></a>open</code></em> ()</span></p></td>
@@ -592,8 +616,11 @@
 <p>
 Removes next <em class="parameter"><code>n_bytes</code></em> of input data and adds it to currently parsed frame.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -620,8 +647,11 @@
 You should use <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-frame" title="gst_video_decoder_allocate_output_frame ()"><code class="function">gst_video_decoder_allocate_output_frame()</code></a> instead of this
 function, if possible at all.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -652,8 +682,11 @@
 The buffer allocated here is owned by the frame and you should only
 keep references to the frame, not the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -686,8 +719,11 @@
 <p>
 Unref the <em class="parameter"><code>allocator</code></em> after use it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -713,8 +749,11 @@
 <div class="refsect2">
 <a name="gst-video-decoder-get-buffer-pool"></a><h3>gst_video_decoder_get_buffer_pool ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferPool.html#GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> *     gst_video_decoder_get_buffer_pool   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -740,8 +779,11 @@
 case and posts a QoS message with the frame's details on the bus.
 In any case, the frame is considered finished and released.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -776,8 +818,11 @@
 considered read-only. This function will also change the metadata
 of the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -803,8 +848,11 @@
 <p>
 Negotiate with downstreame elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -827,8 +875,11 @@
 <p>
 Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -854,8 +905,11 @@
 <p>
 Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -882,8 +936,11 @@
 In particular, a negative result means decoding in time is no longer possible
 and should therefore occur as soon/skippy as possible.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -906,8 +963,11 @@
 <div class="refsect2">
 <a name="gst-video-decoder-get-max-errors"></a><h3>gst_video_decoder_get_max_errors ()</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_video_decoder_get_max_errors    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -928,8 +988,11 @@
 <p>
 Get the oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -952,8 +1015,11 @@
 Queries whether input data is considered packetized or not by the
 base class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -972,8 +1038,11 @@
 <a name="gst-video-decoder-get-qos-proportion"></a><h3>gst_video_decoder_get_qos_proportion ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             gst_video_decoder_get_qos_proportion
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -997,8 +1066,11 @@
 Gathers all data collected for currently parsed frame, gathers corresponding
 metadata and passes it along for further processing, i.e. <em class="parameter"><code>handle_frame</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -1023,8 +1095,11 @@
 Query the configured decoder latency. Results will be returned via
 <em class="parameter"><code>min_latency</code></em> and <em class="parameter"><code>max_latency</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -1057,8 +1132,11 @@
 latency is. Will also post a LATENCY message on the bus so the pipeline
 can reconfigure its global latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -1080,8 +1158,11 @@
 <div class="refsect2">
 <a name="gst-video-decoder-get-estimate-rate"></a><h3>gst_video_decoder_get_estimate_rate ()</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_video_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1102,8 +1183,11 @@
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> currently describing the output stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -1127,8 +1211,11 @@
 <p>
 Allows baseclass to perform byte to time estimated conversion.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1169,8 +1256,11 @@
 The new output state will only take effect (set on pads and buffers) starting
 from the next call to #<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()"><code class="function">gst_video_decoder_finish_frame()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -1213,8 +1303,11 @@
 warned about, but more than tolerated will lead to fatal error.  Default
 is set to GST_VIDEO_DECODER_MAX_ERRORS.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1237,8 +1330,11 @@
 Allows baseclass to consider input data as packetized or not. If the
 input is packetized, then the <em class="parameter"><code>parse</code></em> method will not be called.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
@@ -1269,8 +1365,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
index 0931f93..d00a736 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVideoEncoder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">
@@ -101,7 +101,7 @@
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Initially, GstVideoEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
     is activated, which allows subclass to perform any global setup.
@@ -121,7 +121,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
       Base class collects input data and metadata into a frame and hands
       this to subclass' <em class="parameter"><code>handle_frame</code></em>.
@@ -145,7 +145,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
     GstVideoEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
     parsing will be stopped.
   </p></li></ul>
@@ -162,7 +162,7 @@
 <p>
 Things that subclass need to take care of:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Provide pad templates</p></li>
 <li class="listitem"><p>
      Provide source pad caps before pushing the first buffer
@@ -217,8 +217,11 @@
 <p>
 Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
@@ -243,8 +246,11 @@
 <p>
 Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
@@ -260,8 +266,11 @@
 <p>
 Gives the segment of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base parse instance</td>
@@ -276,8 +285,11 @@
 <p>
 Gives the segment of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base parse instance</td>
@@ -292,8 +304,11 @@
 <p>
 Obtain a lock to protect the encoder function from concurrent access.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
 <td>video encoder instance</td>
@@ -308,8 +323,11 @@
 <p>
 Release the lock that protects the encoder function from concurrent access.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
 <td>video encoder instance</td>
@@ -375,8 +393,11 @@
 needed. At minimum <em class="parameter"><code>handle_frame</code></em> needs to be overridden, and <em class="parameter"><code>set_format</code></em>
 and <em class="parameter"><code>get_caps</code></em> are likely needed as well.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.open"></a>open</code></em> ()</span></p></td>
@@ -493,8 +514,11 @@
 Helper function that allocates a buffer to hold an encoded video frame
 for <em class="parameter"><code>encoder</code></em>'s current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -529,8 +553,11 @@
 The buffer allocated here is owned by the frame and you should only
 keep references to the frame, not the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -567,8 +594,11 @@
 <p>
 Unref the <em class="parameter"><code>allocator</code></em> after use it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -607,8 +637,11 @@
 considered read-only. This function will also change the metadata
 of the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -634,8 +667,11 @@
 <p>
 Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -658,8 +694,11 @@
 <p>
 Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -685,8 +724,11 @@
 <p>
 Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -708,8 +750,11 @@
 <p>
 Get the oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -732,8 +777,11 @@
 <p>
 Set the codec headers to be sent downstream whenever requested.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -758,8 +806,11 @@
 Query the configured encoding latency. Results will be returned via
 <em class="parameter"><code>min_latency</code></em> and <em class="parameter"><code>max_latency</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -790,8 +841,11 @@
 <p>
 Informs baseclass of encoding latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -849,8 +903,11 @@
 The new output state will only take effect (set on pads and buffers) starting
 from the next call to #<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()"><code class="function">gst_video_encoder_finish_frame()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -882,8 +939,11 @@
 <p>
 Get the current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
@@ -910,8 +970,11 @@
 restricted to resolution/format/... combinations supported by downstream
 elements (e.g. muxers).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -950,8 +1013,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-appsink.html b/docs/libs/html/gst-plugins-base-libs-appsink.html
index a2b6964..6c9c18e 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsink.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-app.html" title="App Library">
 <link rel="prev" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
@@ -124,8 +124,11 @@
 accept caps that match <em class="parameter"><code>caps</code></em>. If <em class="parameter"><code>caps</code></em> is non-fixed, you must check the caps
 on the buffers to get the actual used caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -146,8 +149,11 @@
 <p>
 Get the configured caps on <em class="parameter"><code>appsink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -173,8 +179,11 @@
 This function also returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the appsink is not in the PAUSED or
 PLAYING state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -199,8 +208,11 @@
 by default disabled because signal emission is expensive and unneeded when
 the application prefers to operate in pull mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -221,8 +233,11 @@
 <p>
 Check if appsink will emit the "new-preroll" and "new-sample" signals.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -248,8 +263,11 @@
 amount of buffers are queued in appsink, any more buffers will block upstream
 elements until a sample is pulled from <em class="parameter"><code>appsink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -270,8 +288,11 @@
 <p>
 Get the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -294,8 +315,11 @@
 Instruct <em class="parameter"><code>appsink</code></em> to drop old buffers when the maximum amount of queued
 buffers is reached.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -317,8 +341,11 @@
 Check if <em class="parameter"><code>appsink</code></em> will drop old buffers when the maximum amount of queued
 buffers is reached.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -360,8 +387,11 @@
 This function blocks until a preroll sample or EOS is received or the appsink
 element is set to the READY/NULL state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -394,8 +424,11 @@
 If an EOS event was received before any buffers, this function returns
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
@@ -422,8 +455,11 @@
 A set of callbacks that can be installed on the appsink with
 <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()"><code class="function">gst_app_sink_set_callbacks()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstAppSinkCallbacks.eos"></a>eos</code></em> ()</span></p></td>
@@ -465,8 +501,11 @@
 If callbacks are installed, no signals will be emitted for performance
 reasons.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-appsrc.html b/docs/libs/html/gst-plugins-base-libs-appsrc.html
index 7277d63..16ef13b 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-app.html" title="App Library">
 <link rel="prev" href="gstreamer-app.html" title="App Library">
@@ -166,8 +166,11 @@
 <p>
 The stream type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-APP-STREAM-TYPE-STREAM:CAPS"></a><span class="term"><code class="literal">GST_APP_STREAM_TYPE_STREAM</code></span></p></td>
@@ -201,8 +204,11 @@
 only produce caps that match <em class="parameter"><code>caps</code></em>. <em class="parameter"><code>caps</code></em> must be fixed and the caps on the
 buffers must match the caps or left NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -223,8 +229,11 @@
 <p>
 Get the configured caps on <em class="parameter"><code>appsrc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -247,8 +256,11 @@
 <p>
 Retrieve the min and max latencies in <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> respectively.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -276,8 +288,11 @@
 Configure the <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> latency in <em class="parameter"><code>src</code></em>. If <em class="parameter"><code>min</code></em> is set to -1, the
 default latency calculations for pseudo-live sources will be used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -304,8 +319,11 @@
 Set the size of the stream in bytes. A value of -1 means that the size is
 not known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -327,8 +345,11 @@
 Get the size of the stream in bytes. A value of -1 means that the size is
 not known.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -354,8 +375,11 @@
 <p>
 A stream_type stream
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -377,8 +401,11 @@
 Get the stream type. Control the stream type of <em class="parameter"><code>appsrc</code></em>
 with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()"><code class="function">gst_app_src_set_stream_type()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -402,8 +429,11 @@
 After the maximum amount of bytes are queued, <em class="parameter"><code>appsrc</code></em> will emit the
 "enough-data" signal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -424,8 +454,11 @@
 <p>
 Get the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -446,8 +479,11 @@
 <p>
 Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -473,8 +509,11 @@
 by default disabled because signal emission is expensive and unneeded when
 the application prefers to operate in pull mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -501,8 +540,11 @@
 A set of callbacks that can be installed on the appsrc with
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()"><code class="function">gst_app_src_set_callbacks()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstAppSrcCallbacks.need-data"></a>need_data</code></em> ()</span></p></td>
@@ -542,8 +584,11 @@
 If callbacks are installed, no signals will be emitted for performance
 reasons.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -578,8 +623,11 @@
 When the block property is TRUE, this function can block until free
 space becomes available in the queue.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
@@ -609,8 +657,11 @@
 Indicates to the appsrc element that the last buffer queued in the
 element is the last buffer of the stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-dmabuf.html b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
new file mode 100644
index 0000000..13b9fe3
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>dmabuf</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-allocators.html" title="Allocators Library">
+<link rel="prev" href="gstreamer-allocators.html" title="Allocators Library">
+<link rel="next" href="gstreamer-app.html" title="App Library">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gstreamer-allocators.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-allocators.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-dmabuf.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-dmabuf.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-dmabuf"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-dmabuf.top_of_page"></a>dmabuf</span></h2>
+<p>dmabuf — Memory wrapper for Linux dmabuf memory</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-dmabuf.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/allocators/gstdmabuf.h&gt;
+
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-alloc" title="gst_dmabuf_allocator_alloc ()">gst_dmabuf_allocator_alloc</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-obtain" title="gst_dmabuf_allocator_obtain ()">gst_dmabuf_allocator_obtain</a>         (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd" title="gst_dmabuf_memory_get_fd ()">gst_dmabuf_memory_get_fd</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory" title="gst_is_dmabuf_memory ()">gst_is_dmabuf_memory</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-dmabuf.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-dmabuf.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-dmabuf-allocator-alloc"></a><h3>gst_dmabuf_allocator_alloc ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_dmabuf_allocator_alloc          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
+<p>
+Return a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><code class="literal">GstMemory</code></a> that wraps a dmabuf file descriptor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>allocator to be used for this memory. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
+<td>dmabuf file descriptor</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>memory size</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a GstMemory based on <em class="parameter"><code>allocator</code></em>.
+When the buffer will be released dmabuf allocator will close the <em class="parameter"><code>fd</code></em>.
+The memory is only mmapped on <code class="function">gst_buffer_mmap()</code> request. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-dmabuf-allocator-obtain"></a><h3>gst_dmabuf_allocator_obtain ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstAllocator.html"><span class="returnvalue">GstAllocator</span></a> *      gst_dmabuf_allocator_obtain         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Return a dmabuf allocator.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a dmabuf allocator, or NULL if the allocator
+isn't available. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref"><code class="function">gst_object_unref()</code></a> to release the allocator after
+usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-dmabuf-memory-get-fd"></a><h3>gst_dmabuf_memory_get_fd ()</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_dmabuf_memory_get_fd            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>
+Return the file descriptor associated with <em class="parameter"><code>mem</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>the memory to get the file descriptor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the file descriptor associated with the memory, or -1</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-is-dmabuf-memory"></a><h3>gst_is_dmabuf_memory ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_is_dmabuf_memory                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>mem</code></em> is dmabuf memory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>the memory to be check</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>mem</code></em> is dmabuf memory, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-dmabuf.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMemory"><span class="type">GstMemory</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
index 5d56364..c623021 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encoding-profile</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
@@ -55,9 +55,13 @@
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</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="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</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="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset-name" title="gst_encoding_profile_get_preset_name ()">gst_encoding_profile_get_preset_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</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="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</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="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-file-extension" title="gst_encoding_profile_get_file_extension ()">gst_encoding_profile_get_file_extension</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description" title="gst_encoding_profile_set_description ()">gst_encoding_profile_set_description</a>
@@ -67,6 +71,9 @@
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset" title="gst_encoding_profile_set_preset ()">gst_encoding_profile_set_preset</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset-name" title="gst_encoding_profile_set_preset_name ()">gst_encoding_profile_set_preset_name</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset_name</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()">gst_encoding_profile_set_restriction</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>);
@@ -182,7 +189,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp26231488"></a><p>
+<a name="idp27908240"></a><p>
 Functions to create and handle encoding profiles.
 </p>
 <p>
@@ -212,7 +219,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp26239056"></a><h3>Example: Creating a profile</h3>
+<a name="idp27915808"></a><h3>Example: Creating a profile</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -283,7 +290,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp26242048"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="idp27918800"></a><h3>Example: Listing categories, targets and profiles</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -331,7 +338,7 @@
   gchar <span class="gtkdoc opt">*</span>category <span class="gtkdoc opt">= (</span>gchar <span class="gtkdoc opt">*)</span> tmpc<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">;</span>
 
   <span class="gtkdoc opt">...</span> <span class="keyword">and</span> we can list all targets within that category <span class="gtkdoc opt">...</span>
-  
+
   targets <span class="gtkdoc opt">=</span> <span class="function">gst_encoding_target_list_all</span> <span class="gtkdoc opt">(</span>category<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc opt">...</span> <span class="keyword">and</span> show a list to our users <span class="gtkdoc opt">...</span>
@@ -373,8 +380,11 @@
 <p>
 Decreases the reference count of the <em class="parameter"><code>profile</code></em>, possibly freeing the <em class="parameter"><code>profile</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>
@@ -390,8 +400,11 @@
 <p>
 Increases the reference count of the <em class="parameter"><code>profile</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>
@@ -408,8 +421,11 @@
 <p>
 Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> with the specified name and category.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>targetname</code></em> :</span></p></td>
@@ -444,8 +460,11 @@
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. Streams other than audio or video (eg,
 subtitles), are currently ignored.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -464,8 +483,11 @@
 <div class="refsect2">
 <a name="gst-encoding-profile-get-name"></a><h3>gst_encoding_profile_get_name ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_encoding_profile_get_name       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -484,8 +506,11 @@
 <a name="gst-encoding-profile-get-description"></a><h3>gst_encoding_profile_get_description ()</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_encoding_profile_get_description
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -503,8 +528,11 @@
 <div class="refsect2">
 <a name="gst-encoding-profile-get-format"></a><h3>gst_encoding_profile_get_format ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_encoding_profile_get_format     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -524,8 +552,11 @@
 <div class="refsect2">
 <a name="gst-encoding-profile-get-preset"></a><h3>gst_encoding_profile_get_preset ()</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_encoding_profile_get_preset     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -534,7 +565,31 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a> to be used in the profile.</td>
+<td>the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a> to be used in the profile.
+This is the name that has been set when saving the preset.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-encoding-profile-get-preset-name"></a><h3>gst_encoding_profile_get_preset_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_encoding_profile_get_preset_name
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a> factory to be used in the profile.</td>
 </tr>
 </tbody>
 </table></div>
@@ -543,8 +598,11 @@
 <div class="refsect2">
 <a name="gst-encoding-profile-get-presence"></a><h3>gst_encoding_profile_get_presence ()</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_encoding_profile_get_presence   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -564,8 +622,11 @@
 <a name="gst-encoding-profile-get-restriction"></a><h3>gst_encoding_profile_get_restriction ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_encoding_profile_get_restriction
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -587,6 +648,29 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-encoding-profile-get-file-extension"></a><h3>gst_encoding_profile_get_file_extension ()</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_encoding_profile_get_file_extension
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a suitable file extension for <em class="parameter"><code>profile</code></em>, or NULL.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-encoding-profile-set-name"></a><h3>gst_encoding_profile_set_name ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_encoding_profile_set_name       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
@@ -594,8 +678,11 @@
 Set <em class="parameter"><code>name</code></em> as the given name for the <em class="parameter"><code>profile</code></em>. A copy of <em class="parameter"><code>name</code></em> will be made
 internally.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -619,8 +706,11 @@
 Set <em class="parameter"><code>description</code></em> as the given description for the <em class="parameter"><code>profile</code></em>. A copy of
 <em class="parameter"><code>description</code></em> will be made internally.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -642,8 +732,11 @@
 <p>
 Sets the media format used in the profile.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -663,10 +756,15 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_encoding_profile_set_preset     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>);</pre>
 <p>
-Sets the preset to use for the profile.
+Sets the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> that implements the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a> interface
+to use for the profile.
+This is the name that has been set when saving the preset.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -682,6 +780,33 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-encoding-profile-set-preset-name"></a><h3>gst_encoding_profile_set_preset_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_encoding_profile_set_preset_name
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset_name</code></em>);</pre>
+<p>
+Sets the name of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html"><span class="type">GstPreset</span></a>'s factory to be used in the profile.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>preset_name</code></em> :</span></p></td>
+<td>The name of the preset to use in this <em class="parameter"><code>profile</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-encoding-profile-set-restriction"></a><h3>gst_encoding_profile_set_restriction ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_encoding_profile_set_restriction
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
@@ -691,8 +816,11 @@
 that will be used in the profile. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()"><code class="function">gst_encoding_profile_set_restriction()</code></a>
 for more about restrictions. Does not apply to <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -716,8 +844,11 @@
 Set the number of time the profile is used in its parent
 container profile. If 0, it is not a mandatory stream
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -739,8 +870,11 @@
 <p>
 Checks whether the two <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> are equal
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
@@ -767,8 +901,11 @@
 <p>
 Computes the full output caps that this <em class="parameter"><code>profile</code></em> will be able to consume.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -788,8 +925,11 @@
 <div class="refsect2">
 <a name="gst-encoding-profile-get-type-nick"></a><h3>gst_encoding_profile_get_type_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_encoding_profile_get_type_nick  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -822,8 +962,11 @@
 <p>
 Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -865,8 +1008,11 @@
 No copy of <em class="parameter"><code>profile</code></em> will be made, if you wish to use it elsewhere after this
 method you should increment its reference count.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
@@ -895,8 +1041,11 @@
 Checks if <em class="parameter"><code>container</code></em> contains a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> identical to
 <em class="parameter"><code>profile</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
@@ -922,8 +1071,11 @@
 <a name="gst-encoding-container-profile-get-profiles"></a><h3>gst_encoding_container_profile_get_profiles ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gst_encoding_container_profile_get_profiles
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *profile</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
@@ -961,8 +1113,11 @@
 All provided allocatable arguments will be internally copied, so can be
 safely freed/unreferenced after calling this method.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1023,8 +1178,11 @@
 If you wish to use/force a constant framerate please refer to the
 <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate" title="gst_encoding_video_profile_set_variableframerate ()"><code class="function">gst_encoding_video_profile_set_variableframerate()</code></a> documentation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1038,8 +1196,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>restriction</code></em> :</span></p></td>
-<td>(allow-none) the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> used to restrict the input to the encoder, can be
-NULL. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a> for more details.</td>
+<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> used to restrict the input to the encoder, can be
+NULL. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a> for more details. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>presence</code></em> :</span></p></td>
@@ -1060,8 +1219,11 @@
 <p>
 Get the pass number if this is part of a multi-pass profile.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>prof</code></em> :</span></p></td>
@@ -1081,8 +1243,11 @@
 <a name="gst-encoding-video-profile-get-variableframerate"></a><h3>gst_encoding_video_profile_get_variableframerate ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_encoding_video_profile_get_variableframerate
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>prof</code></em> :</span></p></td>
@@ -1106,8 +1271,11 @@
 this value set to 1. If this video profile isn't part of a multi-pass profile,
 you may set it to 0 (the default value).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>prof</code></em> :</span></p></td>
@@ -1133,8 +1301,11 @@
 be normalized by dropping/duplicating frames in order to produce a
 constance framerate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>prof</code></em> :</span></p></td>
@@ -1213,8 +1384,11 @@
 <p>
 Decreases the reference count of the <em class="parameter"><code>target</code></em>, possibly freeing it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>
@@ -1229,8 +1403,11 @@
 <p>
 Increases the reference count of the <em class="parameter"><code>target</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>
@@ -1259,8 +1436,11 @@
 <span class="emphasis"><em>can</em></span> be a application or user specific category if
 needed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -1297,8 +1477,11 @@
 <div class="refsect2">
 <a name="gst-encoding-target-get-name"></a><h3>gst_encoding_target_get_name ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_encoding_target_get_name        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1317,8 +1500,11 @@
 <div class="refsect2">
 <a name="gst-encoding-target-get-category"></a><h3>gst_encoding_target_get_category ()</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_encoding_target_get_category    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1338,8 +1524,11 @@
 <div class="refsect2">
 <a name="gst-encoding-target-get-description"></a><h3>gst_encoding_target_get_description ()</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_encoding_target_get_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1358,8 +1547,11 @@
 <div class="refsect2">
 <a name="gst-encoding-target-get-profiles"></a><h3>gst_encoding_target_get_profiles ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gst_encoding_target_get_profiles    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1380,8 +1572,11 @@
 <a name="gst-encoding-target-get-profile"></a><h3>gst_encoding_target_get_profile ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gst_encoding_target_get_profile    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1414,8 +1609,11 @@
 the profile after calling this method, you should increase its reference
 count.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1442,8 +1640,11 @@
 <p>
 Saves the <em class="parameter"><code>target</code></em> to a default user-local directory.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1471,8 +1672,11 @@
 <p>
 Saves the <em class="parameter"><code>target</code></em> to the provided file location.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
@@ -1509,8 +1713,11 @@
 If the category name is specified only targets from that category will be
 searched for.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -1542,8 +1749,11 @@
 <p>
 Opens the provided file and returns the contained <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filepath</code></em> :</span></p></td>
@@ -1570,8 +1780,11 @@
 List all available <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> for the specified category, or all categories
 if <em class="parameter"><code>categoryname</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>categoryname</code></em> :</span></p></td>
@@ -1595,8 +1808,11 @@
 <p>
 Lists all <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> categories present on disk.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>A list
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudio.html b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
index fc8bbc6..7bf1e39 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudio.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gstreamer-audio.html" title="Audio Library">
-<link rel="next" href="gst-plugins-base-libs-gstaudiocdsrc.html" title="gstaudiocdsrc">
+<link rel="next" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiocdsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiometa.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gstaudio.synopsis" class="shortcut">Top</a>
@@ -74,7 +74,9 @@
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</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> rate</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> channels</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal" title="gst_audio_info_is_equal ()">gst_audio_info_is_equal</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *other</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="returnvalue">GstAudioFormat</span></a>      <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-build-integer" title="gst_audio_format_build_integer ()">gst_audio_format_build_integer</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sign</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> endianness</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> width</code></em>,
@@ -119,7 +121,15 @@
                                                          rate)
 #define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS" title="GST_CLOCK_TIME_TO_FRAMES()">GST_CLOCK_TIME_TO_FRAMES</a>            (clocktime,
                                                          rate)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-NE:CAPS" title="GST_AUDIO_NE()">GST_AUDIO_NE</a>                        (s)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-OE:CAPS" title="GST_AUDIO_OE()">GST_AUDIO_OE</a>                        (s)
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-RATE-RANGE:CAPS" title="GST_AUDIO_RATE_RANGE">GST_AUDIO_RATE_RANGE</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CHANNELS-RANGE:CAPS" title="GST_AUDIO_CHANNELS_RANGE">GST_AUDIO_CHANNELS_RANGE</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMATS-ALL:CAPS" title="GST_AUDIO_FORMATS_ALL">GST_AUDIO_FORMATS_ALL</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CAPS-MAKE:CAPS" title="GST_AUDIO_CAPS_MAKE()">GST_AUDIO_CAPS_MAKE</a>                 (format)
 #define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-CHANNELS:CAPS" title="GST_AUDIO_DEF_CHANNELS">GST_AUDIO_DEF_CHANNELS</a>
+#define             <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-FORMAT:CAPS" title="GST_AUDIO_DEF_FORMAT">GST_AUDIO_DEF_FORMAT</a>
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" title="gst_audio_buffer_clip ()">gst_audio_buffer_clip</a>               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> *segment</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> rate</code></em>,
@@ -144,8 +154,11 @@
 <p>
 Extra audio flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FLAG_NONE</code></span></p></td>
@@ -225,8 +238,11 @@
 <p>
 Enum value describing the most common audio formats.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-FORMAT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_UNKNOWN</code></span></p></td>
@@ -475,8 +491,11 @@
 <p>
 The different audio flags that a format info can have.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_INTEGER</code></span></p></td>
@@ -528,8 +547,11 @@
 <p>
 Information for an audio format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.format"></a>format</code></em>;</span></p></td>
@@ -600,8 +622,11 @@
 <p>
 Use the provided macros to access the info in this structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *<em class="structfield"><code><a name="GstAudioInfo.finfo"></a>finfo</code></em>;</span></p></td>
@@ -630,7 +655,7 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> <em class="structfield"><code><a name="GstAudioInfo.position"></a>position</code></em>[64];</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> <em class="structfield"><code><a name="GstAudioInfo.position"></a>position</code></em>[64];</span></p></td>
 <td>the positions for each channel</td>
 </tr>
 </tbody>
@@ -647,8 +672,11 @@
 <p>
 Layout of the audio samples for the different channels.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-LAYOUT-INTERLEAVED:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_LAYOUT_INTERLEAVED</code></span></p></td>
@@ -673,8 +701,11 @@
 <p>
 The different flags that can be used when packing and unpacking.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><a name="GST-AUDIO-PACK-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_PACK_FLAG_NONE</code></span></p></td>
 <td>No flag
@@ -695,8 +726,11 @@
 The samples from source have each channel interleaved
 and will be packed into <em class="parameter"><code>data</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -735,8 +769,11 @@
 interleaved. <em class="parameter"><code>dest</code></em> should at least be big enough to hold <em class="parameter"><code>length</code></em> *
 channels * size(unpack_format) bytes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -767,8 +804,11 @@
 <p>
 Initialize <em class="parameter"><code>info</code></em> with default values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
@@ -784,8 +824,11 @@
 <p>
 Parse <em class="parameter"><code>caps</code></em> and update <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -811,8 +854,11 @@
 <p>
 Convert the values of <em class="parameter"><code>info</code></em> into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -842,8 +888,11 @@
 raw audio, GST_FORMAT_DEFAULT corresponds to audio frames.  This
 function can be used to handle pad queries of the type GST_QUERY_CONVERT.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -884,8 +933,11 @@
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -906,8 +958,11 @@
 <p>
 Copy a GstAudioInfo structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -929,8 +984,11 @@
 Free a GstAudioInfo structure previously allocated with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-new" title="gst_audio_info_new ()"><code class="function">gst_audio_info_new()</code></a>
 or <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()"><code class="function">gst_audio_info_copy()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
@@ -946,8 +1004,11 @@
 Allocate a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> that is also initialized with
 <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()"><code class="function">gst_audio_info_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>. free with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()"><code class="function">gst_audio_info_free()</code></a>.</td>
@@ -961,12 +1022,15 @@
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</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> rate</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> channels</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
 <p>
 Set the default info for the audio info of <em class="parameter"><code>format</code></em> and <em class="parameter"><code>rate</code></em> and <em class="parameter"><code>channels</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -994,6 +1058,39 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-audio-info-is-equal"></a><h3>gst_audio_info_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_audio_info_is_equal             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *other</code></em>);</pre>
+<p>
+Compares two <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> and returns whether they are equal or not
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>info</code></em> and <em class="parameter"><code>other</code></em> are equal, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-audio-format-build-integer"></a><h3>gst_audio_format_build_integer ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="returnvalue">GstAudioFormat</span></a>      gst_audio_format_build_integer      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sign</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> endianness</code></em>,
@@ -1002,8 +1099,11 @@
 <p>
 Construct a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> with given parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sign</code></em> :</span></p></td>
@@ -1039,8 +1139,11 @@
 <p>
 Fill <em class="parameter"><code>length</code></em> bytes in <em class="parameter"><code>dest</code></em> with silence samples for <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1067,8 +1170,11 @@
 <p>
 Convert the <em class="parameter"><code>format</code></em> string to its <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1274,8 +1380,11 @@
 <p>
 Calculate clocktime from sample <em class="parameter"><code>frames</code></em> and <em class="parameter"><code>rate</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frames</code></em> :</span></p></td>
@@ -1295,8 +1404,11 @@
 <p>
 Calculate frames from <em class="parameter"><code>clocktime</code></em> and sample <em class="parameter"><code>rate</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clocktime</code></em> :</span></p></td>
@@ -1311,6 +1423,89 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-AUDIO-NE:CAPS"></a><h3>GST_AUDIO_NE()</h3>
+<pre class="programlisting"># define GST_AUDIO_NE(s) G_STRINGIFY(s)"LE"
+</pre>
+<p>
+Turns audio format string <em class="parameter"><code>s</code></em> into the format string for native endianness.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
+<td>format string without endianness marker</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-OE:CAPS"></a><h3>GST_AUDIO_OE()</h3>
+<pre class="programlisting"># define GST_AUDIO_OE(s) G_STRINGIFY(s)"BE"
+</pre>
+<p>
+Turns audio format string <em class="parameter"><code>s</code></em> into the format string for other endianness.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
+<td>format string without endianness marker</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-RATE-RANGE:CAPS"></a><h3>GST_AUDIO_RATE_RANGE</h3>
+<pre class="programlisting">#define GST_AUDIO_RATE_RANGE "(int) [ 1, max ]"
+</pre>
+<p>
+Maximum range of allowed sample rates, for use in template caps strings.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-CHANNELS-RANGE:CAPS"></a><h3>GST_AUDIO_CHANNELS_RANGE</h3>
+<pre class="programlisting">#define GST_AUDIO_CHANNELS_RANGE "(int) [ 1, max ]"
+</pre>
+<p>
+Maximum range of allowed channels, for use in template caps strings.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMATS-ALL:CAPS"></a><h3>GST_AUDIO_FORMATS_ALL</h3>
+<pre class="programlisting">#define             GST_AUDIO_FORMATS_ALL</pre>
+<p>
+List of all audio formats, for use in template caps strings.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-CAPS-MAKE:CAPS"></a><h3>GST_AUDIO_CAPS_MAKE()</h3>
+<pre class="programlisting">#define             GST_AUDIO_CAPS_MAKE(format)</pre>
+<p>
+Generic caps string for audio, for use in pad templates.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>string format that describes the sample layout, as string
+(e.g. "S16LE", "S8", etc.)</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-AUDIO-DEF-RATE:CAPS"></a><h3>GST_AUDIO_DEF_RATE</h3>
 <pre class="programlisting">#define GST_AUDIO_DEF_RATE 44100
 </pre>
@@ -1320,6 +1515,24 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-AUDIO-DEF-CHANNELS:CAPS"></a><h3>GST_AUDIO_DEF_CHANNELS</h3>
+<pre class="programlisting">#define GST_AUDIO_DEF_CHANNELS 2
+</pre>
+<p>
+Standard number of channels used in consumer audio.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DEF-FORMAT:CAPS"></a><h3>GST_AUDIO_DEF_FORMAT</h3>
+<pre class="programlisting">#define GST_AUDIO_DEF_FORMAT "S16LE"
+</pre>
+<p>
+Standard format used in consumer audio.
+</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-audio-buffer-clip"></a><h3>gst_audio_buffer_clip ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_audio_buffer_clip               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
@@ -1332,8 +1545,11 @@
 After calling this function the caller does not own a reference to
 <em class="parameter"><code>buffer</code></em> anymore.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
index 2960e71..82349a0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiobasesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
@@ -141,8 +141,11 @@
 <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> class. Override the vmethod to implement
 functionality.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html#GstBaseSinkClass"><span class="type">GstBaseSinkClass</span></a> <em class="structfield"><code><a name="GstAudioBaseSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -175,8 +178,11 @@
 Different possible clock slaving algorithms used when the internal audio
 clock is not selected as the pipeline master clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-BASE-SINK-SLAVE-RESAMPLE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE</code></span></p></td>
@@ -205,8 +211,11 @@
 <p>
 Get the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> of <em class="parameter"><code>obj</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>
@@ -222,8 +231,11 @@
 <p>
 Get the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>
@@ -241,8 +253,11 @@
 ::create_ringbuffer vmethod and will set <em class="parameter"><code>sink</code></em> as the parent of the returned
 buffer (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-set-parent"><code class="function">gst_object_set_parent()</code></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -267,8 +282,11 @@
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return a clock that reflects the datarate
 of <em class="parameter"><code>sink</code></em>. If <em class="parameter"><code>provide</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -291,8 +309,11 @@
 Queries whether <em class="parameter"><code>sink</code></em> will provide a clock or not. See also
 gst_audio_base_sink_set_provide_clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -316,8 +337,11 @@
 <p>
 Controls how clock slaving will be performed in <em class="parameter"><code>sink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -339,8 +363,11 @@
 <p>
 Get the current slave method used by <em class="parameter"><code>sink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -363,8 +390,11 @@
 <p>
 Controls the sink's drift tolerance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -386,8 +416,11 @@
 <p>
 Get the current drift tolerance, in microseconds, used by <em class="parameter"><code>sink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -410,8 +443,11 @@
 <p>
 Controls the sink's alignment threshold.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -433,8 +469,11 @@
 <p>
 Get the current alignment threshold, in nanoseconds, used by <em class="parameter"><code>sink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -457,8 +496,11 @@
 <p>
 Controls how long the sink will wait before creating a discontinuity.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
@@ -480,8 +522,11 @@
 <p>
 Get the current discont wait, in nanoseconds, used by <em class="parameter"><code>sink</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
index 0820aba..059e27b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiobasesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiobasesink.html" title="gstaudiobasesink">
-<link rel="next" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">
+<link rel="next" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,7 +18,7 @@
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstmultichannel.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiochannels.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gst-plugins-base-libs-gstaudiobasesrc.synopsis" class="shortcut">Top</a>
@@ -120,8 +120,11 @@
 <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> class. Override the vmethod to implement
 functionality.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><span class="type">GstPushSrcClass</span> <em class="structfield"><code><a name="GstAudioBaseSrcClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -148,8 +151,11 @@
 Different possible clock slaving algorithms when the internal audio clock was
 not selected as the pipeline clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-BASE-SRC-SLAVE-RESAMPLE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE</code></span></p></td>
@@ -184,8 +190,11 @@
 <p>
 Get the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> of <em class="parameter"><code>obj</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a>
@@ -201,8 +210,11 @@
 <p>
 Get the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a>
@@ -220,8 +232,11 @@
 ::create_ringbuffer vmethod and will set <em class="parameter"><code>src</code></em> as the parent of the returned
 buffer (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-set-parent"><code class="function">gst_object_set_parent()</code></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -246,8 +261,11 @@
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return a clock that reflects the datarate
 of <em class="parameter"><code>src</code></em>. If <em class="parameter"><code>provide</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -270,8 +288,11 @@
 Queries whether <em class="parameter"><code>src</code></em> will provide a clock or not. See also
 gst_audio_base_src_set_provide_clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -294,8 +315,11 @@
 <p>
 Get the current slave method used by <em class="parameter"><code>src</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
@@ -317,8 +341,11 @@
 <p>
 Controls how clock slaving will be performed in <em class="parameter"><code>src</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
index 591b239..4a7d4e9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiocdsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
+<link rel="prev" href="gst-plugins-base-libs-gstaudiometa.html" title="gstaudiometa">
 <link rel="next" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstaudio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiometa.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
@@ -92,7 +92,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5520528"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
+<a name="idp6759040"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
 <p>
 GstAudioCdSrc registers two <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>s of its own, namely
 the "track" format and the "sector" format. Applications will usually
@@ -118,7 +118,7 @@
 setting a new cdda://n+1 URI on playbin (as setting a new URI on playbin
 involves closing and re-opening the CD device, which is much much slower).
 </p>
-<div class="refsect2"><a name="idp9622128"></a></div>
+<div class="refsect2"><a name="idp9687648"></a></div>
 <p>
 CDDA sources will automatically emit a number of tags, details about which
 can be found in the libgsttag documentation. Those tags are:
@@ -131,7 +131,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp7748336"></a><h3>Tracks and Table of Contents (TOC)</h3>
+<a name="idp9692768"></a><h3>Tracks and Table of Contents (TOC)</h3>
 <p>
 Applications will be informed of the available tracks via a TOC message
 on the pipeline's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a>. The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstToc"><span class="type">GstToc</span></a> will contain a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> for
@@ -176,8 +176,11 @@
 <p>
 Audio CD source base class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><span class="type">GstPushSrcClass</span> <em class="structfield"><code><a name="GstAudioCdSrcClass.pushsrc-class"></a>pushsrc_class</code></em>;</span></p></td>
@@ -228,8 +231,11 @@
 Applications will be informed of the available tracks via a TOC message
 on the pipeline's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> instead.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.is-audio"></a>is_audio</code></em>;</span></p></td>
@@ -266,8 +272,11 @@
 Mode in which the CD audio source operates. Influences timestamping,
 EOS handling and seeking.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-CD-SRC-MODE-NORMAL:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CD_SRC_MODE_NORMAL</code></span></p></td>
@@ -293,8 +302,11 @@
 should allocate <em class="parameter"><code>track</code></em> on the stack, the base source will do a shallow
 copy of the structure (and take ownership of the taglist if there is one).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
new file mode 100644
index 0000000..85b980f
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
@@ -0,0 +1,652 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudiochannels</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstaudiobasesrc.html" title="gstaudiobasesrc">
+<link rel="next" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiobasesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioringbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudiochannels.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudiochannels.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudiochannels"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiochannels.top_of_page"></a>gstaudiochannels</span></h2>
+<p>gstaudiochannels</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudiochannels.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/audio/audio-channels.h&gt;
+
+enum                <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition">GstAudioChannelPosition</a>;
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-MASK:CAPS" title="GST_AUDIO_CHANNEL_POSITION_MASK()">GST_AUDIO_CHANNEL_POSITION_MASK</a>     (pos)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-mask" title="gst_audio_channel_positions_to_mask ()">gst_audio_channel_positions_to_mask</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *channel_mask</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-from-mask" title="gst_audio_channel_positions_from_mask ()">gst_audio_channel_positions_from_mask</a>
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> channel_mask</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order" title="gst_audio_channel_positions_to_valid_order ()">gst_audio_channel_positions_to_valid_order</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-check-valid-channel-positions" title="gst_audio_check_valid_channel_positions ()">gst_audio_check_valid_channel_positions</a>
+                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-buffer-reorder-channels" title="gst_audio_buffer_reorder_channels ()">gst_audio_buffer_reorder_channels</a>   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</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> channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-reorder-channels" title="gst_audio_reorder_channels ()">gst_audio_reorder_channels</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</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> channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-get-channel-reorder-map" title="gst_audio_get_channel_reorder_map ()">gst_audio_get_channel_reorder_map</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</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> *reorder_map</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiochannels.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiochannels.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstAudioChannelPosition"></a><h3>enum GstAudioChannelPosition</h3>
+<pre class="programlisting">typedef enum {
+  /* These get negative indices to allow to use
+   * the enum values of the normal cases for the
+   * bit-mask position */
+  GST_AUDIO_CHANNEL_POSITION_NONE = -3,
+  GST_AUDIO_CHANNEL_POSITION_MONO = -2,
+  GST_AUDIO_CHANNEL_POSITION_INVALID = -1,
+
+  /* Normal cases */
+  GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT = 0,
+  GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_LFE1,
+  GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_LFE2,
+  GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_TOP_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER,
+  GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT,
+  GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT,
+  GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT
+} GstAudioChannelPosition;
+</pre>
+<p>
+Audio channel positions.
+</p>
+<p>
+These are the channels defined in SMPTE 2036-2-2008
+Table 1 for 22.2 audio systems with the Surround and Wide channels from
+DTS Coherent Acoustics (v.1.3.1) and 10.2 and 7.1 layouts. In the caps the
+actual channel layout is expressed with a channel count and a channel mask,
+which describes the existing channels. The positions in the bit mask correspond
+to the enum values.
+For negotiation it is allowed to have more bits set in the channel mask than
+the number of channels to specify the allowed channel positions but this is
+not allowed in negotiated caps. It is not allowed in any situation other
+than the one mentioned below to have less bits set in the channel mask than
+the number of channels.
+</p>
+<p>
+<em class="parameter"><code>GST_AUDIO_CHANNEL_POSITION_MONO</code></em> can only be used with a single mono channel that
+has no direction information and would be mixed into all directional channels.
+This is expressed in caps by having a single channel and no channel mask.
+</p>
+<p>
+<em class="parameter"><code>GST_AUDIO_CHANNEL_POSITION_NONE</code></em> can only be used if all channels have this position.
+This is expressed in caps by having a channel mask with no bits set.
+</p>
+<p>
+As another special case it is allowed to have two channels without a channel mask.
+This implicitely means that this is a stereo stream with a front left and front right
+channel.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NONE</code></span></p></td>
+<td>used for position-less channels, e.g.
+    from a sound card that records 1024 channels; mutually exclusive with
+    any other channel position
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-MONO:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_MONO</code></span></p></td>
+<td>Mono without direction;
+    can only be used with 1 channel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_INVALID</code></span></p></td>
+<td>invalid position
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT</code></span></p></td>
+<td>Front left
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT</code></span></p></td>
+<td>Front right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER</code></span></p></td>
+<td>Front center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_LFE1</code></span></p></td>
+<td>Low-frequency effects 1 (subwoofer)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_LEFT</code></span></p></td>
+<td>Rear left
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT</code></span></p></td>
+<td>Rear right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER</code></span></p></td>
+<td>Front left of center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER</code></span></p></td>
+<td>Front right of center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_CENTER</code></span></p></td>
+<td>Rear center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_LFE2</code></span></p></td>
+<td>Low-frequency effects 2 (subwoofer)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT</code></span></p></td>
+<td>Side left
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT</code></span></p></td>
+<td>Side right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT</code></span></p></td>
+<td>Top front left
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT</code></span></p></td>
+<td>Top front right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER</code></span></p></td>
+<td>Top front center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_CENTER</code></span></p></td>
+<td>Top center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT</code></span></p></td>
+<td>Top rear left
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT</code></span></p></td>
+<td>Top rear right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT</code></span></p></td>
+<td>Top side right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT</code></span></p></td>
+<td>Top rear right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER</code></span></p></td>
+<td>Top rear center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER</code></span></p></td>
+<td>Bottom front center
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT</code></span></p></td>
+<td>Bottom front left
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT</code></span></p></td>
+<td>Bottom front right
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT</code></span></p></td>
+<td>Wide left (between front left and side left)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT</code></span></p></td>
+<td>Wide right (between front right and side right)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT</code></span></p></td>
+<td>Surround left (between rear left and side left)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT</code></span></p></td>
+<td>Surround right (between rear right and side right)
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-CHANNEL-POSITION-MASK:CAPS"></a><h3>GST_AUDIO_CHANNEL_POSITION_MASK()</h3>
+<pre class="programlisting">#define GST_AUDIO_CHANNEL_POSITION_MASK(pos) (G_GUINT64_CONSTANT(1)&lt;&lt; GST_AUDIO_CHANNEL_POSITION_ ## pos)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-positions-to-mask"></a><h3>gst_audio_channel_positions_to_mask ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_channel_positions_to_mask (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *channel_mask</code></em>);</pre>
+<p>
+Convert the <em class="parameter"><code>position</code></em> array of <em class="parameter"><code>channels</code></em> channels to a bitmask.
+</p>
+<p>
+If <em class="parameter"><code>force_order</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally checks if the channels are
+in the order required by GStreamer.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition"><code class="literal">GstAudioChannelPositions</code></a>. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>force_order</code></em> :</span></p></td>
+<td>Only consider the GStreamer channel order.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channel_mask</code></em> :</span></p></td>
+<td>the output channel mask. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and could be converted.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-positions-from-mask"></a><h3>gst_audio_channel_positions_from_mask ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_channel_positions_from_mask
+                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> channel_mask</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
+<p>
+Convert the <em class="parameter"><code>channels</code></em> present in <em class="parameter"><code>channel_mask</code></em> to a <em class="parameter"><code>position</code></em> array
+(which should have at least <em class="parameter"><code>channels</code></em> entries ensured by caller).
+If <em class="parameter"><code>channel_mask</code></em> is set to 0, it is considered as 'not present' for purpose
+of conversion.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channel_mask</code></em> :</span></p></td>
+<td>The input channel_mask</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>The
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><code class="literal">GstAudioChannelPosition</code></a>s. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if channel and channel mask are valid and could be converted</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-positions-to-valid-order"></a><h3>gst_audio_channel_positions_to_valid_order ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_channel_positions_to_valid_order
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>);</pre>
+<p>
+Reorders the channel positions in <em class="parameter"><code>position</code></em> from any order to
+the GStreamer channel order.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>The channel positions to
+reorder to. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
+was successful.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-check-valid-channel-positions"></a><h3>gst_audio_check_valid_channel_positions ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_check_valid_channel_positions
+                                                        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</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> channels</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>);</pre>
+<p>
+Checks if <em class="parameter"><code>position</code></em> contains valid channel positions for
+<em class="parameter"><code>channels</code></em> channels. If <em class="parameter"><code>force_order</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally
+checks if the channels are in the order required by GStreamer.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition"><code class="literal">GstAudioChannelPositions</code></a>
+to check. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>force_order</code></em> :</span></p></td>
+<td>Only consider the GStreamer channel order.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-buffer-reorder-channels"></a><h3>gst_audio_buffer_reorder_channels ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_buffer_reorder_channels   (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</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> channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);</pre>
+<p>
+Reorders <em class="parameter"><code>buffer</code></em> from the channel positions <em class="parameter"><code>from</code></em> to the channel
+positions <em class="parameter"><code>to</code></em>. <em class="parameter"><code>from</code></em> and <em class="parameter"><code>to</code></em> must contain the same number of
+positions and the same positions, only in a different order.
+<em class="parameter"><code>buffer</code></em> must be writable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>The buffer to reorder.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>The <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><code class="literal">GstAudioFormat</code></a> of the buffer.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>from</code></em> :</span></p></td>
+<td>The channel positions in the buffer. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to</code></em> :</span></p></td>
+<td>The channel positions to convert to. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-reorder-channels"></a><h3>gst_audio_reorder_channels ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_reorder_channels          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</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> channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);</pre>
+<p>
+Reorders <em class="parameter"><code>data</code></em> from the channel positions <em class="parameter"><code>from</code></em> to the channel
+positions <em class="parameter"><code>to</code></em>. <em class="parameter"><code>from</code></em> and <em class="parameter"><code>to</code></em> must contain the same number of
+positions and the same positions, only in a different order.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The pointer to
+the memory. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>The size of the memory.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>The <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><code class="literal">GstAudioFormat</code></a> of the buffer.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>from</code></em> :</span></p></td>
+<td>The channel positions in the buffer. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to</code></em> :</span></p></td>
+<td>The channel positions to convert to. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-get-channel-reorder-map"></a><h3>gst_audio_get_channel_reorder_map ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_get_channel_reorder_map   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</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> *reorder_map</code></em>);</pre>
+<p>
+Returns a reorder map for <em class="parameter"><code>from</code></em> to <em class="parameter"><code>to</code></em> that can be used in
+custom channel reordering code, e.g. to convert from or to the
+GStreamer channel order. <em class="parameter"><code>from</code></em> and <em class="parameter"><code>to</code></em> must contain the same
+number of positions and the same positions, only in a
+different order.
+</p>
+<p>
+The resulting <em class="parameter"><code>reorder_map</code></em> can be used for reordering by assigning
+channel i of the input to channel reorder_map[i] of the output.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
+<td>The number of channels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>from</code></em> :</span></p></td>
+<td>The channel positions to reorder from. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to</code></em> :</span></p></td>
+<td>The channel positions to reorder to. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reorder_map</code></em> :</span></p></td>
+<td>Pointer to the reorder map. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
+is possible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
index 978e6b7..9cc2490 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioclock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiocdsrc.html" title="gstaudiocdsrc">
@@ -100,8 +100,11 @@
 calculated. If this function returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>, the last reported
 time will be returned by the clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -132,8 +135,11 @@
 calculated it will call <em class="parameter"><code>func</code></em> with <em class="parameter"><code>user_data</code></em>. When <em class="parameter"><code>func</code></em> returns
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>, the clock will return the last reported time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -168,8 +174,11 @@
 <p>
 Adjust <em class="parameter"><code>time</code></em> with the internal offset of the audio clock.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -197,8 +206,11 @@
 Report the time as returned by the <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc" title="GstAudioClockGetTimeFunc ()"><span class="type">GstAudioClockGetTimeFunc</span></a> without applying
 any offsets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -223,8 +235,11 @@
 future calls to internal_time will return an increasing result as required by
 the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
@@ -252,8 +267,11 @@
 After calling this function, <em class="parameter"><code>clock</code></em> will return the last returned time for
 the rest of its lifetime.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
index c5b1edf..fe868de 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiodecoder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
@@ -139,7 +139,7 @@
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Initially, GstAudioDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
     is activated, which allows subclass to perform any global setup.
@@ -160,7 +160,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
       Base class gathers input data, and optionally allows subclass
       to parse this into subsequently manageable (as defined by subclass)
@@ -191,7 +191,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
     GstAudioDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
     parsing will be stopped.
   </p></li></ul>
@@ -234,7 +234,7 @@
 <p>
 Things that subclass need to take care of:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Provide pad templates</p></li>
 <li class="listitem"><p>
      Set source pad caps when appropriate
@@ -312,8 +312,11 @@
 needed. At minimum <em class="parameter"><code>handle_frame</code></em> (and likely <em class="parameter"><code>set_format</code></em>) needs to be
 overridden.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioDecoderClass.element-class"></a>element_class</code></em>;</span></p></td>
@@ -430,8 +433,11 @@
 is logged. In either case, <em class="parameter"><code>ret</code></em> is set to the proper value to
 return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
@@ -483,8 +489,11 @@
 <p>
 Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base audio codec instance</td>
@@ -508,8 +517,11 @@
 <p>
 Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>base audio codec instance</td>
@@ -536,8 +548,11 @@
 Note that a frame received in <code class="function">gst_audio_decoder_handle_frame()</code> may be
 invalidated by a call to this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -567,8 +582,11 @@
 <p>
 Configure output info on the srcpad of <em class="parameter"><code>dec</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -594,8 +612,11 @@
 <p>
 Negotiate with downstreame elements to currently configured <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -620,8 +641,11 @@
 Helper function that allocates a buffer to hold an audio frame
 for <em class="parameter"><code>dec</code></em>'s current output format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -653,8 +677,11 @@
 <p>
 Unref the <em class="parameter"><code>allocator</code></em> after use it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -680,8 +707,11 @@
 <div class="refsect2">
 <a name="gst-audio-decoder-get-audio-info"></a><h3>gst_audio_decoder_get_audio_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      gst_audio_decoder_get_audio_info    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -699,8 +729,11 @@
 <div class="refsect2">
 <a name="gst-audio-decoder-get-estimate-rate"></a><h3>gst_audio_decoder_get_estimate_rate ()</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_audio_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -718,8 +751,11 @@
 <div class="refsect2">
 <a name="gst-audio-decoder-get-delay"></a><h3>gst_audio_decoder_get_delay ()</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_audio_decoder_get_delay         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -740,8 +776,11 @@
 <p>
 Queries decoder drain handling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -766,8 +805,11 @@
 Sets the variables pointed to by <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> to the currently configured
 latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -791,8 +833,11 @@
 <div class="refsect2">
 <a name="gst-audio-decoder-get-max-errors"></a><h3>gst_audio_decoder_get_max_errors ()</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_audio_decoder_get_max_errors    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -813,8 +858,11 @@
 <p>
 Queries decoder's latency aggregation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -836,8 +884,11 @@
 <p>
 Queries decoder required format handling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -861,8 +912,11 @@
 <p>
 Return current parsing (sync and eos) state.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -887,8 +941,11 @@
 <p>
 Queries decoder packet loss concealment handling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -907,8 +964,11 @@
 <div class="refsect2">
 <a name="gst-audio-decoder-get-plc-aware"></a><h3>gst_audio_decoder_get_plc_aware ()</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_audio_decoder_get_plc_aware     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -929,8 +989,11 @@
 <p>
 Queries current audio jitter tolerance threshold.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -953,8 +1016,11 @@
 <p>
 Allows baseclass to perform byte to time estimated conversion.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -982,8 +1048,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1006,8 +1075,11 @@
 <p>
 Sets decoder latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1035,8 +1107,11 @@
 warned about, but more than tolerated will lead to fatal error.  Default
 is set to GST_AUDIO_DECODER_MAX_ERRORS.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1061,8 +1136,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1092,8 +1170,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1119,8 +1200,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1142,8 +1226,11 @@
 <p>
 Indicates whether or not subclass handles packet loss concealment (plc).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1168,8 +1255,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
@@ -1202,8 +1292,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
index 7148f66..31ad0de 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioencoder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
@@ -154,7 +154,7 @@
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Initially, GstAudioEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
     is activated, which allows subclass to perform any global setup.
@@ -174,16 +174,17 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" type="disc">
+<ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
       Base class gathers input sample data (as directed by the context's
       frame_samples and frame_max) and provides this to subclass' <em class="parameter"><code>handle_frame</code></em>.
     </p></li>
 <li class="listitem"><p>
       If codec processing results in encoded data, subclass should call
-      <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em> to have encoded data pushed
-      downstream.  Alternatively, it might also call to indicate dropped
-      (non-encoded) samples.
+      <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a> to have encoded data pushed
+      downstream. Alternatively, it might also call
+      <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a> (with a NULL buffer and some number of
+      dropped samples) to indicate dropped (non-encoded) samples.
     </p></li>
 <li class="listitem"><p>
       Just prior to actually pushing a buffer downstream,
@@ -198,7 +199,7 @@
 </div></li>
 <li class="listitem"><div class="itemizedlist">
 <p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
     GstAudioEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
     parsing will be stopped.
   </p></li></ul>
@@ -249,7 +250,7 @@
 <p>
 Things that subclass need to take care of:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Provide pad templates</p></li>
 <li class="listitem"><p>
      Set source pad caps when appropriate
@@ -265,7 +266,7 @@
   </p></li>
 <li class="listitem"><p>
      Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
-     <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>.
+     <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.
   </p></li>
 </ul></div>
 <p>
@@ -327,8 +328,11 @@
 Subclasses can override any of the available virtual methods or not, as
 needed. At minimum <em class="parameter"><code>set_format</code></em> and <em class="parameter"><code>handle_frame</code></em> needs to be overridden.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioEncoderClass.element-class"></a>element_class</code></em>;</span></p></td>
@@ -448,8 +452,11 @@
 <p>
 Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>audio encoder instance</td>
@@ -473,8 +480,11 @@
 <p>
 Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>audio encoder instance</td>
@@ -501,8 +511,11 @@
 Note that samples received in <code class="function">gst_audio_encoder_handle_frame()</code>
 may be invalidated by a call to this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -534,8 +547,11 @@
 Helper function that allocates a buffer to hold an encoded audio frame
 for <em class="parameter"><code>enc</code></em>'s current output format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -567,8 +583,11 @@
 <p>
 Unref the <em class="parameter"><code>allocator</code></em> after use it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -603,8 +622,11 @@
 <p>
 Negotiate with downstreame elements to currently configured <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -623,8 +645,11 @@
 <div class="refsect2">
 <a name="gst-audio-encoder-get-audio-info"></a><h3>gst_audio_encoder_get_audio_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *      gst_audio_encoder_get_audio_info    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -645,8 +670,11 @@
 <p>
 Queries encoder drain handling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -665,8 +693,11 @@
 <div class="refsect2">
 <a name="gst-audio-encoder-get-frame-max"></a><h3>gst_audio_encoder_get_frame_max ()</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_audio_encoder_get_frame_max     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -685,8 +716,11 @@
 <a name="gst-audio-encoder-get-frame-samples-min"></a><h3>gst_audio_encoder_get_frame_samples_min ()</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_audio_encoder_get_frame_samples_min
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -705,8 +739,11 @@
 <a name="gst-audio-encoder-get-frame-samples-max"></a><h3>gst_audio_encoder_get_frame_samples_max ()</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_audio_encoder_get_frame_samples_max
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -727,8 +764,11 @@
 <p>
 Queries encoder hard minimum handling.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -758,8 +798,11 @@
 Sets the variables pointed to by <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> to the currently configured
 latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -783,8 +826,11 @@
 <div class="refsect2">
 <a name="gst-audio-encoder-get-lookahead"></a><h3>gst_audio_encoder_get_lookahead ()</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_audio_encoder_get_lookahead     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -805,8 +851,11 @@
 <p>
 Queries if the encoder will handle granule marking.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -829,8 +878,11 @@
 <p>
 Queries encoder perfect timestamp behaviour.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -852,8 +904,11 @@
 <p>
 Queries current audio jitter tolerance threshold.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -879,8 +934,11 @@
 restricted to channel/rate combinations supported by downstream elements
 (e.g. muxers).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -916,8 +974,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -940,8 +1001,11 @@
 Sets max number of frames accepted at once (assumed minimally 1).
 Requires <em class="parameter"><code>frame_samples_min</code></em> and <em class="parameter"><code>frame_samples_max</code></em> to be the equal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -969,8 +1033,11 @@
 If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()"><code class="function">gst_audio_encoder_set_frame_samples_max()</code></a>
 must be called with the same number.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -998,8 +1065,11 @@
 If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()"><code class="function">gst_audio_encoder_set_frame_samples_min()</code></a>
 must be called with the same number.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1027,8 +1097,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1056,8 +1129,11 @@
 <p>
 Set the codec headers to be sent downstream whenever requested.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1082,8 +1158,11 @@
 <p>
 Sets encoder latency.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1109,8 +1188,11 @@
 <p>
 Sets encoder lookahead (in units of input rate samples)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1135,8 +1217,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1162,8 +1247,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1188,8 +1276,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
@@ -1222,8 +1313,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
index b032cf6..f6b573d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
@@ -107,8 +107,11 @@
 GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual
 function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html#GstBaseTransformClass"><span class="type">GstBaseTransformClass</span></a> <em class="structfield"><code><a name="GstAudioFilterClass.basetransformclass"></a>basetransformclass</code></em>;</span></p></td>
@@ -134,8 +137,11 @@
 <p>
 This function is usually used from within a GObject class_init function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
index f6a5ce7..514e897 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioiec61937</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">
@@ -65,8 +65,11 @@
 Calculated the size of the buffer expected by <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()"><code class="function">gst_audio_iec61937_payload()</code></a> for
 payloading type from <em class="parameter"><code>spec</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>spec</code></em> :</span></p></td>
@@ -94,8 +97,11 @@
 stores the result in <em class="parameter"><code>dst</code></em>. <em class="parameter"><code>src</code></em> must contain exactly one frame of data and
 the frame is not checked for errors.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
new file mode 100644
index 0000000..0297b0a
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
@@ -0,0 +1,229 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudiometa</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
+<link rel="next" href="gst-plugins-base-libs-gstaudiocdsrc.html" title="gstaudiocdsrc">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiocdsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudiometa.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gst-plugins-base-libs-gstaudiometa.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudiometa"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiometa.top_of_page"></a>gstaudiometa</span></h2>
+<p>gstaudiometa</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudiometa.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/audio/gstaudiometa.h&gt;
+
+struct              <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta">GstAudioDownmixMeta</a>;
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="returnvalue">GstAudioDownmixMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-downmix-meta" title="gst_buffer_add_audio_downmix_meta ()">gst_buffer_add_audio_downmix_meta</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from_position</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> from_channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</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> to_channels</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **matrix</code></em>);
+#define             <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta" title="gst_buffer_get_audio_downmix_meta()">gst_buffer_get_audio_downmix_meta</a>   (b)
+<a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="returnvalue">GstAudioDownmixMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta-for-channels" title="gst_buffer_get_audio_downmix_meta_for_channels ()">gst_buffer_get_audio_downmix_meta_for_channels</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</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> to_channels</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiometa.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiometa.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstAudioDownmixMeta"></a><h3>struct GstAudioDownmixMeta</h3>
+<pre class="programlisting">struct GstAudioDownmixMeta {
+  GstMeta      meta;
+
+  GstAudioChannelPosition *from_position;
+  GstAudioChannelPosition *to_position;
+  gint        from_channels, to_channels;
+  gfloat       **matrix;
+};
+</pre>
+<p>
+Extra buffer metadata describing audio downmixing matrix. This metadata is
+attached to audio buffers and contains a matrix to downmix the buffer number
+of channels to <em class="parameter"><code>channels</code></em>.
+</p>
+<p>
+<em class="parameter"><code>matrix</code></em> is an two-dimensional array of <em class="parameter"><code>to_channels</code></em> times <em class="parameter"><code>from_channels</code></em>
+coefficients, i.e. the i-th output channels is constructed by multiplicating
+the input channels with the coefficients in <em class="parameter"><code>matrix</code></em>[i] and taking the sum
+of the results.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.meta"></a>meta</code></em>;</span></p></td>
+<td>parent <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *<em class="structfield"><code><a name="GstAudioDownmixMeta.from-position"></a>from_position</code></em>;</span></p></td>
+<td>the channel positions of the source</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *<em class="structfield"><code><a name="GstAudioDownmixMeta.to-position"></a>to_position</code></em>;</span></p></td>
+<td>the channel positions of the destination</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.from-channels"></a>from_channels</code></em>;</span></p></td>
+<td>the number of channels of the source</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.to-channels"></a>to_channels</code></em>;</span></p></td>
+<td>the number of channels of the destination</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **<em class="structfield"><code><a name="GstAudioDownmixMeta.matrix"></a>matrix</code></em>;</span></p></td>
+<td>the matrix coefficients.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-add-audio-downmix-meta"></a><h3>gst_buffer_add_audio_downmix_meta ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="returnvalue">GstAudioDownmixMeta</span></a> * gst_buffer_add_audio_downmix_meta (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from_position</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> from_channels</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</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> to_channels</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **matrix</code></em>);</pre>
+<p>
+Attaches GstAudioDownmixMeta metadata to <em class="parameter"><code>buffer</code></em> with the given parameters.
+</p>
+<p>
+<em class="parameter"><code>matrix</code></em> is an two-dimensional array of <em class="parameter"><code>to_channels</code></em> times <em class="parameter"><code>from_channels</code></em>
+coefficients, i.e. the i-th output channels is constructed by multiplicating
+the input channels with the coefficients in <em class="parameter"><code>matrix</code></em>[i] and taking the sum
+of the results.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>from_position</code></em> :</span></p></td>
+<td>the channel positions
+of the source. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=from_channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>from_channels</code></em> :</span></p></td>
+<td>The number of channels of the source</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to_position</code></em> :</span></p></td>
+<td>the channel positions of
+the destination. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=to_channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to_channels</code></em> :</span></p></td>
+<td>The number of channels of the destination</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td>
+<td>The matrix coefficients.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-audio-downmix-meta"></a><h3>gst_buffer_get_audio_downmix_meta()</h3>
+<pre class="programlisting">#define gst_buffer_get_audio_downmix_meta(b) ((GstAudioDownmixMeta*)gst_buffer_get_meta((b),GST_AUDIO_DOWNMIX_META_INFO))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-audio-downmix-meta-for-channels"></a><h3>gst_buffer_get_audio_downmix_meta_for_channels ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="returnvalue">GstAudioDownmixMeta</span></a> * gst_buffer_get_audio_downmix_meta_for_channels
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</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> to_channels</code></em>);</pre>
+<p>
+Find the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em> for the given destination
+channel positions.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to_position</code></em> :</span></p></td>
+<td>the channel positions of
+the destination. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=to_channels]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>to_channels</code></em> :</span></p></td>
+<td>The number of channels of the destination</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html b/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
index 5b8eae9..e44b479 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiomixerutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
index 9b31eaa..7152370 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudioringbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">
+<link rel="prev" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">
 <link rel="next" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstmultichannel.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiochannels.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
@@ -110,7 +110,7 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-is-flushing" title="gst_audio_ring_buffer_is_flushing ()">gst_audio_ring_buffer_is_flushing</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-channel-positions" title="gst_audio_ring_buffer_set_channel_positions ()">gst_audio_ring_buffer_set_channel_positions</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-timestamp" title="gst_audio_ring_buffer_set_timestamp ()">gst_audio_ring_buffer_set_timestamp</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</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> readseg</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
@@ -130,7 +130,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13515728"></a><p>
+<a name="idp14121408"></a><p>
 This object is the base class for audio ringbuffers used by the base
 audio source and sink classes.
 </p>
@@ -172,8 +172,11 @@
 <p>
 The ringbuffer base class structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.cond"></a>cond</code></em>;</span></p></td>
@@ -261,8 +264,11 @@
 <p>
 The vmethods that subclasses can override to implement the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstAudioRingBufferClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -353,8 +359,11 @@
 <p>
 The structure containing the format specification of the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstAudioRingBufferSpec.caps"></a>caps</code></em>;</span></p></td>
@@ -404,8 +413,11 @@
 This function is set with <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-callback" title="gst_audio_ring_buffer_set_callback ()"><code class="function">gst_audio_ring_buffer_set_callback()</code></a> and is
 called to fill the memory at <em class="parameter"><code>data</code></em> with <em class="parameter"><code>len</code></em> bytes of samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rbuf</code></em> :</span></p></td>
@@ -434,14 +446,18 @@
 <pre class="programlisting">typedef enum {
   GST_AUDIO_RING_BUFFER_STATE_STOPPED,
   GST_AUDIO_RING_BUFFER_STATE_PAUSED,
-  GST_AUDIO_RING_BUFFER_STATE_STARTED
+  GST_AUDIO_RING_BUFFER_STATE_STARTED,
+  GST_AUDIO_RING_BUFFER_STATE_ERROR
 } GstAudioRingBufferState;
 </pre>
 <p>
 The state of the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-RING-BUFFER-STATE-STOPPED:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_RING_BUFFER_STATE_STOPPED</code></span></p></td>
@@ -458,6 +474,13 @@
 <td>The ringbuffer is started
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-AUDIO-RING-BUFFER-STATE-ERROR:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_RING_BUFFER_STATE_ERROR</code></span></p></td>
+<td>The ringbuffer has encountered an
+    error after it has been started, e.g. because the device was
+    disconnected (Since 1.2)
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -482,8 +505,11 @@
 <p>
 The format of the samples in the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-RAW:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW</code></span></p></td>
@@ -585,8 +611,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -614,8 +643,11 @@
 in the data pointer of the ring buffer with a valid <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
 to which samples can be written.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -640,8 +672,11 @@
 <p>
 Free the resources of the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -662,8 +697,11 @@
 <p>
 Check if the ringbuffer is acquired and ready to use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -688,8 +726,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -717,8 +758,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -739,8 +783,11 @@
 <p>
 Start processing samples from the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -761,8 +808,11 @@
 <p>
 Pause processing samples from the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -783,8 +833,11 @@
 <p>
 Stop processing samples from the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -816,8 +869,11 @@
 For capture ringbuffers this is the amount of samples in the device that are
 not yet transfered to the ringbuffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -840,8 +896,11 @@
 since it was last started. This does not include the number of samples not
 yet processed (see <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-delay" title="gst_audio_ring_buffer_delay ()"><code class="function">gst_audio_ring_buffer_delay()</code></a>).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -872,8 +931,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -921,8 +983,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -969,8 +1034,11 @@
 Convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_fmt</code></em> to the equivalent value in <em class="parameter"><code>dest_fmt</code></em>. The result
 will be put in <em class="parameter"><code>dest_val</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1011,8 +1079,11 @@
 Returns a pointer to memory where the data from segment <em class="parameter"><code>segment</code></em>
 can be found. This function is mostly used by subclasses.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1059,8 +1130,11 @@
 <p>
 <em class="parameter"><code>timestamp</code></em> will return the timestamp associated with the data returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1103,8 +1177,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1127,8 +1204,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
 <td>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to clear</td>
@@ -1147,8 +1227,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1169,8 +1252,11 @@
 Close the audio device associated with the ring buffer. The ring buffer
 should already have been released via <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-release" title="gst_audio_ring_buffer_release ()"><code class="function">gst_audio_ring_buffer_release()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1194,8 +1280,11 @@
 setup on the device. You must open the device before acquiring the ring
 buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1218,8 +1307,11 @@
 <p>
 Checks the status of the device associated with the ring buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1246,8 +1338,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1269,8 +1364,11 @@
 <p>
 Parse <em class="parameter"><code>caps</code></em> into <em class="parameter"><code>spec</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>spec</code></em> :</span></p></td>
@@ -1299,8 +1397,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1323,8 +1424,11 @@
 <p>
 MT safe.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -1343,13 +1447,16 @@
 <a name="gst-audio-ring-buffer-set-channel-positions"></a><h3>gst_audio_ring_buffer_set_channel_positions ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_ring_buffer_set_channel_positions
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
+                                                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
 <p>
 Tell the ringbuffer about the device's channel positions. This must
 be called in when the ringbuffer is acquired.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
index d702745..e50b72b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
@@ -66,8 +66,11 @@
 </p>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><code class="function">open()</code></span></p></td>
@@ -147,8 +150,11 @@
 <p>
 <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a> class. Override the vmethods to implement functionality.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkClass" title="struct GstAudioBaseSinkClass"><span class="type">GstAudioBaseSinkClass</span></a> <em class="structfield"><code><a name="GstAudioSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
index 2c51aa7..17ecb02 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
@@ -67,8 +67,11 @@
 </p>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><code class="function">open()</code></span></p></td>
@@ -150,8 +153,11 @@
 <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc"><span class="type">GstAudioSrc</span></a> class. Override the vmethod to implement
 functionality.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrcClass" title="struct GstAudioBaseSrcClass"><span class="type">GstAudioBaseSrcClass</span></a> <em class="structfield"><code><a name="GstAudioSrcClass.parent-class"></a>parent_class</code></em>;</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
index 69128d2..3ffdd65 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcolorbalance</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
@@ -77,7 +77,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp27266144"></a><p>
+<a name="idp28056816"></a><p>
 This interface is implemented by elements which can perform some color
 balance operation on video frames they process. For example, modifying
 the brightness, contrast, hue or saturation.
@@ -120,8 +120,11 @@
 <p>
 Color-balance interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstColorBalanceInterface.iface"></a>iface</code></em>;</span></p></td>
@@ -164,8 +167,11 @@
 hardware implementations (such as those provided by xvimagesink) are
 preferred.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-COLOR-BALANCE-HARDWARE:CAPS"></a><span class="term"><code class="literal">GST_COLOR_BALANCE_HARDWARE</code></span></p></td>
@@ -189,8 +195,11 @@
 <p>
 Retrieve a list of the available channels.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>balance</code></em> :</span></p></td>
@@ -219,8 +228,11 @@
         <span class="type">GstColorBalanceChannel.max_value</span> members of the
         <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>balance</code></em> :</span></p></td>
@@ -252,8 +264,11 @@
         <span class="type">GstColorBalanceChannel.max_value</span> members of the
         <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>balance</code></em> :</span></p></td>
@@ -282,8 +297,11 @@
 instance, and the <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title='The "value-changed" signal'><span class="type">"value-changed"</span></a> signal on the
 channel object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>balance</code></em> :</span></p></td>
@@ -307,8 +325,11 @@
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> of this implementation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>balance</code></em> :</span></p></td>
@@ -333,8 +354,11 @@
 <p>
 Fired when the value of the indicated channel has changed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>colorbalance</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
index a49a97d..eabeb1f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstcolorbalancechannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
@@ -67,7 +67,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp27546160"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
+<a name="idp30072288"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
 for modifying the color balance implemented by an element providing the
 <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> interface. For example, Hue or Saturation.
 </p>
@@ -85,8 +85,11 @@
   gint    max_value;
 };
 </pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstColorBalanceChannel-struct.label"></a>label</code></em>;</span></p></td>
@@ -117,8 +120,11 @@
 <p>
 Color-balance channel class.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstColorBalanceChannelClass.parent"></a>parent</code></em>;</span></p></td>
@@ -142,8 +148,11 @@
 <p>
 Fired when the value of the indicated channel has changed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
index 25c308d..13a8d45 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstdiscoverer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
@@ -86,6 +86,8 @@
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
 const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
 const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstToc"><span class="returnvalue">GstToc</span></a> *      <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-toc" title="gst_discoverer_stream_info_get_toc ()">gst_discoverer_stream_info_get_toc</a>  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</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="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-id" title="gst_discoverer_stream_info_get_stream_id ()">gst_discoverer_stream_info_get_stream_id</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
 #define             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a>      (info)
 #define             <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a>    (info)
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>
@@ -204,8 +206,11 @@
 <p>
 Creates a new <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> with the provided timeout.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
@@ -237,8 +242,11 @@
 A <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> must be available for <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> to properly work in
 asynchronous mode.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
 <td>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>
@@ -254,8 +262,11 @@
 Stop the discovery of any pending URIs and clears the list of
 pending URIS (if any).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
 <td>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>
@@ -276,8 +287,11 @@
 A copy of <em class="parameter"><code>uri</code></em> will be made internally, so the caller can safely <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
 afterwards.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
@@ -316,8 +330,11 @@
 A copy of <em class="parameter"><code>uri</code></em> will be made internally, so the caller can safely <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
 afterwards.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
@@ -361,8 +378,11 @@
 <p>
 Result values for the discovery process.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-DISCOVERER-OK:CAPS"></a><span class="term"><code class="literal">GST_DISCOVERER_OK</code></span></p></td>
@@ -401,8 +421,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-duration"></a><h3>gst_discoverer_info_get_duration ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_discoverer_info_get_duration    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -420,8 +443,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-misc"></a><h3>gst_discoverer_info_get_misc ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_info_get_misc       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -442,8 +468,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-result"></a><h3>gst_discoverer_info_get_result ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> gst_discoverer_info_get_result      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -462,8 +491,11 @@
 <a name="gst-discoverer-info-get-stream-info"></a><h3>gst_discoverer_info_get_stream_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_info_get_stream_info
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -485,8 +517,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-stream-list"></a><h3>gst_discoverer_info_get_stream_list ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_info_get_stream_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -507,8 +542,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-tags"></a><h3>gst_discoverer_info_get_tags ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  gst_discoverer_info_get_tags        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -528,8 +566,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-toc"></a><h3>gst_discoverer_info_get_toc ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstToc"><span class="returnvalue">GstToc</span></a> *      gst_discoverer_info_get_toc         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -549,8 +590,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-uri"></a><h3>gst_discoverer_info_get_uri ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_discoverer_info_get_uri         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -570,8 +614,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-info-get-seekable"></a><h3>gst_discoverer_info_get_seekable ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_discoverer_info_get_seekable    (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -593,8 +640,11 @@
 <p>
 Increments the reference count of <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -616,8 +666,11 @@
 <p>
 Decrements the reference count of <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>
@@ -686,8 +739,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-caps"></a><h3>gst_discoverer_stream_info_get_caps ()</h3>
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_discoverer_stream_info_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -708,8 +764,11 @@
 <a name="gst-discoverer-stream-info-get-misc"></a><h3>gst_discoverer_stream_info_get_misc ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_stream_info_get_misc
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -731,8 +790,11 @@
 <a name="gst-discoverer-stream-info-get-next"></a><h3>gst_discoverer_stream_info_get_next ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_next
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -754,8 +816,11 @@
 <a name="gst-discoverer-stream-info-get-previous"></a><h3>gst_discoverer_stream_info_get_previous ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_previous
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -776,8 +841,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-tags"></a><h3>gst_discoverer_stream_info_get_tags ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> *  gst_discoverer_stream_info_get_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -797,8 +865,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-toc"></a><h3>gst_discoverer_stream_info_get_toc ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstToc"><span class="returnvalue">GstToc</span></a> *      gst_discoverer_stream_info_get_toc  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -816,14 +887,42 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-discoverer-stream-info-get-stream-id"></a><h3>gst_discoverer_stream_info_get_stream_id ()</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_discoverer_stream_info_get_stream_id
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the stream ID of this stream. If you wish to
+use the stream ID after the life-time of <em class="parameter"><code>info</code></em> you will need to copy it. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-discoverer-stream-info-ref"></a><h3>gst_discoverer_stream_info_ref()</h3>
 <pre class="programlisting">#define gst_discoverer_stream_info_ref(info) ((GstDiscovererStreamInfo*) g_object_ref((GObject*) info))
 </pre>
 <p>
 Increments the reference count of <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -845,8 +944,11 @@
 <p>
 Decrements the reference count of <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>
@@ -863,8 +965,11 @@
 Decrements the reference count of all contained <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>
 and fress the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>infos</code></em> :</span></p></td>
 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span>
@@ -877,8 +982,11 @@
 <a name="gst-discoverer-stream-info-get-stream-type-nick"></a><h3>gst_discoverer_stream_info_get_stream_type_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_discoverer_stream_info_get_stream_type_nick
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -901,8 +1009,11 @@
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> contained in <em class="parameter"><code>info</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -927,8 +1038,11 @@
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> contained in <em class="parameter"><code>info</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -954,8 +1068,11 @@
 Finds the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> contained in <em class="parameter"><code>info</code></em> that match the
 given <em class="parameter"><code>streamtype</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -985,8 +1102,11 @@
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> contained in <em class="parameter"><code>info</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1011,8 +1131,11 @@
 <p>
 Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> contained in <em class="parameter"><code>info</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1034,8 +1157,11 @@
 <a name="gst-discoverer-audio-info-get-bitrate"></a><h3>gst_discoverer_audio_info_get_bitrate ()</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_discoverer_audio_info_get_bitrate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1054,8 +1180,11 @@
 <a name="gst-discoverer-audio-info-get-channels"></a><h3>gst_discoverer_audio_info_get_channels ()</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_discoverer_audio_info_get_channels
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1073,8 +1202,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-depth"></a><h3>gst_discoverer_audio_info_get_depth ()</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_discoverer_audio_info_get_depth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1093,8 +1225,11 @@
 <a name="gst-discoverer-audio-info-get-language"></a><h3>gst_discoverer_audio_info_get_language ()</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_discoverer_audio_info_get_language
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1113,8 +1248,11 @@
 <a name="gst-discoverer-audio-info-get-max-bitrate"></a><h3>gst_discoverer_audio_info_get_max_bitrate ()</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_discoverer_audio_info_get_max_bitrate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1133,8 +1271,11 @@
 <a name="gst-discoverer-audio-info-get-sample-rate"></a><h3>gst_discoverer_audio_info_get_sample_rate ()</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_discoverer_audio_info_get_sample_rate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1153,8 +1294,11 @@
 <a name="gst-discoverer-container-info-get-streams"></a><h3>gst_discoverer_container_info_get_streams ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_discoverer_container_info_get_streams
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1176,8 +1320,11 @@
 <a name="gst-discoverer-subtitle-info-get-language"></a><h3>gst_discoverer_subtitle_info_get_language ()</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_discoverer_subtitle_info_get_language
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1196,8 +1343,11 @@
 <a name="gst-discoverer-video-info-get-bitrate"></a><h3>gst_discoverer_video_info_get_bitrate ()</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_discoverer_video_info_get_bitrate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1215,8 +1365,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-depth"></a><h3>gst_discoverer_video_info_get_depth ()</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_discoverer_video_info_get_depth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1235,8 +1388,11 @@
 <a name="gst-discoverer-video-info-get-framerate-denom"></a><h3>gst_discoverer_video_info_get_framerate_denom ()</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_discoverer_video_info_get_framerate_denom
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1255,8 +1411,11 @@
 <a name="gst-discoverer-video-info-get-framerate-num"></a><h3>gst_discoverer_video_info_get_framerate_num ()</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_discoverer_video_info_get_framerate_num
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1275,8 +1434,11 @@
 <a name="gst-discoverer-video-info-get-height"></a><h3>gst_discoverer_video_info_get_height ()</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_discoverer_video_info_get_height
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1295,8 +1457,11 @@
 <a name="gst-discoverer-video-info-is-interlaced"></a><h3>gst_discoverer_video_info_is_interlaced ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_discoverer_video_info_is_interlaced
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1315,8 +1480,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-video-info-is-image"></a><h3>gst_discoverer_video_info_is_image ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_discoverer_video_info_is_image  (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1337,8 +1505,11 @@
 <a name="gst-discoverer-video-info-get-max-bitrate"></a><h3>gst_discoverer_video_info_get_max_bitrate ()</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_discoverer_video_info_get_max_bitrate
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1357,8 +1528,11 @@
 <a name="gst-discoverer-video-info-get-par-denom"></a><h3>gst_discoverer_video_info_get_par_denom ()</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_discoverer_video_info_get_par_denom
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1377,8 +1551,11 @@
 <a name="gst-discoverer-video-info-get-par-num"></a><h3>gst_discoverer_video_info_get_par_num ()</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_discoverer_video_info_get_par_num
                                                         (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1396,8 +1573,11 @@
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-width"></a><h3>gst_discoverer_video_info_get_width ()</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_discoverer_video_info_get_width (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1445,8 +1625,11 @@
 When an error occurs, <em class="parameter"><code>info</code></em> might still contain some partial information,
 depending on the circumstances of the error.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
@@ -1482,8 +1665,11 @@
 <p>
 Will be emitted when all pending URIs have been processed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
@@ -1513,8 +1699,11 @@
 This signal is usually emitted from the context of a GStreamer streaming
 thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
@@ -1540,8 +1729,11 @@
 <p>
 Will be emitted when the discover starts analyzing the pending URIs
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfft.html b/docs/libs/html/gst-plugins-base-libs-gstfft.html
index da5f26e..4d635c6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfft.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfft.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfft</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gstreamer-ffft.html" title="FFT Library">
@@ -66,8 +66,11 @@
 <p>
 The various window functions available.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-FFT-WINDOW-RECTANGULAR:CAPS"></a><span class="term"><code class="literal">GST_FFT_WINDOW_RECTANGULAR</code></span></p></td>
@@ -106,8 +109,11 @@
 of 2, 3 and 5. Using this as the <em class="parameter"><code>len</code></em> parameter for
 the different GstFFT types will provide the best performance.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
index c74e56c..bbdace3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfftf32</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
@@ -109,8 +109,11 @@
 Data type for complex numbers composed of
 32 bit float.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.r"></a>r</code></em>;</span></p></td>
@@ -137,8 +140,11 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
@@ -173,8 +179,11 @@
 <em class="parameter"><code>freqdata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em>/2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> frequency
 domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -208,8 +217,11 @@
 <p>
 <em class="parameter"><code>timedata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em> time domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -236,8 +248,11 @@
 <p>
 This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -262,8 +277,11 @@
 <p>
 This frees the memory allocated for <em class="parameter"><code>self</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
 <td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
index 7f0b27c..b94d0bd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstfftf64</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
@@ -109,8 +109,11 @@
 Data type for complex numbers composed of
 64 bit float.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.r"></a>r</code></em>;</span></p></td>
@@ -137,8 +140,11 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
@@ -173,8 +179,11 @@
 <em class="parameter"><code>freqdata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em>/2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> frequency
 domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -208,8 +217,11 @@
 <p>
 <em class="parameter"><code>timedata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em> time domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -236,8 +248,11 @@
 <p>
 This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -262,8 +277,11 @@
 <p>
 This frees the memory allocated for <em class="parameter"><code>self</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
 <td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts16.html b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
index 0c6a058..73d8a8b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts16.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstffts16</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
@@ -109,8 +109,11 @@
 Data type for complex numbers composed of
 signed 16 bit integers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><span class="type">gint16</span> <em class="structfield"><code><a name="GstFFTS16Complex.r"></a>r</code></em>;</span></p></td>
@@ -137,8 +140,11 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
@@ -173,8 +179,11 @@
 <em class="parameter"><code>freqdata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em>/2 + 1 <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> frequency
 domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -208,8 +217,11 @@
 <p>
 <em class="parameter"><code>timedata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em> time domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -236,8 +248,11 @@
 <p>
 This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -262,8 +277,11 @@
 <p>
 This frees the memory allocated for <em class="parameter"><code>self</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
 <td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts32.html b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
index 0bd3b27..f1065e7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstffts32</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-ffft.html" title="FFT Library">
 <link rel="prev" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
@@ -109,8 +109,11 @@
 Data type for complex numbers composed of
 signed 32 bit integers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><span class="type">gint32</span> <em class="structfield"><code><a name="GstFFTS32Complex.r"></a>r</code></em>;</span></p></td>
@@ -137,8 +140,11 @@
 2, 3 and 5. To get the next number with this characteristics use
 <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
@@ -173,8 +179,11 @@
 <em class="parameter"><code>freqdata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em>/2 + 1 <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> frequency
 domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -208,8 +217,11 @@
 <p>
 <em class="parameter"><code>timedata</code></em> must be large enough to hold <em class="parameter"><code>len</code></em> time domain samples.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -236,8 +248,11 @@
 <p>
 This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
@@ -262,8 +277,11 @@
 <p>
 This frees the memory allocated for <em class="parameter"><code>self</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
 <td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmultichannel.html b/docs/libs/html/gst-plugins-base-libs-gstmultichannel.html
deleted file mode 100644
index ece97d7..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gstmultichannel.html
+++ /dev/null
@@ -1,292 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gstmultichannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstaudiobasesrc.html" title="gstaudiobasesrc">
-<link rel="next" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiobasesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioringbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gst-plugins-base-libs-gstmultichannel.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gst-plugins-base-libs-gstmultichannel.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gstmultichannel"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstmultichannel.top_of_page"></a>gstmultichannel</span></h2>
-<p>gstmultichannel</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gstmultichannel.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/audio/multichannel.h&gt;
-
-enum                <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition">GstAudioChannelPosition</a>;
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmultichannel.description"></a><h2>Description</h2>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmultichannel.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstAudioChannelPosition"></a><h3>enum GstAudioChannelPosition</h3>
-<pre class="programlisting">typedef enum {
-  /* These get negative indices to allow to use
-   * the enum values of the normal cases for the
-   * bit-mask position */
-  GST_AUDIO_CHANNEL_POSITION_NONE = -3,
-  GST_AUDIO_CHANNEL_POSITION_MONO = -2,
-  GST_AUDIO_CHANNEL_POSITION_INVALID = -1,
-
-  /* Normal cases */
-  GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT = 0,
-  GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_LFE1,
-  GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_LFE2,
-  GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_TOP_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER,
-  GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT,
-  GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT,
-  GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT
-} GstAudioChannelPosition;
-</pre>
-<p>
-Audio channel positions.
-</p>
-<p>
-These are the channels defined in SMPTE 2036-2-2008
-Table 1 for 22.2 audio systems with the Surround and Wide channels from
-DTS Coherent Acoustics (v.1.3.1) and 10.2 and 7.1 layouts. In the caps the
-actual channel layout is expressed with a channel count and a channel mask,
-which describes the existing channels. The positions in the bit mask correspond
-to the enum values.
-For negotiation it is allowed to have more bits set in the channel mask than
-the number of channels to specify the allowed channel positions but this is
-not allowed in negotiated caps. It is not allowed in any situation other
-than the one mentioned below to have less bits set in the channel mask than
-the number of channels.
-</p>
-<p>
-<em class="parameter"><code>GST_AUDIO_CHANNEL_POSITION_MONO</code></em> can only be used with a single mono channel that
-has no direction information and would be mixed into all directional channels.
-This is expressed in caps by having a single channel and no channel mask.
-</p>
-<p>
-<em class="parameter"><code>GST_AUDIO_CHANNEL_POSITION_NONE</code></em> can only be used if all channels have this position.
-This is expressed in caps by having a channel mask with no bits set.
-</p>
-<p>
-As another special case it is allowed to have two channels without a channel mask.
-This implicitely means that this is a stereo stream with a front left and front right
-channel.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NONE</code></span></p></td>
-<td>used for position-less channels, e.g.
-    from a sound card that records 1024 channels; mutually exclusive with
-    any other channel position
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-MONO:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_MONO</code></span></p></td>
-<td>Mono without direction;
-    can only be used with 1 channel
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_INVALID</code></span></p></td>
-<td>invalid position
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT</code></span></p></td>
-<td>Front left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT</code></span></p></td>
-<td>Front right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER</code></span></p></td>
-<td>Front center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_LFE1</code></span></p></td>
-<td>Low-frequency effects 1 (subwoofer)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_LEFT</code></span></p></td>
-<td>Rear left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT</code></span></p></td>
-<td>Rear right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER</code></span></p></td>
-<td>Front left of center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER</code></span></p></td>
-<td>Front right of center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_CENTER</code></span></p></td>
-<td>Rear center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_LFE2</code></span></p></td>
-<td>Low-frequency effects 2 (subwoofer)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT</code></span></p></td>
-<td>Side left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT</code></span></p></td>
-<td>Side right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT</code></span></p></td>
-<td>Top front left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT</code></span></p></td>
-<td>Top front right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER</code></span></p></td>
-<td>Top front center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_CENTER</code></span></p></td>
-<td>Top center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT</code></span></p></td>
-<td>Top rear left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT</code></span></p></td>
-<td>Top rear right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT</code></span></p></td>
-<td>Top side right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT</code></span></p></td>
-<td>Top rear right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER</code></span></p></td>
-<td>Top rear center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER</code></span></p></td>
-<td>Bottom front center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT</code></span></p></td>
-<td>Bottom front left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT</code></span></p></td>
-<td>Bottom front right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT</code></span></p></td>
-<td>Wide left (between front left and side left)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT</code></span></p></td>
-<td>Wide right (between front right and side right)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT</code></span></p></td>
-<td>Surround left (between rear left and side left)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT</code></span></p></td>
-<td>Surround right (between rear right and side right)
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
index 9f2facf..b99291e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gstreamer-base-utils.html" title="Base Utils Library">
@@ -48,13 +48,13 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5657536"></a><h3>Linking to this library</h3>
+<a name="idp6729328"></a><h3>Linking to this library</h3>
 <p>
 libgstpbutils is a general utility library for plugins and applications.
 It currently provides the
 following:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
 human-readable description strings of codecs, elements, sources, decoders,
 encoders, or sinks from decoder/encoder caps, element names, or protocol
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
index e9e2281..d72015c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilscodecutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
@@ -78,7 +78,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp21881520"></a><p>
+<a name="idp23255856"></a><p>
 Provides codec-specific ulility functions such as functions to provide the
 codec profile and level in human-readable string form from header data.
 </p>
@@ -96,8 +96,11 @@
 Translates the sample rate index found in AAC headers to the actual sample
 rate.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sr_idx</code></em> :</span></p></td>
@@ -129,8 +132,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>audio_config</code></em> :</span></p></td>
@@ -166,7 +172,7 @@
 </p>
 <p>
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     Bit 0:4 contains the AudioObjectType
   </p></li>
@@ -189,8 +195,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>audio_config</code></em> :</span></p></td>
@@ -223,8 +232,11 @@
 <em class="parameter"><code>caps</code></em> must be audio/mpeg caps with an "mpegversion" field of either 2 or 4.
 If mpegversion is 4, the "base-profile" field is also set in <em class="parameter"><code>caps</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -262,7 +274,7 @@
 </p>
 <p>
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>Bit 0:7   - Profile indication</p></li>
 <li class="listitem"><p>Bit 8     - constraint_set0_flag</p></li>
 <li class="listitem"><p>Bit 9     - constraint_set1_flag</p></li>
@@ -274,8 +286,11 @@
 </ul></div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sps</code></em> :</span></p></td>
@@ -302,8 +317,11 @@
 sequence parameter set into a string. The SPS is expected to have the
 same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sps</code></em> :</span></p></td>
@@ -332,8 +350,11 @@
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()"><code class="function">gst_codec_utils_h264_get_level()</code></a> and <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>
 for more details on the parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -362,8 +383,11 @@
 <p>
 Transform a level string from the caps into the level_idc
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
@@ -388,8 +412,11 @@
 object sequence start code. Only the first byte
 (profile_and_level_indication) is used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>vis_obj_seq</code></em> :</span></p></td>
@@ -418,8 +445,11 @@
 object sequence start code. Only the first byte
 (profile_and_level_indication) is used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>vis_obj_seq</code></em> :</span></p></td>
@@ -449,8 +479,11 @@
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()"><code class="function">gst_codec_utils_mpeg4video_get_profile()</code></a> for more details on the
 parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
index 7db001e..8b3ad29 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsdescriptions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
@@ -62,7 +62,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22576800"></a><p>
+<a name="idp19644144"></a><p>
 The above functions provide human-readable strings for media formats
 and decoder/demuxer/depayloader/encoder/muxer/payloader elements for use
 in error dialogs or other messages shown to users.
@@ -91,8 +91,11 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
@@ -120,8 +123,11 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
@@ -150,8 +156,11 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -180,8 +189,11 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
@@ -210,8 +222,11 @@
 use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
 a missing feature from a missing-plugin message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory_name</code></em> :</span></p></td>
@@ -235,8 +250,11 @@
 <p>
 Adds a codec tag describing the format specified by <em class="parameter"><code>caps</code></em> to <em class="parameter"><code>taglist</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -246,7 +264,8 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>codec_tag</code></em> :</span></p></td>
 <td>a GStreamer codec tag such as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS"><span class="type">GST_TAG_AUDIO_CODEC</span></a>,
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS"><span class="type">GST_TAG_VIDEO_CODEC</span></a> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-CODEC:CAPS"><span class="type">GST_TAG_CODEC</span></a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS"><span class="type">GST_TAG_VIDEO_CODEC</span></a> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-CODEC:CAPS"><span class="type">GST_TAG_CODEC</span></a>. If none is specified,
+the function will attempt to detect the appropriate category. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -273,8 +292,11 @@
 Also see the convenience function
 <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()"><code class="function">gst_pb_utils_add_codec_description_to_tag_list()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
index 66a4abd..c6a1bbb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsinstallplugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
@@ -67,7 +67,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25527792"></a><h3>Overview</h3>
+<a name="idp22449248"></a><h3>Overview</h3>
 <p>
 Using this API, applications can request the installation of missing
 GStreamer plugins. These may be missing decoders/demuxers or encoders/muxers
@@ -85,7 +85,7 @@
 From the application perspective, plugin installation is usually triggered
 either
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
 when the application itself has found that it wants or needs to install a
 certain element
@@ -205,7 +205,7 @@
 in addition to the path of the executable itself, which is by convention
 argv[0]):
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
    none to many optional arguments in the form of
    <code class="literal">--foo-bar=val</code>. Example:
@@ -230,7 +230,7 @@
 by '|' characters (but neither the first nor the last character is a '|').
 The fields are:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 <p>
    plugin system identifier, ie. "gstreamer"
@@ -271,7 +271,7 @@
    identifier string for the required component (see below for details about
    how to map this to the package/plugin that needs installing), e.g.
    </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
 <li class="listitem"><p>
       urisource-$(PROTOCOL_REQUIRED), e.g. urisource-http or urisource-mms
     </p></li>
@@ -282,7 +282,7 @@
 <p>
       decoder-$(CAPS_REQUIRED), e.g. (do read below for more details!):
       </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="square">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
 <li class="listitem"><p>decoder-audio/x-vorbis</p></li>
 <li class="listitem"><p>decoder-application/ogg</p></li>
 <li class="listitem"><p>decoder-audio/mpeg, mpegversion=(int)4</p></li>
@@ -319,7 +319,7 @@
 Those unfamiliar with the GStreamer 'caps' system should note a few things
 about the caps string used in the above decoder/encoder case:
   </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
       the first part ("video/mpeg") of the caps string is a GStreamer media
       type and <span class="emphasis"><em>not</em></span> a MIME type. Wherever possible, the
@@ -336,7 +336,7 @@
       fields with fixed values, whereas an introspected string (see below)
       may have fields with non-fixed values. Compare for example:
       </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
 <li class="listitem"><p>
           <code class="literal">audio/mpeg, mpegversion=(int)4</code> vs.
           <code class="literal">audio/mpeg, mpegversion=(int){2, 4}</code>
@@ -358,7 +358,7 @@
 <p>
 The installer should return one of the following exit codes when it exits:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     0 if all of the requested plugins could be installed
     (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-SUCCESS:CAPS"><span class="type">GST_INSTALL_PLUGINS_SUCCESS</span></a>)
@@ -462,8 +462,11 @@
 These codes indicate success or failure of starting an external installer
 program and to what extent the requested plugins could be installed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-INSTALL-PLUGINS-SUCCESS:CAPS"></a><span class="term"><code class="literal">GST_INSTALL_PLUGINS_SUCCESS</code></span></p></td>
@@ -546,8 +549,11 @@
 external plugin installer program has returned. You only need to provide
 a callback function if you are using the asynchronous interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
@@ -589,8 +595,11 @@
 one go (as might be required if there is a demuxer for a certain format
 installed but no suitable video decoder and no suitable audio decoder).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>details</code></em> :</span></p></td>
@@ -636,8 +645,11 @@
 using the other non-GLib main loop. You should almost always use
 <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> instead of this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>details</code></em> :</span></p></td>
@@ -667,8 +679,11 @@
 should not be used for user messages. It is here only to assist
 in debugging.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
@@ -691,8 +706,11 @@
 Checks whether plugin installation (initiated by this application only)
 is currently in progress.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE if plugin installation is in progress, otherwise FALSE</td>
@@ -709,8 +727,11 @@
 that is to be provided by the distribution or operating system vendor
 exists.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE if plugin installation is likely to be supported.</td>
@@ -734,8 +755,11 @@
 <p>
 Creates a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>. Free with
@@ -750,8 +774,11 @@
 <p>
 Frees a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>
@@ -792,8 +819,11 @@
 </pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
index fe56702..11ea5cd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpbutilsmissingplugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22429456"></a><p>
+<a name="idp23298112"></a><p>
 Functions to create, recognise and parse missing-plugins messages for
 applications and elements.
 </p>
@@ -83,7 +83,7 @@
 or playbin if they can't find an appropriate source element or decoder
 element. The application can use these messages for two things:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
     concise error/problem reporting to the user mentioning what exactly
     is missing, see <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a>
@@ -120,8 +120,11 @@
 This function is mainly for applications that call external plugin
 installation mechanisms using one of the two above-mentioned functions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -151,8 +154,11 @@
 describing a missing plugin, given a previously collected missing-plugin
 message
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -174,8 +180,11 @@
 <p>
 Checks whether <em class="parameter"><code>msg</code></em> is a missing plugins message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -200,8 +209,11 @@
 that a decoder element for a particular set of (fixed) caps is missing.
 This function is mainly for use in plugins.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -229,8 +241,11 @@
 that an encoder element for a particular set of (fixed) caps is missing.
 This function is mainly for use in plugins.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -258,8 +273,11 @@
 that a source element for a particular URI protocol is missing. This
 function is mainly for use in plugins.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -288,8 +306,11 @@
 that a sink element for a particular URI protocol is missing. This
 function is mainly for use in plugins.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -318,8 +339,11 @@
 that a certain required element is missing. This function is mainly for
 use in plugins.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -354,8 +378,11 @@
 the case where the application knows exactly what kind of plugin it is
 missing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
@@ -386,8 +413,11 @@
 the case where the application knows exactly what kind of plugin it is
 missing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
@@ -418,8 +448,11 @@
 the case where the application knows exactly what kind of plugin it is
 missing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>factory_name</code></em> :</span></p></td>
@@ -450,8 +483,11 @@
 the case where the application knows exactly what kind of plugin it is
 missing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>decode_caps</code></em> :</span></p></td>
@@ -481,8 +517,11 @@
 the case where the application knows exactly what kind of plugin it is
 missing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encode_caps</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index bb10f7e..642927e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstpluginsbaseversion</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
 <link rel="prev" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
@@ -79,7 +79,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (0)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (1)
 </pre>
 <p>
 The minor version of GStreamer's gst-plugins-base libraries at compile time.
@@ -88,7 +88,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (8)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (2)
 </pre>
 <p>
 The micro version of GStreamer's gst-plugins-base libraries at compile time.
@@ -119,8 +119,11 @@
 <p>
 Gets the version number of the GStreamer Plugins Base libraries.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
@@ -154,8 +157,11 @@
 of GStreamer's gst-plugins-base libraries to the outside world: user agent
 strings, logging, about dialogs ...
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a newly allocated string describing this version of gst-plugins-base</td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstriff.html b/docs/libs/html/gst-plugins-base-libs-gstriff.html
index b67d8a8..0a5a65d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstriff.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstriff.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstriff</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-riff.html" title="Riff Media Library">
 <link rel="prev" href="gstreamer-riff.html" title="Riff Media Library">
@@ -144,8 +144,11 @@
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>codec_fcc</code></em> :</span></p></td>
@@ -202,8 +205,11 @@
 <p>
 Reads a single chunk.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -246,8 +252,11 @@
 This function takes ownership of <em class="parameter"><code>buf</code></em> so it should not be used anymore
 after calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -281,8 +290,11 @@
 <p>
 Parses stream metadata from input data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -313,8 +325,11 @@
 extradata from input data. This function takes ownership of <em class="parameter"><code>buf</code></em>.
 use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -355,8 +370,11 @@
 structure plus optionally some extradata from input data. This
 function takes ownership of <em class="parameter"><code>buf</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -395,8 +413,11 @@
 Parses a video stream´s strf structure plus optionally some
 extradata from input data. This function takes ownership of <em class="parameter"><code>buf</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -434,8 +455,11 @@
 <p>
 Parses a strh structure from input data. Takes ownership of <em class="parameter"><code>buf</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
@@ -470,8 +494,11 @@
 Reads a single chunk of data. 'JUNK' chunks are skipped
 automatically.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
index 93eef45..168e9cf 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtcpbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
@@ -178,7 +178,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17114000"></a><p>
+<a name="idp17276416"></a><p>
 The GstRTPCBuffer helper functions makes it easy to parse and create regular 
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
 of 'application/x-rtcp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
@@ -278,8 +278,11 @@
 <p>
 Different RTCP packet types.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTCP-TYPE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTCP_TYPE_INVALID</code></span></p></td>
@@ -336,8 +339,11 @@
 Data structure that points to a packet at <em class="parameter"><code>offset</code></em> in <em class="parameter"><code>buffer</code></em>.
 The size of the structure is made public to allow stack allocations.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *<em class="structfield"><code><a name="GstRTCPPacket.rtcp"></a>rtcp</code></em>;</span></p></td>
@@ -369,8 +375,11 @@
 <p>
 Different types of SDES content.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTCP-SDES-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTCP_SDES_INVALID</code></span></p></td>
@@ -430,29 +439,34 @@
 <a name="GstRTCPFBType"></a><h3>enum GstRTCPFBType</h3>
 <pre class="programlisting">typedef enum {
   /* generic */
-  GST_RTCP_FB_TYPE_INVALID    = 0,
+  GST_RTCP_FB_TYPE_INVALID        = 0,
   /* RTPFB types */
-  GST_RTCP_RTPFB_TYPE_NACK    = 1,
+  GST_RTCP_RTPFB_TYPE_NACK        = 1,
   /* RTPFB types assigned in RFC 5104 */
-  GST_RTCP_RTPFB_TYPE_TMMBR   = 3,
-  GST_RTCP_RTPFB_TYPE_TMMBN   = 4,
+  GST_RTCP_RTPFB_TYPE_TMMBR       = 3,
+  GST_RTCP_RTPFB_TYPE_TMMBN       = 4,
+  /* RTPFB types assigned in RFC 6051 */
+  GST_RTCP_RTPFB_TYPE_RCTP_SR_REQ = 5,
   /* PSFB types */
-  GST_RTCP_PSFB_TYPE_PLI      = 1,
-  GST_RTCP_PSFB_TYPE_SLI      = 2,
-  GST_RTCP_PSFB_TYPE_RPSI     = 3,
-  GST_RTCP_PSFB_TYPE_AFB      = 15,
+  GST_RTCP_PSFB_TYPE_PLI          = 1,
+  GST_RTCP_PSFB_TYPE_SLI          = 2,
+  GST_RTCP_PSFB_TYPE_RPSI         = 3,
+  GST_RTCP_PSFB_TYPE_AFB          = 15,
   /* PSFB types assigned in RFC 5104 */
-  GST_RTCP_PSFB_TYPE_FIR      = 4,
-  GST_RTCP_PSFB_TYPE_TSTR     = 5,
-  GST_RTCP_PSFB_TYPE_TSTN     = 6,
-  GST_RTCP_PSFB_TYPE_VBCN     = 7,
+  GST_RTCP_PSFB_TYPE_FIR          = 4,
+  GST_RTCP_PSFB_TYPE_TSTR         = 5,
+  GST_RTCP_PSFB_TYPE_TSTN         = 6,
+  GST_RTCP_PSFB_TYPE_VBCN         = 7,
 } GstRTCPFBType;
 </pre>
 <p>
 Different types of feedback messages.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTCP-FB-TYPE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTCP_FB_TYPE_INVALID</code></span></p></td>
@@ -476,6 +490,10 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-RTCP-RTPFB-TYPE-RCTP-SR-REQ:CAPS"></a><span class="term"><code class="literal">GST_RTCP_RTPFB_TYPE_RCTP_SR_REQ</code></span></p></td>
+<td></td>
+</tr>
+<tr>
 <td><p><a name="GST-RTCP-PSFB-TYPE-PLI:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_PLI</code></span></p></td>
 <td>Picture Loss Indication
 </td>
@@ -528,8 +546,11 @@
 respectively. <em class="parameter"><code>data</code></em> will be freed when the buffer is unreffed, so this
 function transfers ownership of <em class="parameter"><code>data</code></em> to the new buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -557,8 +578,11 @@
 bytes of <em class="parameter"><code>data</code></em> and the size to <em class="parameter"><code>len</code></em>. The data will be freed when the buffer
 is freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -587,8 +611,11 @@
 Use this function to validate a packet before using the other functions in
 this module.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -614,8 +641,11 @@
 Check if the data pointed to by <em class="parameter"><code>buffer</code></em> is a valid RTCP packet using
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()"><code class="function">gst_rtcp_buffer_validate_data()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -651,8 +681,11 @@
 Create a new buffer for constructing RTCP packets. The packet will have a
 maximum size of <em class="parameter"><code>mtu</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mtu</code></em> :</span></p></td>
@@ -675,8 +708,11 @@
 Open <em class="parameter"><code>buffer</code></em> for reading or writing, depending on <em class="parameter"><code>flags</code></em>. The resulting RTCP
 buffer state is stored in <em class="parameter"><code>rtcp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -706,8 +742,11 @@
 The function adjusts the size of <em class="parameter"><code>rtcp</code></em> with the total length of all the
 added packets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>rtcp</code></em> :</span></p></td>
 <td>a buffer with an RTCP packet</td>
@@ -721,8 +760,11 @@
 <p>
 Get the number of RTCP packets in <em class="parameter"><code>rtcp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtcp</code></em> :</span></p></td>
@@ -744,8 +786,11 @@
 Initialize a new <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> pointer that points to the first packet in
 <em class="parameter"><code>rtcp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtcp</code></em> :</span></p></td>
@@ -771,8 +816,11 @@
 Move the packet pointer <em class="parameter"><code>packet</code></em> to the next packet in the payload.
 Use <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet" title="gst_rtcp_buffer_get_first_packet ()"><code class="function">gst_rtcp_buffer_get_first_packet()</code></a> to initialize <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -797,8 +845,11 @@
 Add a new packet of <em class="parameter"><code>type</code></em> to <em class="parameter"><code>rtcp</code></em>. <em class="parameter"><code>packet</code></em> will point to the newly created 
 packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtcp</code></em> :</span></p></td>
@@ -828,8 +879,11 @@
 <p>
 Removes the packet pointed to by <em class="parameter"><code>packet</code></em> and moves pointer to the next one
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -851,8 +905,11 @@
 <p>
 Get the packet padding of the packet pointed to by <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -873,8 +930,11 @@
 <p>
 Get the count field in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -896,8 +956,11 @@
 <p>
 Get the packet type of the packet pointed to by <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -920,8 +983,11 @@
 Get the length field of <em class="parameter"><code>packet</code></em>. This is the length of the packet in 
 32-bit words minus one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -947,8 +1013,11 @@
 <p>
 Parse the SR sender info and store the values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -990,8 +1059,11 @@
 <p>
 Set the given values in the SR packet <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1028,8 +1100,11 @@
 <p>
 Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1051,8 +1126,11 @@
 <p>
 Set the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1073,8 +1151,11 @@
 <p>
 Get the number of report blocks in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1104,8 +1185,11 @@
 Parse the values of the <em class="parameter"><code>nth</code></em> report block in <em class="parameter"><code>packet</code></em> and store the result in
 the values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1162,8 +1246,11 @@
 <p>
 Add a new report block to <em class="parameter"><code>packet</code></em> with the given values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1226,8 +1313,11 @@
 <p>
 Note: Not implemented.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1276,8 +1366,11 @@
 <p>
 Get the number of items in the SDES packet <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1298,8 +1391,11 @@
 <p>
 Move to the first SDES item in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1320,8 +1416,11 @@
 <p>
 Move to the next SDES item in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1342,8 +1441,11 @@
 <p>
 Get the SSRC of the current SDES item.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1364,8 +1466,11 @@
 <p>
 Move to the first SDES entry in the current item.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1387,8 +1492,11 @@
 <p>
 Move to the next SDES entry in the current item.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1420,8 +1528,11 @@
 that this UTF8 string is NOT null-terminated. Use
 <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-terminated copy of the entry.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1461,8 +1572,11 @@
 This function is like <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()"><code class="function">gst_rtcp_packet_sdes_get_entry()</code></a> but it returns a
 null-terminated copy of the data instead. use <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1499,8 +1613,11 @@
 <p>
 Add a new SDES item for <em class="parameter"><code>ssrc</code></em> to <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1530,8 +1647,11 @@
 <p>
 Add a new SDES entry to the current item in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1567,8 +1687,11 @@
 <p>
 Get the number of SSRC fields in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1590,8 +1713,11 @@
 <p>
 Get the <em class="parameter"><code>nth</code></em> SSRC of the BYE <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1617,8 +1743,11 @@
 <p>
 Add <em class="parameter"><code>ssrc</code></em> to the BYE <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1648,8 +1777,11 @@
 <p>
 Adds <em class="parameter"><code>len</code></em> SSRCs in <em class="parameter"><code>ssrc</code></em> to BYE <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1682,8 +1814,11 @@
 <p>
 Get the length of the reason string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1705,8 +1840,11 @@
 <p>
 Get the reason in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1729,8 +1867,11 @@
 <p>
 Set the reason string to <em class="parameter"><code>reason</code></em> in <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1755,8 +1896,11 @@
 <p>
 Get the feedback message type of the FB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1778,8 +1922,11 @@
 <p>
 Set the feedback message type of the FB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1800,8 +1947,11 @@
 <p>
 Get the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1823,8 +1973,11 @@
 <p>
 Set the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1845,8 +1998,11 @@
 <p>
 Get the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1868,8 +2024,11 @@
 <p>
 Set the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1891,8 +2050,11 @@
 Get the length of the Feedback Control Information attached to a
 RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1915,8 +2077,11 @@
 Set the length of the Feedback Control Information attached to a
 RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1942,8 +2107,11 @@
 <p>
 Get the Feedback Control Information attached to a RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
@@ -1967,8 +2135,11 @@
 number of seconds since 1900 and, in the lower 32 bits, the fractional
 seconds. The resulting value will be the number of nanoseconds since 1970.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ntptime</code></em> :</span></p></td>
@@ -1992,8 +2163,11 @@
 bits, the fractional seconds. The resulting value can be used as an ntptime
 for constructing SR RTCP packets.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>unixtime</code></em> :</span></p></td>
@@ -2014,8 +2188,11 @@
 Convert <em class="parameter"><code>name</code></em> into a <em class="parameter"><code>GstRTCPSDESType</code></em>. <em class="parameter"><code>name</code></em> is typically a key in a
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> containing SDES items.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
@@ -2037,8 +2214,11 @@
 Converts <em class="parameter"><code>type</code></em> to the string equivalent. The string is typically used as a
 key in a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> containing SDES items.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
index 7319db6..c861bdf 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbaseaudiopayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gstreamer-rtp.html" title="RTP Library">
@@ -110,7 +110,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14931920"></a><h3>Usage</h3>
+<a name="idp15980400"></a><h3>Usage</h3>
 <p>
 To use this base class, your child element needs to call either
 <a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-frame-based" title="gst_rtp_base_audio_payload_set_frame_based ()"><code class="function">gst_rtp_base_audio_payload_set_frame_based()</code></a> or
@@ -144,8 +144,11 @@
 <p>
 Base class for audio RTP payloader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass" title="struct GstRTPBasePayloadClass"><span class="type">GstRTPBasePayloadClass</span></a> <em class="structfield"><code><a name="GstRTPBaseAudioPayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>the parent class</td>
@@ -161,8 +164,11 @@
 Tells <a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> that the child element is for a frame based
 audio codec
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbaseaudiopayload</code></em> :</span></p></td>
 <td>a pointer to the element.</td>
@@ -179,8 +185,11 @@
 <p>
 Sets the options for frame based audio codecs.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbaseaudiopayload</code></em> :</span></p></td>
@@ -206,8 +215,11 @@
 Tells <a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> that the child element is for a sample based
 audio codec
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbaseaudiopayload</code></em> :</span></p></td>
 <td>a pointer to the element.</td>
@@ -223,8 +235,11 @@
 <p>
 Sets the options for sample based audio codecs.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbaseaudiopayload</code></em> :</span></p></td>
@@ -245,8 +260,11 @@
 <p>
 Gets the internal adapter used by the depayloader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbaseaudiopayload</code></em> :</span></p></td>
@@ -273,8 +291,11 @@
 payload. Set the timestamp on the new buffer to <em class="parameter"><code>timestamp</code></em> before pushing
 the buffer downstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>baseaudiopayload</code></em> :</span></p></td>
@@ -317,8 +338,11 @@
 If <em class="parameter"><code>payload_len</code></em> is -1, all pending bytes will be flushed. If <em class="parameter"><code>timestamp</code></em> is
 -1, the timestamp will be calculated automatically.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>baseaudiopayload</code></em> :</span></p></td>
@@ -351,8 +375,11 @@
 <p>
 Sets the options for sample based audio codecs.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtpbaseaudiopayload</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
index 715d41e..2896fb9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbasedepayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html" title="gstrtpbaseaudiopayload">
@@ -103,8 +103,11 @@
 <p>
 Base class for audio RTP payloader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstRTPBaseDepayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -154,8 +157,11 @@
 This function will by default apply the last incomming timestamp on
 the outgoing buffer when it didn't have a timestamp already.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
@@ -183,8 +189,11 @@
 Push <em class="parameter"><code>out_list</code></em> to the peer of <em class="parameter"><code>filter</code></em>. This function takes ownership of
 <em class="parameter"><code>out_list</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
index a1b10b3..7adee4b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbasepayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbasedepayload.html" title="gstrtpbasedepayload">
@@ -130,8 +130,11 @@
 <p>
 Base class for audio RTP payloader.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstRTPBasePayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -172,8 +175,11 @@
 <p>
 Get access to the configured MTU of <em class="parameter"><code>payload</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>
@@ -189,8 +195,11 @@
 <p>
 Get access to the configured payload type of <em class="parameter"><code>payload</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>
@@ -206,8 +215,11 @@
 <p>
 Get access to the sinkpad of <em class="parameter"><code>payload</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>
@@ -223,8 +235,11 @@
 <p>
 Get access to the srcpad of <em class="parameter"><code>payload</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>
@@ -242,8 +257,11 @@
 Check if the packet with <em class="parameter"><code>size</code></em> and <em class="parameter"><code>duration</code></em> would exceed the configured
 maximum size.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
@@ -279,8 +297,11 @@
 <p>
 This function takes ownership of <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
@@ -311,8 +332,11 @@
 <p>
 This function takes ownership of <em class="parameter"><code>list</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
@@ -344,8 +368,11 @@
 of the payloader. Subclasses must call this method before calling
 <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#gst-rtp-base-payload-push" title="gst_rtp_base_payload_push ()"><code class="function">gst_rtp_base_payload_push()</code></a> or <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#gst-rtp-base-payload-set-outcaps" title="gst_rtp_base_payload_set_outcaps ()"><code class="function">gst_rtp_base_payload_set_outcaps()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
@@ -384,8 +411,11 @@
 Variable arguments should be in the form field name, field type
 (as a GType), value(s).  The last variable argument should be NULL.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
index e91eb11..c074d80 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtpbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtpbasepayload.html" title="gstrtpbasepayload">
@@ -154,7 +154,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16569680"></a><p>
+<a name="idp17196608"></a><p>
 The GstRTPBuffer helper functions makes it easy to parse and create regular 
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
 'application/x-rtp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
@@ -190,8 +190,11 @@
 If <em class="parameter"><code>pad_len</code></em> is &gt;0, the padding bit will be set. All other RTP header fields
 will be set to 0/FALSE.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -223,8 +226,11 @@
 respectively. <em class="parameter"><code>data</code></em> will be freed when the buffer is unreffed, so this
 function transfers ownership of <em class="parameter"><code>data</code></em> to the new buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -252,8 +258,11 @@
 bytes of <em class="parameter"><code>data</code></em> and the size to <em class="parameter"><code>len</code></em>. The data will be freed when the buffer
 is freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -283,8 +292,11 @@
 <em class="parameter"><code>csrc_count</code></em> CSRCs, a payload length of <em class="parameter"><code>payload_len</code></em> and padding of <em class="parameter"><code>pad_len</code></em>.
 All other RTP header fields will be set to 0/FALSE.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload_len</code></em> :</span></p></td>
@@ -318,8 +330,11 @@
 <em class="parameter"><code>csrc_count</code></em> and can be calculated with <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len" title="gst_rtp_buffer_calc_payload_len ()"><code class="function">gst_rtp_buffer_calc_payload_len()</code></a>.
 All RTP header fields will be set to 0/FALSE.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet_len</code></em> :</span></p></td>
@@ -355,8 +370,11 @@
 Data structure that points to an RTP packet.
 The size of the structure is made public to allow stack allocations.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstRTPBuffer.buffer"></a>buffer</code></em>;</span></p></td>
@@ -396,8 +414,11 @@
 <p>
 Map the contents of <em class="parameter"><code>buffer</code></em> into <em class="parameter"><code>rtp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -428,8 +449,11 @@
 <p>
 Unmap <em class="parameter"><code>rtp</code></em> previously mapped with <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-map" title="gst_rtp_buffer_map ()"><code class="function">gst_rtp_buffer_map()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a>
@@ -445,8 +469,11 @@
 Calculate the header length of an RTP packet with <em class="parameter"><code>csrc_count</code></em> CSRC entries.
 An RTP packet can have at most 15 CSRC entries.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>csrc_count</code></em> :</span></p></td>
@@ -469,8 +496,11 @@
 Calculate the total length of an RTP packet with a payload size of <em class="parameter"><code>payload_len</code></em>,
 a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="parameter"><code>csrc_count</code></em> CSRC entries.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload_len</code></em> :</span></p></td>
@@ -501,8 +531,11 @@
 Calculate the length of the payload of an RTP packet with size <em class="parameter"><code>packet_len</code></em>,
 a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="parameter"><code>csrc_count</code></em> CSRC entries.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet_len</code></em> :</span></p></td>
@@ -532,8 +565,11 @@
 Set the total <em class="parameter"><code>rtp</code></em> size to <em class="parameter"><code>len</code></em>. The data in the buffer will be made
 larger if needed. Any padding will be removed from the packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -553,8 +589,11 @@
 <p>
 Return the total length of the packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -575,8 +614,11 @@
 Return the total length of the header in <em class="parameter"><code>buffer</code></em>. This include the length of
 the fixed header, the CSRC list and the extension header.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -596,8 +638,11 @@
 <p>
 Get the version number of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -618,8 +663,11 @@
 <p>
 Set the version of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>version</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -639,8 +687,11 @@
 <p>
 Check if the padding bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -661,8 +712,11 @@
 <p>
 Set the padding bit on the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>padding</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -687,8 +741,11 @@
 <p>
 NOTE: This function does not work correctly.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -708,8 +765,11 @@
 <p>
 Check if the extension bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -730,8 +790,11 @@
 <p>
 Set the extension bit on the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>extension</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -760,8 +823,11 @@
 If <em class="parameter"><code>buffer</code></em> did not contain an extension, this function will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
 with <em class="parameter"><code>bits</code></em>, <em class="parameter"><code>data</code></em> and <em class="parameter"><code>wordlen</code></em> unchanged.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -796,8 +862,11 @@
 <p>
 Get the SSRC of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -818,8 +887,11 @@
 <p>
 Set the SSRC on the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>ssrc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -839,8 +911,11 @@
 <p>
 Get the CSRC count of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -861,8 +936,11 @@
 <p>
 Get the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -888,8 +966,11 @@
 <p>
 Modify the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>csrc</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -914,8 +995,11 @@
 <p>
 Check if the marker bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -936,8 +1020,11 @@
 <p>
 Set the marker bit on the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>marker</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -957,8 +1044,11 @@
 <p>
 Get the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -979,8 +1069,11 @@
 <p>
 Set the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>payload_type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1000,8 +1093,11 @@
 <p>
 Get the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1022,8 +1118,11 @@
 <p>
 Set the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>seq</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1043,8 +1142,11 @@
 <p>
 Get the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1065,8 +1167,11 @@
 <p>
 Set the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>timestamp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1088,8 +1193,11 @@
 will internally create a subbuffer of <em class="parameter"><code>buffer</code></em> so that a memcpy can be
 avoided.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1114,8 +1222,11 @@
 are skipped in the payload and the subbuffer will be of size <em class="parameter"><code>len</code></em>.
 If <em class="parameter"><code>len</code></em> is -1 the total payload starting from <em class="parameter"><code>offset</code></em> if subbuffered.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1143,8 +1254,11 @@
 <p>
 Get the length of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1165,8 +1279,11 @@
 Get a pointer to the payload data in <em class="parameter"><code>buffer</code></em>. This pointer is valid as long
 as a reference to <em class="parameter"><code>buffer</code></em> is held.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1188,8 +1305,11 @@
 <p>
 Get the default clock-rate for the static payload type <em class="parameter"><code>payload_type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload_type</code></em> :</span></p></td>
@@ -1212,8 +1332,11 @@
 Compare two sequence numbers, taking care of wraparounds. This function
 returns the difference between <em class="parameter"><code>seqnum1</code></em> and <em class="parameter"><code>seqnum2</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>seqnum1</code></em> :</span></p></td>
@@ -1244,8 +1367,11 @@
 This function makes sure that the returned value is a constantly increasing
 value even in the case where there is a timestamp wraparound.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>exttimestamp</code></em> :</span></p></td>
@@ -1273,8 +1399,11 @@
 extension header. If the existing extension data is not large enough, it will
 be made larger.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1309,8 +1438,11 @@
 Parses RFC 5285 style header extensions with a one byte header. It will
 return the nth extension with the requested id.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1355,8 +1487,11 @@
 Parses RFC 5285 style header extensions with a two bytes header. It will
 return the nth extension with the requested id.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1409,8 +1544,11 @@
 a two bytes header as described in RFC 5285. In that case, use
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" title="gst_rtp_buffer_add_extension_twobytes_header ()"><code class="function">gst_rtp_buffer_add_extension_twobytes_header()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
@@ -1455,8 +1593,11 @@
 a one byte header as described in RFC 5285. In that case, use
 <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" title="gst_rtp_buffer_add_extension_onebyte_header ()"><code class="function">gst_rtp_buffer_add_extension_onebyte_header()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rtp</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
index 043ebae..fb0dcc1 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtphdrext</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
@@ -40,6 +40,18 @@
 <pre class="synopsis">
 #include &lt;gst/rtp/gstrtphdrext.h&gt;
 
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-56" title="gst_rtp_hdrext_get_ntp_56 ()">gst_rtp_hdrext_get_ntp_56</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-64" title="gst_rtp_hdrext_get_ntp_64 ()">gst_rtp_hdrext_get_ntp_64</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-56" title="gst_rtp_hdrext_set_ntp_56 ()">gst_rtp_hdrext_set_ntp_56</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-64" title="gst_rtp_hdrext_set_ntp_64 ()">gst_rtp_hdrext_set_ntp_64</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -47,6 +59,153 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtphdrext.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-rtp-hdrext-get-ntp-56"></a><h3>gst_rtp_hdrext_get_ntp_56 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_hdrext_get_ntp_56           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>);</pre>
+<p>
+Reads the NTP time from the <em class="parameter"><code>size</code></em> NTP-56 extension bytes in <em class="parameter"><code>data</code></em> and store the
+result in <em class="parameter"><code>ntptime</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to read from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ntptime</code></em> :</span></p></td>
+<td>the result NTP time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtp-hdrext-get-ntp-64"></a><h3>gst_rtp_hdrext_get_ntp_64 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_hdrext_get_ntp_64           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>);</pre>
+<p>
+Reads the NTP time from the <em class="parameter"><code>size</code></em> NTP-64 extension bytes in <em class="parameter"><code>data</code></em> and store the
+result in <em class="parameter"><code>ntptime</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to read from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ntptime</code></em> :</span></p></td>
+<td>the result NTP time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtp-hdrext-set-ntp-56"></a><h3>gst_rtp_hdrext_set_ntp_56 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_hdrext_set_ntp_56           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);</pre>
+<p>
+Writes the NTP time in <em class="parameter"><code>ntptime</code></em> to the format required for the NTP-56 header
+extension. <em class="parameter"><code>data</code></em> must hold at least <span class="type">GST_RTP_HDREXT_NTP_56_SIZE</span> bytes.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to write to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ntptime</code></em> :</span></p></td>
+<td>the NTP time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtp-hdrext-set-ntp-64"></a><h3>gst_rtp_hdrext_set_ntp_64 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtp_hdrext_set_ntp_64           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);</pre>
+<p>
+Writes the NTP time in <em class="parameter"><code>ntptime</code></em> to the format required for the NTP-64 header
+extension. <em class="parameter"><code>data</code></em> must hold at least <span class="type">GST_RTP_HDREXT_NTP_64_SIZE</span> bytes.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to write to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ntptime</code></em> :</span></p></td>
+<td>the NTP time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
index cab06be..c5a6650 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtppayloads</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtp.html" title="RTP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
@@ -53,7 +53,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp16194368"></a><p>
+<a name="idp17830112"></a><p>
 The GstRTPPayloads helper functions makes it easy to deal with static and dynamic
 payloads. Its main purpose is to retrieve properties such as the default clock-rate 
 and get session bandwidth information.
@@ -121,8 +121,11 @@
 unassigned: 24, 27, 29, 30, 35-71, 77-95
 Reserved for RTCP conflict avoidance: 72-76
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTP-PAYLOAD-PCMU:CAPS"></a><span class="term"><code class="literal">GST_RTP_PAYLOAD_PCMU</code></span></p></td>
@@ -265,8 +268,11 @@
 <p>
 Check if <em class="parameter"><code>pt</code></em> is a dynamic payload type.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td>
 <td>a payload type</td>
@@ -288,8 +294,11 @@
 <p>
 Structure holding default payload type information.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstRTPPayloadInfo.payload-type"></a>payload_type</code></em>;</span></p></td>
@@ -334,8 +343,11 @@
 <p>
 The search for <em class="parameter"><code>encoding_name</code></em> will be performed in a case insensitve way.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -361,8 +373,11 @@
 mostly used to get the default clock-rate and bandwidth for static payload
 types specified with <em class="parameter"><code>payload_type</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>payload_type</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
index f106977..2c1149b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspconnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gstreamer-rtsp.html" title="RTSP Library">
@@ -125,6 +125,12 @@
                                                          <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-get-send-backlog" title="gst_rtsp_watch_get_send_backlog ()">gst_rtsp_watch_get_send_backlog</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *bytes</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *messages</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()">gst_rtsp_watch_set_send_backlog</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> bytes</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> messages</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -158,8 +164,11 @@
 <p>
 A copy of <em class="parameter"><code>url</code></em> will be made.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
@@ -193,8 +202,11 @@
 socket <em class="parameter"><code>socket</code></em>. The <em class="parameter"><code>initial_buffer</code></em> contains zero terminated data already
 read from <em class="parameter"><code>socket</code></em> which should be used before starting to read new data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
@@ -237,8 +249,11 @@
 Accept a new connection on <em class="parameter"><code>socket</code></em> and create a new <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> for
 handling communication on new socket.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
@@ -275,8 +290,11 @@
 <p>
 This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -303,8 +321,11 @@
 Close the connected <em class="parameter"><code>conn</code></em>. After this call, the connection is in the same
 state as when it was first created.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -326,8 +347,11 @@
 <p>
 Close and free <em class="parameter"><code>conn</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -357,8 +381,11 @@
 <p>
 This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -402,8 +429,11 @@
 <p>
 This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -451,8 +481,11 @@
 <p>
 This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -493,8 +526,11 @@
 <p>
 This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -532,8 +568,11 @@
 <p>
 This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -565,8 +604,11 @@
 <p>
 Calculate the next timeout for <em class="parameter"><code>conn</code></em>, storing the result in <em class="parameter"><code>timeout</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -592,8 +634,11 @@
 <p>
 Reset the timeout of <em class="parameter"><code>conn</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -618,8 +663,11 @@
 and future actions on <em class="parameter"><code>conn</code></em> will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> until the connection
 is set to non-flushing mode again.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -649,8 +697,11 @@
 Configure <em class="parameter"><code>conn</code></em> for authentication mode <em class="parameter"><code>method</code></em> with <em class="parameter"><code>user</code></em> and <em class="parameter"><code>pass</code></em> as the
 user and password respectively.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -690,8 +741,11 @@
 in the WWW-Authenticate response header and can include realm, domain,
 nonce, opaque, stale, algorithm, qop as per RFC2617.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -717,8 +771,11 @@
 <p>
 Clear the list of authentication directives stored in <em class="parameter"><code>conn</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a>
@@ -734,8 +791,11 @@
 <p>
 Configure <em class="parameter"><code>conn</code></em> to use the specified DSCP value.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -762,8 +822,11 @@
 <p>
 Set the IP address of the server.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -784,8 +847,11 @@
 <p>
 Retrieve the IP address of the other end of <em class="parameter"><code>conn</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -807,8 +873,11 @@
 <p>
 Retrieve the URL of the other end of <em class="parameter"><code>conn</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -832,8 +901,11 @@
 Set the HTTP tunneling state of the connection. This must be configured before
 the <em class="parameter"><code>conn</code></em> is connected.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -854,8 +926,11 @@
 <p>
 Get the tunneling state of the connection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -876,8 +951,11 @@
 <p>
 Get the tunnel session id the connection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -909,8 +987,11 @@
 If <em class="parameter"><code>conn2</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then only the base64 decoding context will be setup for
 <em class="parameter"><code>conn</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -939,8 +1020,11 @@
 messages in addition to the RTSP messages. It will also disable the
 automatic handling of setting up an HTTP tunnel.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -964,8 +1048,11 @@
 <p>
 Set the proxy host and port.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -1001,8 +1088,11 @@
 <p>
 Get the file descriptor for writing.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -1048,8 +1138,11 @@
 <p>
 Callback functions from a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstRTSPWatchFuncs.message-received"></a>message_received</code></em> ()</span></p></td>
@@ -1108,8 +1201,11 @@
 <p>
 <em class="parameter"><code>conn</code></em> must exist for the entire lifetime of the watch.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
@@ -1145,8 +1241,11 @@
 Decreases the reference count of <em class="parameter"><code>watch</code></em> by one. If the resulting reference
 count is zero the watch and associated memory will be destroyed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>
@@ -1162,8 +1261,11 @@
 <p>
 Adds a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> to a context so that it will be executed within that context.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
@@ -1189,8 +1291,11 @@
 Reset <em class="parameter"><code>watch</code></em>, this is usually called after <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-do-tunnel" title="gst_rtsp_connection_do_tunnel ()"><code class="function">gst_rtsp_connection_do_tunnel()</code></a>
 when the file descriptors of the connection might have changed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>
@@ -1212,8 +1317,11 @@
 <em class="parameter"><code>id</code></em> will be non-zero and used as the ID argument in the message_sent
 callback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
@@ -1256,8 +1364,16 @@
 <p>
 This function will take ownership of <em class="parameter"><code>data</code></em> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> it after use.
 </p>
-<div class="variablelist"><table border="0">
+<p>
+If the amount of queued data exceeds the limits set with
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()"><code class="function">gst_rtsp_watch_set_send_backlog()</code></a>, this function will return
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
@@ -1266,7 +1382,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to queue</td>
+<td>the data to queue. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
@@ -1281,11 +1398,84 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</td>
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success. <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a> when the backlog limits
+are reached.</td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-watch-get-send-backlog"></a><h3>gst_rtsp_watch_get_send_backlog ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_rtsp_watch_get_send_backlog     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *bytes</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *messages</code></em>);</pre>
+<p>
+Get the maximum amount of bytes and messages that will be queued in <em class="parameter"><code>watch</code></em>.
+See <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()"><code class="function">gst_rtsp_watch_set_send_backlog()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bytes</code></em> :</span></p></td>
+<td>maximum bytes. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>messages</code></em> :</span></p></td>
+<td>maximum messages. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.1.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-rtsp-watch-set-send-backlog"></a><h3>gst_rtsp_watch_set_send_backlog ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_rtsp_watch_set_send_backlog     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> bytes</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> messages</code></em>);</pre>
+<p>
+Set the maximum amount of bytes and messages that will be queued in <em class="parameter"><code>watch</code></em>.
+When the maximum amounts are exceeded, <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" title="gst_rtsp_watch_write_data ()"><code class="function">gst_rtsp_watch_write_data()</code></a> and
+<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message" title="gst_rtsp_watch_send_message ()"><code class="function">gst_rtsp_watch_send_message()</code></a> will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a>.
+</p>
+<p>
+A value of 0 for <em class="parameter"><code>bytes</code></em> or <em class="parameter"><code>messages</code></em> means no limits.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bytes</code></em> :</span></p></td>
+<td>maximum bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>messages</code></em> :</span></p></td>
+<td>maximum messages</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.1.1</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspconnection.see-also"></a><h2>See Also</h2>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
index 8b5ae83..c1fb381 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspdefs</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
@@ -59,6 +59,7 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple" title="gst_rtsp_header_allow_multiple ()">gst_rtsp_header_allow_multiple</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</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="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text" title="gst_rtsp_status_as_text ()">gst_rtsp_status_as_text</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</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="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()">gst_rtsp_options_as_text</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-from-text" title="gst_rtsp_options_from_text ()">gst_rtsp_options_from_text</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> *options</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="returnvalue">GstRTSPHeaderField</span></a>  <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field" title="gst_rtsp_find_header_field ()">gst_rtsp_find_header_field</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> *header</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method" title="gst_rtsp_find_method ()">gst_rtsp_find_method</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> *method</code></em>);
 </pre>
@@ -80,8 +81,11 @@
 Macro that checks the return value of <em class="parameter"><code>stmt</code></em> and jumps to <em class="parameter"><code>label</code></em> when it does
 not equal <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>stmt</code></em> :</span></p></td>
@@ -114,8 +118,11 @@
 <p>
 The possible events for the connection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-EV-READ:CAPS"></a><span class="term"><code class="literal">GST_RTSP_EV_READ</code></span></p></td>
@@ -159,8 +166,11 @@
 <p>
 Result codes from the RTSP functions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-OK:CAPS"></a><span class="term"><code class="literal">GST_RTSP_OK</code></span></p></td>
@@ -267,8 +277,11 @@
 <p>
 The possible network families.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-FAM-NONE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_FAM_NONE</code></span></p></td>
@@ -303,8 +316,11 @@
 <p>
 The different RTSP states.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-STATE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_STATE_INVALID</code></span></p></td>
@@ -351,8 +367,11 @@
 <p>
 The supported RTSP versions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-VERSION-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_VERSION_INVALID</code></span></p></td>
@@ -395,8 +414,11 @@
 <p>
 The different supported RTSP methods.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_INVALID</code></span></p></td>
@@ -483,8 +505,11 @@
 <p>
 Authentication methods, ordered by strength
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-AUTH-NONE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_AUTH_NONE</code></span></p></td>
@@ -681,8 +706,11 @@
 <p>
 Convert <em class="parameter"><code>result</code></em> in a human readable string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
@@ -703,8 +731,11 @@
 <p>
 Convert <em class="parameter"><code>method</code></em> to a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
@@ -725,8 +756,11 @@
 <p>
 Convert <em class="parameter"><code>version</code></em> to a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>version</code></em> :</span></p></td>
@@ -747,8 +781,11 @@
 <p>
 Convert <em class="parameter"><code>field</code></em> to a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>field</code></em> :</span></p></td>
@@ -769,8 +806,11 @@
 <p>
 Check whether <em class="parameter"><code>field</code></em> may appear multiple times in a message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>field</code></em> :</span></p></td>
@@ -792,8 +832,11 @@
 <p>
 Convert <em class="parameter"><code>code</code></em> to a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
@@ -814,8 +857,11 @@
 <p>
 Convert <em class="parameter"><code>options</code></em> to a string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
@@ -831,13 +877,43 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-rtsp-options-from-text"></a><h3>gst_rtsp_options_from_text ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>       gst_rtsp_options_from_text          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *options</code></em>);</pre>
+<p>
+Convert the comma separated list <em class="parameter"><code>options</code></em> to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> bitwise or
+of methods. This functions is the reverse of <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()"><code class="function">gst_rtsp_options_as_text()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
+<td>a comma separated list of options</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.1.1</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-rtsp-find-header-field"></a><h3>gst_rtsp_find_header_field ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="returnvalue">GstRTSPHeaderField</span></a>  gst_rtsp_find_header_field          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>header</code></em> to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
@@ -858,8 +934,11 @@
 <p>
 Convert <em class="parameter"><code>method</code></em> to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
index db96b21..43a181e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspextension</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
@@ -49,7 +49,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6385888"></a><p>
+<a name="idp15921088"></a><p>
  This interface is implemented e.g. by the Windows Media Streaming RTSP
  exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
 </p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
index 18ac035..50acdf3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspmessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
@@ -129,8 +129,11 @@
 <p>
 The type of a message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-MESSAGE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_RTSP_MESSAGE_INVALID</code></span></p></td>
@@ -192,8 +195,11 @@
 An RTSP message containing request, response or data messages. Depending on
 the <em class="parameter"><code>type</code></em>, the appropriate structure may be accessed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType" title="enum GstRTSPMsgType"><span class="type">GstRTSPMsgType</span></a> <em class="structfield"><code><a name="GstRTSPMessage.type"></a>type</code></em>;</span></p></td>
 <td>the message type</td>
@@ -207,8 +213,11 @@
 <p>
 Create a new initialized <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -230,8 +239,11 @@
 Initialize <em class="parameter"><code>msg</code></em>. This function is mostly used when <em class="parameter"><code>msg</code></em> is allocated on the
 stack. The reverse operation of this is <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()"><code class="function">gst_rtsp_message_unset()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -255,8 +267,11 @@
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-request" title="gst_rtsp_message_init_request ()"><code class="function">gst_rtsp_message_init_request()</code></a>, <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-response" title="gst_rtsp_message_init_response ()"><code class="function">gst_rtsp_message_init_response()</code></a> and
 <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data" title="gst_rtsp_message_init_data ()"><code class="function">gst_rtsp_message_init_data()</code></a> on stack allocated <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> structures.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -278,8 +293,11 @@
 <p>
 Free the memory used by <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -300,8 +318,11 @@
 <p>
 Get the message type of <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -325,8 +346,11 @@
 Create a new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>method</code></em> and <em class="parameter"><code>uri</code></em> and store the result
 request message in <em class="parameter"><code>msg</code></em>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -359,8 +383,11 @@
 Initialize <em class="parameter"><code>msg</code></em> as a request message with <em class="parameter"><code>method</code></em> and <em class="parameter"><code>uri</code></em>. To clear <em class="parameter"><code>msg</code></em>
 again, use <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()"><code class="function">gst_rtsp_message_unset()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -398,8 +425,11 @@
 <p>
 <em class="parameter"><code>uri</code></em> remains valid for as long as <em class="parameter"><code>msg</code></em> is valid and unchanged.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -446,8 +476,11 @@
 When <em class="parameter"><code>request</code></em> is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
 response message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -492,8 +525,11 @@
 When <em class="parameter"><code>request</code></em> is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
 response message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -536,8 +572,11 @@
 <p>
 <em class="parameter"><code>reason</code></em> remains valid for as long as <em class="parameter"><code>msg</code></em> is valid and unchanged.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -575,8 +614,11 @@
 Create a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>channel</code></em> and store the
 result message in <em class="parameter"><code>msg</code></em>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -602,8 +644,11 @@
 <p>
 Initialize a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> for <em class="parameter"><code>channel</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -629,8 +674,11 @@
 <p>
 Parse the data message <em class="parameter"><code>msg</code></em> and store the channel in <em class="parameter"><code>channel</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -659,8 +707,11 @@
 Add a header with key <em class="parameter"><code>field</code></em> and <em class="parameter"><code>value</code></em> to <em class="parameter"><code>msg</code></em>. This function takes a copy
 of <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -694,8 +745,11 @@
 Add a header with key <em class="parameter"><code>field</code></em> and <em class="parameter"><code>value</code></em> to <em class="parameter"><code>msg</code></em>. This function takes
 ownership of <em class="parameter"><code>value</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -709,7 +763,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value of the header</td>
+<td>the value of the header. <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>
@@ -728,8 +783,11 @@
 Remove the <em class="parameter"><code>indx</code></em> header with key <em class="parameter"><code>field</code></em> from <em class="parameter"><code>msg</code></em>. If <em class="parameter"><code>indx</code></em> equals -1, all
 headers will be removed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -763,8 +821,11 @@
 Get the <em class="parameter"><code>indx</code></em> header value with key <em class="parameter"><code>field</code></em> from <em class="parameter"><code>msg</code></em>. The result in <em class="parameter"><code>value</code></em>
 stays valid as long as it remains present in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -803,8 +864,11 @@
 Append the currently configured headers in <em class="parameter"><code>msg</code></em> to the <a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> <em class="parameter"><code>str</code></em> suitable
 for transmission.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -833,8 +897,11 @@
 <p>
 Set the body of <em class="parameter"><code>msg</code></em> to a copy of <em class="parameter"><code>data</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -869,8 +936,11 @@
 Set the body of <em class="parameter"><code>msg</code></em> to <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>. This method takes ownership of
 <em class="parameter"><code>data</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -905,8 +975,11 @@
 Get the body of <em class="parameter"><code>msg</code></em>. <em class="parameter"><code>data</code></em> remains valid for as long as <em class="parameter"><code>msg</code></em> is valid and
 unchanged.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -941,8 +1014,11 @@
 Take the body of <em class="parameter"><code>msg</code></em> and store it in <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>. After this method,
 the body and size of <em class="parameter"><code>msg</code></em> will be set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> and 0 respectively.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -974,8 +1050,11 @@
 <p>
 Dump the contents of <em class="parameter"><code>msg</code></em> to stdout.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
index fc16b07..c5b448b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtsprange</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
@@ -38,15 +38,21 @@
 <div class="refsynopsisdiv">
 <a name="gst-plugins-base-libs-gstrtsprange.synopsis"></a><h2>Synopsis</h2>
 <pre class="synopsis">
-#include &lt;gst/rtsp/gstrtsrange.h&gt;
+#include &lt;gst/rtsp/gstrtsprange.h&gt;
 
 enum                <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit">GstRTSPRangeUnit</a>;
 struct              <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange">GstRTSPTimeRange</a>;
 struct              <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime" title="struct GstRTSPTime">GstRTSPTime</a>;
+struct              <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" title="struct GstRTSPTime2">GstRTSPTime2</a>;
 enum                <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType" title="enum GstRTSPTimeType">GstRTSPTimeType</a>;
 <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>       <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse" title="gst_rtsp_range_parse ()">gst_rtsp_range_parse</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> *rangestr</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> **range</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times" title="gst_rtsp_range_get_times ()">gst_rtsp_range_get_times</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</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="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string" title="gst_rtsp_range_to_string ()">gst_rtsp_range_to_string</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-convert-units" title="gst_rtsp_range_convert_units ()">gst_rtsp_range_convert_units</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit"><span class="type">GstRTSPRangeUnit</span></a> unit</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free" title="gst_rtsp_range_free ()">gst_rtsp_range_free</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);
 </pre>
 </div>
@@ -73,8 +79,11 @@
 <p>
 Different possible time range units.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-RANGE-SMPTE:CAPS"></a><span class="term"><code class="literal">GST_RTSP_RANGE_SMPTE</code></span></p></td>
@@ -110,15 +119,20 @@
 <pre class="programlisting">struct GstRTSPTimeRange {
   GstRTSPRangeUnit unit;
 
-  GstRTSPTime min;
-  GstRTSPTime max;
+  GstRTSPTime  min;
+  GstRTSPTime  max;
+  GstRTSPTime2 min2;
+  GstRTSPTime2 max2;
 };
 </pre>
 <p>
 A time range.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit"><span class="type">GstRTSPRangeUnit</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.unit"></a>unit</code></em>;</span></p></td>
@@ -132,6 +146,14 @@
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime" title="struct GstRTSPTime"><span class="type">GstRTSPTime</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.max"></a>max</code></em>;</span></p></td>
 <td>the maximum interval</td>
 </tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" title="struct GstRTSPTime2"><span class="type">GstRTSPTime2</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.min2"></a>min2</code></em>;</span></p></td>
+<td>extra fields in the minimum interval (Since: 1.1.1)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" title="struct GstRTSPTime2"><span class="type">GstRTSPTime2</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.max2"></a>max2</code></em>;</span></p></td>
+<td>extra fields in the maximum interval (Since: 1.1.1)</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -146,8 +168,11 @@
 <p>
 A time indication.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType" title="enum GstRTSPTimeType"><span class="type">GstRTSPTimeType</span></a> <em class="structfield"><code><a name="GstRTSPTime.type"></a>type</code></em>;</span></p></td>
@@ -155,25 +180,71 @@
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime.seconds"></a>seconds</code></em>;</span></p></td>
-<td>seconds when <em class="parameter"><code>type</code></em> is GST_RTSP_TIME_SECONDS</td>
+<td>seconds when <em class="parameter"><code>type</code></em> is GST_RTSP_TIME_SECONDS,
+GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstRTSPTime2"></a><h3>struct GstRTSPTime2</h3>
+<pre class="programlisting">struct GstRTSPTime2 {
+  gdouble         frames;
+  guint           year;
+  guint           month;
+  guint           day;
+};
+</pre>
+<p>
+Extra fields for a time indication.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime2.frames"></a>frames</code></em>;</span></p></td>
+<td>frames and subframes when type in GstRTSPTime is
+GST_RTSP_TIME_FRAMES</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.year"></a>year</code></em>;</span></p></td>
+<td>year when type is GST_RTSP_TIME_UTC</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.month"></a>month</code></em>;</span></p></td>
+<td>month when type is GST_RTSP_TIME_UTC</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.day"></a>day</code></em>;</span></p></td>
+<td>day when type is GST_RTSP_TIME_UTC</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.1.1</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstRTSPTimeType"></a><h3>enum GstRTSPTimeType</h3>
 <pre class="programlisting">typedef enum {
   GST_RTSP_TIME_SECONDS,
   GST_RTSP_TIME_NOW,
-  GST_RTSP_TIME_END
+  GST_RTSP_TIME_END,
+  GST_RTSP_TIME_FRAMES,
+  GST_RTSP_TIME_UTC
 } GstRTSPTimeType;
 </pre>
 <p>
 Possible time types.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-TIME-SECONDS:CAPS"></a><span class="term"><code class="literal">GST_RTSP_TIME_SECONDS</code></span></p></td>
@@ -190,6 +261,16 @@
 <td>end
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-RTSP-TIME-FRAMES:CAPS"></a><span class="term"><code class="literal">GST_RTSP_TIME_FRAMES</code></span></p></td>
+<td>frames and subframes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTSP-TIME-UTC:CAPS"></a><span class="term"><code class="literal">GST_RTSP_TIME_UTC</code></span></p></td>
+<td>UTC time
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -201,8 +282,11 @@
 <p>
 Parse <em class="parameter"><code>rangestr</code></em> to a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rangestr</code></em> :</span></p></td>
@@ -222,13 +306,63 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-rtsp-range-get-times"></a><h3>gst_rtsp_range_get_times ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtsp_range_get_times            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
+<p>
+Retrieve the minimum and maximum values from <em class="parameter"><code>range</code></em> converted to
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> in <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em>.
+</p>
+<p>
+A value of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><code class="literal">GST_CLOCK_TIME_NONE</code></a> will be used to signal <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS"><span class="type">GST_RTSP_TIME_NOW</span></a>
+and <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-END:CAPS"><span class="type">GST_RTSP_TIME_END</span></a> for <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> respectively.
+</p>
+<p>
+UTC times will be converted to nanoseconds since 1900.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>range</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>result minimum <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>result maximum <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.1.1</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-rtsp-range-to-string"></a><h3>gst_rtsp_range_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_rtsp_range_to_string            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>range</code></em> into a string representation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>range</code></em> :</span></p></td>
@@ -244,13 +378,49 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-rtsp-range-convert-units"></a><h3>gst_rtsp_range_convert_units ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_rtsp_range_convert_units        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit"><span class="type">GstRTSPRangeUnit</span></a> unit</code></em>);</pre>
+<p>
+Converts the range in-place between different types of units.
+Ranges containing the special value <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS"><span class="type">GST_RTSP_TIME_NOW</span></a> can not be
+converted as these are only valid for <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-RANGE-NPT:CAPS"><span class="type">GST_RTSP_RANGE_NPT</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>range</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>unit</code></em> :</span></p></td>
+<td>the unit to convert the range into</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the range could be converted</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-rtsp-range-free"></a><h3>gst_rtsp_range_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_rtsp_range_free                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
 <p>
 Free the memory allocated by <em class="parameter"><code>range</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>range</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
index 14a4593..c8182f1 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtsptransport</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
@@ -79,8 +79,11 @@
 <p>
 The transfer mode to use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-TRANS-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_RTSP_TRANS_UNKNOWN</code></span></p></td>
@@ -112,8 +115,11 @@
 <p>
 The transfer profile to use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-PROFILE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_RTSP_PROFILE_UNKNOWN</code></span></p></td>
@@ -144,8 +150,11 @@
 <p>
 A type to specify a range.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstRTSPRange.min"></a>min</code></em>;</span></p></td>
@@ -166,14 +175,18 @@
   GST_RTSP_LOWER_TRANS_UDP       = (1 &lt;&lt; 0),
   GST_RTSP_LOWER_TRANS_UDP_MCAST = (1 &lt;&lt; 1),
   GST_RTSP_LOWER_TRANS_TCP       = (1 &lt;&lt; 2),
-  GST_RTSP_LOWER_TRANS_HTTP      = (1 &lt;&lt; 4)
+  GST_RTSP_LOWER_TRANS_HTTP      = (1 &lt;&lt; 4),
+  GST_RTSP_LOWER_TRANS_TLS       = (1 &lt;&lt; 5)
 } GstRTSPLowerTrans;
 </pre>
 <p>
 The different transport methods.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RTSP-LOWER-TRANS-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_RTSP_LOWER_TRANS_UNKNOWN</code></span></p></td>
@@ -200,6 +213,11 @@
 <td>stream data tunneled over HTTP.
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-RTSP-LOWER-TRANS-TLS:CAPS"></a><span class="term"><code class="literal">GST_RTSP_LOWER_TRANS_TLS</code></span></p></td>
+<td>encrypt TCP and HTTP with TLS
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -233,8 +251,11 @@
 <p>
 A structure holding the RTSP transport values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> <em class="structfield"><code><a name="GstRTSPTransport.trans"></a>trans</code></em>;</span></p></td>
@@ -307,8 +328,11 @@
 Allocate a new initialized <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a>. Use <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free" title="gst_rtsp_transport_free ()"><code class="function">gst_rtsp_transport_free()</code></a>
 after usage.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>transport</code></em> :</span></p></td>
@@ -329,8 +353,11 @@
 <p>
 Initialize <em class="parameter"><code>transport</code></em> so that it can be used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>transport</code></em> :</span></p></td>
@@ -353,8 +380,11 @@
 <p>
 Parse the RTSP transport string <em class="parameter"><code>str</code></em> into <em class="parameter"><code>transport</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
@@ -380,8 +410,11 @@
 Convert <em class="parameter"><code>transport</code></em> into a string that can be used to signal the transport in
 an RTSP SETUP response.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>transport</code></em> :</span></p></td>
@@ -405,8 +438,11 @@
 Get the mime type of the transport mode <em class="parameter"><code>trans</code></em>. This mime type is typically
 used to generate <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> on buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -442,8 +478,11 @@
 <em class="parameter"><code>manager</code></em> will contain an element name or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when no manager is
 needed/available for <em class="parameter"><code>trans</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
@@ -473,8 +512,11 @@
 <p>
 Free the memory used by <em class="parameter"><code>transport</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>transport</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
index 01e55fe..b1642f6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstrtspurl</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
 <link rel="prev" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
@@ -89,8 +89,11 @@
 <p>
 This structure contains the result of a parsed RTSP URL
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans" title="enum GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a> <em class="structfield"><code><a name="GstRTSPUrl.transports"></a>transports</code></em>;</span></p></td>
@@ -136,8 +139,11 @@
 Parse the RTSP <em class="parameter"><code>urlstr</code></em> into a newly allocated <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a>. Free after usage
 with <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()"><code class="function">gst_rtsp_url_free()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>urlstr</code></em> :</span></p></td>
@@ -162,8 +168,11 @@
 <p>
 Make a copy of <em class="parameter"><code>url</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
@@ -184,8 +193,11 @@
 <p>
 Free the memory used by <em class="parameter"><code>url</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a>
@@ -200,8 +212,11 @@
 <p>
 Get a newly allocated string describing the request URI for <em class="parameter"><code>url</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
@@ -223,8 +238,11 @@
 <p>
 Set the port number in <em class="parameter"><code>url</code></em> to <em class="parameter"><code>port</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
@@ -251,8 +269,11 @@
 <p>
 Get the port number of <em class="parameter"><code>url</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
@@ -290,8 +311,11 @@
 Also note that since paths usually start with a slash, the first component
 will usually be the empty string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
index b50f9d9..9532faf 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstsdpmessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-sdp.html" title="SDP Library">
 <link rel="prev" href="gstreamer-sdp.html" title="SDP Library">
@@ -43,6 +43,13 @@
 enum                <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult">GstSDPResult</a>;
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin">GstSDPOrigin</a>;
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection">GstSDPConnection</a>;
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set" title="gst_sdp_connection_set ()">gst_sdp_connection_set</a>              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear" title="gst_sdp_connection_clear ()">gst_sdp_connection_clear</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);
 #define             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-CT:CAPS" title="GST_SDP_BWTYPE_CT">GST_SDP_BWTYPE_CT</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-AS:CAPS" title="GST_SDP_BWTYPE_AS">GST_SDP_BWTYPE_AS</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-EXT-PREFIX:CAPS" title="GST_SDP_BWTYPE_EXT_PREFIX">GST_SDP_BWTYPE_EXT_PREFIX</a>
@@ -50,10 +57,27 @@
 #define             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RS:CAPS" title="GST_SDP_BWTYPE_RS">GST_SDP_BWTYPE_RS</a>
 #define             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-TIAS:CAPS" title="GST_SDP_BWTYPE_TIAS">GST_SDP_BWTYPE_TIAS</a>
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth">GstSDPBandwidth</a>;
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set" title="gst_sdp_bandwidth_set ()">gst_sdp_bandwidth_set</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-clear" title="gst_sdp_bandwidth_clear ()">gst_sdp_bandwidth_clear</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime">GstSDPTime</a>;
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-set" title="gst_sdp_time_set ()">gst_sdp_time_set</a>                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-clear" title="gst_sdp_time_clear ()">gst_sdp_time_clear</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone">GstSDPZone</a>;
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-set" title="gst_sdp_zone_set ()">gst_sdp_zone_set</a>                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-clear" title="gst_sdp_zone_clear ()">gst_sdp_zone_clear</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey">GstSDPKey</a>;
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute">GstSDPAttribute</a>;
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-set" title="gst_sdp_attribute_set ()">gst_sdp_attribute_set</a>               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-clear" title="gst_sdp_attribute_clear ()">gst_sdp_attribute_clear</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia">GstSDPMedia</a>;
                     <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage">GstSDPMessage</a>;
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new" title="gst_sdp_message_new ()">gst_sdp_message_new</a>                 (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> **msg</code></em>);
@@ -94,11 +118,27 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len" title="gst_sdp_message_emails_len ()">gst_sdp_message_emails_len</a>          (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email" title="gst_sdp_message_get_email ()">gst_sdp_message_get_email</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-email" title="gst_sdp_message_insert_email ()">gst_sdp_message_insert_email</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-email" title="gst_sdp_message_replace_email ()">gst_sdp_message_replace_email</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-email" title="gst_sdp_message_remove_email ()">gst_sdp_message_remove_email</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email" title="gst_sdp_message_add_email ()">gst_sdp_message_add_email</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len" title="gst_sdp_message_phones_len ()">gst_sdp_message_phones_len</a>          (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone" title="gst_sdp_message_get_phone ()">gst_sdp_message_get_phone</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-phone" title="gst_sdp_message_insert_phone ()">gst_sdp_message_insert_phone</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-phone" title="gst_sdp_message_replace_phone ()">gst_sdp_message_replace_phone</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-phone" title="gst_sdp_message_remove_phone ()">gst_sdp_message_remove_phone</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone" title="gst_sdp_message_add_phone ()">gst_sdp_message_add_phone</a>           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);
 const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection" title="gst_sdp_message_get_connection ()">gst_sdp_message_get_connection</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
@@ -111,12 +151,28 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len" title="gst_sdp_message_bandwidths_len ()">gst_sdp_message_bandwidths_len</a>      (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth" title="gst_sdp_message_get_bandwidth ()">gst_sdp_message_get_bandwidth</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-bandwidth" title="gst_sdp_message_insert_bandwidth ()">gst_sdp_message_insert_bandwidth</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-bandwidth" title="gst_sdp_message_replace_bandwidth ()">gst_sdp_message_replace_bandwidth</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-bandwidth" title="gst_sdp_message_remove_bandwidth ()">gst_sdp_message_remove_bandwidth</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth" title="gst_sdp_message_add_bandwidth ()">gst_sdp_message_add_bandwidth</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len" title="gst_sdp_message_times_len ()">gst_sdp_message_times_len</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time" title="gst_sdp_message_get_time ()">gst_sdp_message_get_time</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-time" title="gst_sdp_message_insert_time ()">gst_sdp_message_insert_time</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-time" title="gst_sdp_message_replace_time ()">gst_sdp_message_replace_time</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-time" title="gst_sdp_message_remove_time ()">gst_sdp_message_remove_time</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time" title="gst_sdp_message_add_time ()">gst_sdp_message_add_time</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
@@ -124,6 +180,14 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len" title="gst_sdp_message_zones_len ()">gst_sdp_message_zones_len</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
 const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *  <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone" title="gst_sdp_message_get_zone ()">gst_sdp_message_get_zone</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-zone" title="gst_sdp_message_insert_zone ()">gst_sdp_message_insert_zone</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-zone" title="gst_sdp_message_replace_zone ()">gst_sdp_message_replace_zone</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-zone" title="gst_sdp_message_remove_zone ()">gst_sdp_message_remove_zone</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone" title="gst_sdp_message_add_zone ()">gst_sdp_message_add_zone</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);
@@ -139,6 +203,14 @@
 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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n" title="gst_sdp_message_get_attribute_val_n ()">gst_sdp_message_get_attribute_val_n</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-attribute" title="gst_sdp_message_insert_attribute ()">gst_sdp_message_insert_attribute</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-attribute" title="gst_sdp_message_replace_attribute ()">gst_sdp_message_replace_attribute</a>   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-attribute" title="gst_sdp_message_remove_attribute ()">gst_sdp_message_remove_attribute</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute" title="gst_sdp_message_add_attribute ()">gst_sdp_message_add_attribute</a>       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
@@ -152,6 +224,7 @@
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()">gst_sdp_media_init</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit" title="gst_sdp_media_uninit ()">gst_sdp_media_uninit</a>                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free" title="gst_sdp_media_free ()">gst_sdp_media_free</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a>               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media" title="gst_sdp_media_get_media ()">gst_sdp_media_get_media</a>             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media" title="gst_sdp_media_set_media ()">gst_sdp_media_set_media</a>             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *med</code></em>);
@@ -166,6 +239,14 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len" title="gst_sdp_media_formats_len ()">gst_sdp_media_formats_len</a>           (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format" title="gst_sdp_media_get_format ()">gst_sdp_media_get_format</a>            (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-format" title="gst_sdp_media_insert_format ()">gst_sdp_media_insert_format</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-format" title="gst_sdp_media_replace_format ()">gst_sdp_media_replace_format</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-format" title="gst_sdp_media_remove_format ()">gst_sdp_media_remove_format</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format" title="gst_sdp_media_add_format ()">gst_sdp_media_add_format</a>            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information" title="gst_sdp_media_get_information ()">gst_sdp_media_get_information</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
@@ -174,6 +255,14 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len" title="gst_sdp_media_connections_len ()">gst_sdp_media_connections_len</a>       (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection" title="gst_sdp_media_get_connection ()">gst_sdp_media_get_connection</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-connection" title="gst_sdp_media_insert_connection ()">gst_sdp_media_insert_connection</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-connection" title="gst_sdp_media_replace_connection ()">gst_sdp_media_replace_connection</a>    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-connection" title="gst_sdp_media_remove_connection ()">gst_sdp_media_remove_connection</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection" title="gst_sdp_media_add_connection ()">gst_sdp_media_add_connection</a>        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
@@ -183,6 +272,14 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len" title="gst_sdp_media_bandwidths_len ()">gst_sdp_media_bandwidths_len</a>        (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth" title="gst_sdp_media_get_bandwidth ()">gst_sdp_media_get_bandwidth</a>     (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-bandwidth" title="gst_sdp_media_insert_bandwidth ()">gst_sdp_media_insert_bandwidth</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-bandwidth" title="gst_sdp_media_replace_bandwidth ()">gst_sdp_media_replace_bandwidth</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-bandwidth" title="gst_sdp_media_remove_bandwidth ()">gst_sdp_media_remove_bandwidth</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth" title="gst_sdp_media_add_bandwidth ()">gst_sdp_media_add_bandwidth</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);
@@ -198,10 +295,17 @@
 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="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n" title="gst_sdp_media_get_attribute_val_n ()">gst_sdp_media_get_attribute_val_n</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-attribute" title="gst_sdp_media_insert_attribute ()">gst_sdp_media_insert_attribute</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-attribute" title="gst_sdp_media_replace_attribute ()">gst_sdp_media_replace_attribute</a>     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-attribute" title="gst_sdp_media_remove_attribute ()">gst_sdp_media_remove_attribute</a>      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute" title="gst_sdp_media_add_attribute ()">gst_sdp_media_add_attribute</a>         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a>               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -209,7 +313,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp23208784"></a><p>
+<a name="idp25117568"></a><p>
 The GstSDPMessage helper functions makes it easy to parse and create SDP
 messages.
 </p>
@@ -232,8 +336,11 @@
 <p>
 Return values for the SDP functions.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-SDP-OK:CAPS"></a><span class="term"><code class="literal">GST_SDP_OK</code></span></p></td>
@@ -265,8 +372,11 @@
 (their username and the address of the user's host) plus a session id and
 session version number.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.username"></a>username</code></em>;</span></p></td>
@@ -314,8 +424,11 @@
 <p>
 The contents of the SDP "c=" field which contains connection data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.nettype"></a>nettype</code></em>;</span></p></td>
@@ -343,6 +456,86 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-connection-set"></a><h3>gst_sdp_connection_set ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_connection_set              (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
+<p>
+Set the connection with the given parameters.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nettype</code></em> :</span></p></td>
+<td>the type of network. "IN" is defined to have the meaning
+"Internet".</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>addrtype</code></em> :</span></p></td>
+<td>the type of address.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the address</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ttl</code></em> :</span></p></td>
+<td>the time to live of the address</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>addr_number</code></em> :</span></p></td>
+<td>the number of layers</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>GST_SDP_OK</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-connection-clear"></a><h3>gst_sdp_connection_clear ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_connection_clear            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
+<p>
+Clear the connection.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>GST_SDP_OK</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-SDP-BWTYPE-CT:CAPS"></a><h3>GST_SDP_BWTYPE_CT</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_CT               "CT"
 </pre>
@@ -407,8 +600,11 @@
 The contents of the SDP "b=" field which specifies the proposed bandwidth to
 be used by the session or media.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPBandwidth.bwtype"></a>bwtype</code></em>;</span></p></td>
@@ -423,6 +619,68 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-bandwidth-set"></a><h3>gst_sdp_bandwidth_set ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_bandwidth_set               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
+<p>
+Set bandwidth information in <em class="parameter"><code>bw</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bw</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bwtype</code></em> :</span></p></td>
+<td>the bandwidth modifier type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bandwidth</code></em> :</span></p></td>
+<td>the bandwidth in kilobits per second</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-bandwidth-clear"></a><h3>gst_sdp_bandwidth_clear ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_bandwidth_clear             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
+<p>
+Reset the bandwidth information in <em class="parameter"><code>bw</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bw</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstSDPTime"></a><h3>GstSDPTime</h3>
 <pre class="programlisting">typedef struct {
   gchar  *start;
@@ -434,8 +692,11 @@
 The contents of the SDP "t=" field which specify the start and stop times for
 a conference session.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPTime.start"></a>start</code></em>;</span></p></td>
@@ -456,6 +717,74 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-time-set"></a><h3>gst_sdp_time_set ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_time_set                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);</pre>
+<p>
+Set time information <em class="parameter"><code>start</code></em>, <em class="parameter"><code>stop</code></em> and <em class="parameter"><code>repeat</code></em> in <em class="parameter"><code>t</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>the start time</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
+<td>the stop time</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>repeat</code></em> :</span></p></td>
+<td>the repeat times. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-time-clear"></a><h3>gst_sdp_time_clear ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_time_clear                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
+<p>
+Reset the time information in <em class="parameter"><code>t</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstSDPZone"></a><h3>GstSDPZone</h3>
 <pre class="programlisting">typedef struct {
   gchar *time;
@@ -467,8 +796,11 @@
 specify a list of time zone adjustments and offsets from the base
 time.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPZone.time"></a>time</code></em>;</span></p></td>
@@ -483,6 +815,68 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-zone-set"></a><h3>gst_sdp_zone_set ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_zone_set                    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);</pre>
+<p>
+Set zone information in <em class="parameter"><code>zone</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>zone</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>adj_time</code></em> :</span></p></td>
+<td>the NTP time that a time zone adjustment happens</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>typed_time</code></em> :</span></p></td>
+<td>the offset from the time when the session was first scheduled</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-zone-clear"></a><h3>gst_sdp_zone_clear ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_zone_clear                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
+<p>
+Reset the zone information in <em class="parameter"><code>zone</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>zone</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstSDPKey"></a><h3>GstSDPKey</h3>
 <pre class="programlisting">typedef struct {
   gchar *type;
@@ -493,8 +887,11 @@
 The contents of the SDP "k=" field which is used to convey encryption
 keys.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPKey.type"></a>type</code></em>;</span></p></td>
@@ -518,8 +915,11 @@
 <p>
 The contents of the SDP "a=" field which contains a key/value pair.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPAttribute.key"></a>key</code></em>;</span></p></td>
@@ -534,6 +934,70 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-attribute-set"></a><h3>gst_sdp_attribute_set ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_attribute_set               (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>
+Set the attribute with <em class="parameter"><code>key</code></em> and <em class="parameter"><code>value</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the key</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>the value</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>GST_SDP_OK</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-attribute-clear"></a><h3>gst_sdp_attribute_clear ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_attribute_clear             (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Clear the attribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>GST_SDP_OK</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstSDPMedia"></a><h3>GstSDPMedia</h3>
 <pre class="programlisting">typedef struct {
   gchar            *media;
@@ -551,8 +1015,11 @@
 <p>
 The contents of the SDP "m=" field with all related fields.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.media"></a>media</code></em>;</span></p></td>
@@ -620,8 +1087,11 @@
 <p>
 The contents of the SDP message.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.version"></a>version</code></em>;</span></p></td>
@@ -689,8 +1159,11 @@
 <p>
 Allocate a new GstSDPMessage and store the result in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -717,8 +1190,11 @@
 When this function is invoked on newly allocated data (with malloc or on the
 stack), its contents should be set to 0 before calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -741,8 +1217,11 @@
 this function. This function should be used when <em class="parameter"><code>msg</code></em> was allocated on the
 stack and initialized with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init" title="gst_sdp_message_init ()"><code class="function">gst_sdp_message_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -765,8 +1244,11 @@
 this function. This function should be used when <em class="parameter"><code>msg</code></em> was dynamically
 allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new" title="gst_sdp_message_new ()"><code class="function">gst_sdp_message_new()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -790,8 +1272,11 @@
 Parse the contents of <em class="parameter"><code>size</code></em> bytes pointed to by <em class="parameter"><code>data</code></em> and store the result in
 <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -821,8 +1306,11 @@
 <p>
 Convert the contents of <em class="parameter"><code>msg</code></em> to a text string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -855,8 +1343,11 @@
  where value is url encoded. This looslely resembles
  http://tools.ietf.org/html/draft-fujikawa-sdp-url-01
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
@@ -889,8 +1380,11 @@
 <p>
  Where each value is url encoded.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>scheme</code></em> :</span></p></td>
@@ -917,8 +1411,11 @@
 <p>
 Check if the given <em class="parameter"><code>addr</code></em> is a multicast address.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>nettype</code></em> :</span></p></td>
@@ -946,8 +1443,11 @@
 <p>
 Get the version in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -969,8 +1469,11 @@
 <p>
 Set the version in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -995,8 +1498,11 @@
 <p>
 Get the origin of <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1023,8 +1529,11 @@
 <p>
 Configure the SDP origin in <em class="parameter"><code>msg</code></em> with the given parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1070,8 +1579,11 @@
 <p>
 Get the session name in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1093,8 +1605,11 @@
 <p>
 Set the session name in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1119,8 +1634,11 @@
 <p>
 Get the information in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1142,8 +1660,11 @@
 <p>
 Set the information in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1168,8 +1689,11 @@
 <p>
 Get the URI in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1191,8 +1715,11 @@
 <p>
 Set the URI in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1217,8 +1744,11 @@
 <p>
 Get the number of emails in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1240,8 +1770,11 @@
 <p>
 Get the email with number <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1261,14 +1794,121 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-message-insert-email"></a><h3>gst_sdp_message_insert_email ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_insert_email        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
+<p>
+Insert <em class="parameter"><code>email</code></em> into the array of emails in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+When -1 is given as <em class="parameter"><code>idx</code></em>, the email is inserted at the end.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>email</code></em> :</span></p></td>
+<td>an email</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-replace-email"></a><h3>gst_sdp_message_replace_email ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_replace_email       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
+<p>
+Replace the email in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>email</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an email index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>email</code></em> :</span></p></td>
+<td>an email</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-remove-email"></a><h3>gst_sdp_message_remove_email ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_remove_email        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the email in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an email index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-message-add-email"></a><h3>gst_sdp_message_add_email ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_add_email           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
 <p>
 Add <em class="parameter"><code>email</code></em> to the list of emails in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1293,8 +1933,11 @@
 <p>
 Get the number of phones in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1316,8 +1959,11 @@
 <p>
 Get the phone with number <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1337,14 +1983,121 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-message-insert-phone"></a><h3>gst_sdp_message_insert_phone ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_insert_phone        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
+<p>
+Insert <em class="parameter"><code>phone</code></em> into the array of phone numbers in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+When -1 is given as <em class="parameter"><code>idx</code></em>, the phone is inserted at the end.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>a phone index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>phone</code></em> :</span></p></td>
+<td>a phone</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-replace-phone"></a><h3>gst_sdp_message_replace_phone ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_replace_phone       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
+<p>
+Replace the phone number in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>phone</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>a phone index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>phone</code></em> :</span></p></td>
+<td>a phone</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-remove-phone"></a><h3>gst_sdp_message_remove_phone ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_remove_phone        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the phone number in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>a phone index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-message-add-phone"></a><h3>gst_sdp_message_add_phone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_add_phone           (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
 <p>
 Add <em class="parameter"><code>phone</code></em> to the list of phones in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1369,8 +2122,11 @@
 <p>
 Get the connection of <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1396,8 +2152,11 @@
 <p>
 Configure the SDP connection in <em class="parameter"><code>msg</code></em> with the given parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1439,8 +2198,11 @@
 <p>
 Get the number of bandwidth information in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1462,8 +2224,11 @@
 <p>
 Get the bandwidth at index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1483,6 +2248,119 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-message-insert-bandwidth"></a><h3>gst_sdp_message_insert_bandwidth ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_insert_bandwidth    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
+<p>
+Insert bandwidth parameters into the array of bandwidths in <em class="parameter"><code>msg</code></em>
+at index <em class="parameter"><code>idx</code></em>.
+When -1 is given as <em class="parameter"><code>idx</code></em>, the bandwidth is inserted at the end.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bwtype</code></em> :</span></p></td>
+<td>the bandwidth modifier type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bandwidth</code></em> :</span></p></td>
+<td>the bandwidth in kilobits per second</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-replace-bandwidth"></a><h3>gst_sdp_message_replace_bandwidth ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_replace_bandwidth   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
+<p>
+Replace the bandwidth information in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>bwtype</code></em> and <em class="parameter"><code>bandwidth</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the bandwidth index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bwtype</code></em> :</span></p></td>
+<td>the bandwidth modifier type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bandwidth</code></em> :</span></p></td>
+<td>the bandwidth in kilobits per second</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-remove-bandwidth"></a><h3>gst_sdp_message_remove_bandwidth ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_remove_bandwidth    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the bandwidth information in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the bandwidth index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-message-add-bandwidth"></a><h3>gst_sdp_message_add_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_add_bandwidth       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
@@ -1490,8 +2368,11 @@
 <p>
 Add the specified bandwidth information to <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1520,8 +2401,11 @@
 <p>
 Get the number of time information entries in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1543,8 +2427,11 @@
 <p>
 Get time information with index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1564,6 +2451,113 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-message-insert-time"></a><h3>gst_sdp_message_insert_time ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_insert_time         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
+<p>
+Insert time parameters into the array of times in <em class="parameter"><code>msg</code></em>
+at index <em class="parameter"><code>idx</code></em>.
+When -1 is given as <em class="parameter"><code>idx</code></em>, the times are inserted at the end.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-replace-time"></a><h3>gst_sdp_message_replace_time ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_replace_time        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
+<p>
+Replace the time information in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>t</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-remove-time"></a><h3>gst_sdp_message_remove_time ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_remove_time         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the time information in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-message-add-time"></a><h3>gst_sdp_message_add_time ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_add_time            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
@@ -1572,8 +2566,11 @@
 <p>
 Add time information <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> to <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1607,8 +2604,11 @@
 <p>
 Get the number of time zone information entries in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1630,8 +2630,11 @@
 <p>
 Get time zone information with index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1651,6 +2654,110 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-message-insert-zone"></a><h3>gst_sdp_message_insert_zone ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_insert_zone         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
+<p>
+Insert zone parameters into the array of zones in <em class="parameter"><code>msg</code></em>
+at index <em class="parameter"><code>idx</code></em>.
+When -1 is given as <em class="parameter"><code>idx</code></em>, the zone is inserted at the end.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index
+<em class="parameter"><code>zone</code></em> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-replace-zone"></a><h3>gst_sdp_message_replace_zone ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_replace_zone        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
+<p>
+Replace the zone information in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>zone</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>zone</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-remove-zone"></a><h3>gst_sdp_message_remove_zone ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_remove_zone         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the zone information in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-message-add-zone"></a><h3>gst_sdp_message_add_zone ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_add_zone            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
@@ -1658,8 +2765,11 @@
 <p>
 Add time zone information to <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1688,8 +2798,11 @@
 <p>
 Get the encryption information from <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1712,8 +2825,11 @@
 <p>
 Adds the encryption information to <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1742,8 +2858,11 @@
 <p>
 Get the number of attributes in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1765,8 +2884,11 @@
 <p>
 Get the attribute at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1792,8 +2914,11 @@
 <p>
 Get the first attribute with key <em class="parameter"><code>key</code></em> in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1820,8 +2945,11 @@
 <p>
 Get the <em class="parameter"><code>nth</code></em> attribute with key <em class="parameter"><code>key</code></em> in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1845,6 +2973,110 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-message-insert-attribute"></a><h3>gst_sdp_message_insert_attribute ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_insert_attribute    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Insert attribute into the array of attributes in <em class="parameter"><code>msg</code></em>
+at index <em class="parameter"><code>idx</code></em>.
+When -1 is given as <em class="parameter"><code>idx</code></em>, the attribute is inserted at the end.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index
+<em class="parameter"><code>attribute</code></em> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-replace-attribute"></a><h3>gst_sdp_message_replace_attribute ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_replace_attribute   (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Replace the attribute in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>attribute</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attribute</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-message-remove-attribute"></a><h3>gst_sdp_message_remove_attribute ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_remove_attribute    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the attribute in <em class="parameter"><code>msg</code></em> at index <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-message-add-attribute"></a><h3>gst_sdp_message_add_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_message_add_attribute       (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                                          <em 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>,
@@ -1852,8 +3084,11 @@
 <p>
 Add the attribute with <em class="parameter"><code>key</code></em> and <em class="parameter"><code>value</code></em> to <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1883,8 +3118,11 @@
 <p>
 Get the number of media descriptions in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1906,8 +3144,11 @@
 <p>
 Get the media description at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>msg</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1935,8 +3176,11 @@
 the contents of <em class="parameter"><code>media</code></em> so that <em class="parameter"><code>media</code></em> will have to be reinitialized with
 <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a> before it can be used again.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1961,8 +3205,11 @@
 <p>
 Dump the parsed contents of <em class="parameter"><code>msg</code></em> to stdout.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
@@ -1983,8 +3230,11 @@
 <p>
 Allocate a new GstSDPMedia and store the result in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2011,8 +3261,11 @@
 When this function is invoked on newly allocated data (with malloc or on the
 stack), its contents should be set to 0 before calling this function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2035,8 +3288,11 @@
 this function. This function should be used when <em class="parameter"><code>media</code></em> was allocated on the
 stack and initialized with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2059,8 +3315,11 @@
 this function. This function should be used when <em class="parameter"><code>media</code></em> was dynamically
 allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new" title="gst_sdp_media_new ()"><code class="function">gst_sdp_media_new()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2076,13 +3335,41 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-media-as-text"></a><h3>gst_sdp_media_as_text ()</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_sdp_media_as_text               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<p>
+Convert the contents of <em class="parameter"><code>media</code></em> to a text string.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A dynamically allocated string representing the media.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-media-get-media"></a><h3>gst_sdp_media_get_media ()</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_sdp_media_get_media             (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
 <p>
 Get the media description of <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2104,8 +3391,11 @@
 <p>
 Set the media description of <em class="parameter"><code>media</code></em> to <em class="parameter"><code>med</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2131,8 +3421,11 @@
 <p>
 Get the port number for <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2153,8 +3446,11 @@
 <p>
 Get the number of ports for <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2177,8 +3473,11 @@
 <p>
 Set the port information in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2208,8 +3507,11 @@
 <p>
 Get the transport protocol of <em class="parameter"><code>media</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2231,8 +3533,11 @@
 <p>
 Set the media transport protocol of <em class="parameter"><code>media</code></em> to <em class="parameter"><code>proto</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2258,8 +3563,11 @@
 <p>
 Get the number of formats in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2281,8 +3589,11 @@
 <p>
 Get the format information at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2302,14 +3613,124 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-media-insert-format"></a><h3>gst_sdp_media_insert_format ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_insert_format         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
+<p>
+Insert the format information to <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>. When <em class="parameter"><code>idx</code></em> is -1,
+the format is appended.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-replace-format"></a><h3>gst_sdp_media_replace_format ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_replace_format        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
+<p>
+Replace the format information in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>format</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-remove-format"></a><h3>gst_sdp_media_remove_format ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_remove_format         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the format information in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-media-add-format"></a><h3>gst_sdp_media_add_format ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_add_format            (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
 <p>
 Add the format information to <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2335,8 +3756,11 @@
 <p>
 Get the information of <em class="parameter"><code>media</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2358,8 +3782,11 @@
 <p>
 Set the media information of <em class="parameter"><code>media</code></em> to <em class="parameter"><code>information</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2385,8 +3812,11 @@
 <p>
 Get the number of connection fields in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2408,8 +3838,11 @@
 <p>
 Get the connection at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2429,6 +3862,115 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-media-insert-connection"></a><h3>gst_sdp_media_insert_connection ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_insert_connection     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
+<p>
+Insert the connection information to <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>. When <em class="parameter"><code>idx</code></em> is -1,
+the connection is appended.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-replace-connection"></a><h3>gst_sdp_media_replace_connection ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_replace_connection    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
+<p>
+Replace the connection information in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>conn</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>conn</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-remove-connection"></a><h3>gst_sdp_media_remove_connection ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_remove_connection     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the connection information in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-media-add-connection"></a><h3>gst_sdp_media_add_connection ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_add_connection        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
@@ -2439,8 +3981,11 @@
 <p>
 Add the given connection parameters to <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2482,8 +4027,11 @@
 <p>
 Get the number of bandwidth fields in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2505,8 +4053,11 @@
 <p>
 Get the bandwidth at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2526,6 +4077,115 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-media-insert-bandwidth"></a><h3>gst_sdp_media_insert_bandwidth ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_insert_bandwidth      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
+<p>
+Insert the bandwidth information to <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>. When <em class="parameter"><code>idx</code></em> is -1,
+the bandwidth is appended.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bw</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-replace-bandwidth"></a><h3>gst_sdp_media_replace_bandwidth ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_replace_bandwidth     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
+<p>
+Replace the bandwidth information in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>bw</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bw</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-remove-bandwidth"></a><h3>gst_sdp_media_remove_bandwidth ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_remove_bandwidth      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the bandwidth information in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-media-add-bandwidth"></a><h3>gst_sdp_media_add_bandwidth ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_add_bandwidth         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
@@ -2533,8 +4193,11 @@
 <p>
 Add the bandwidth information with <em class="parameter"><code>bwtype</code></em> and <em class="parameter"><code>bandwidth</code></em> to <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2564,8 +4227,11 @@
 <p>
 Get the encryption information from <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2588,8 +4254,11 @@
 <p>
 Adds the encryption information to <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2618,8 +4287,11 @@
 <p>
 Get the number of attribute fields in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2641,8 +4313,11 @@
 <p>
 Get the attribute at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2668,8 +4343,11 @@
 <p>
 Get the first attribute value for <em class="parameter"><code>key</code></em> in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2696,8 +4374,11 @@
 <p>
 Get the <em class="parameter"><code>nth</code></em> attribute value for <em class="parameter"><code>key</code></em> in <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2721,6 +4402,115 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-sdp-media-insert-attribute"></a><h3>gst_sdp_media_insert_attribute ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_insert_attribute      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Insert the attribute to <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>. When <em class="parameter"><code>idx</code></em> is -1,
+the attribute is appended.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-replace-attribute"></a><h3>gst_sdp_media_replace_attribute ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_replace_attribute     (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Replace the attribute in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>attr</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sdp-media-remove-attribute"></a><h3>gst_sdp_media_remove_attribute ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_remove_attribute      (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Remove the attribute in <em class="parameter"><code>media</code></em> at <em class="parameter"><code>idx</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-sdp-media-add-attribute"></a><h3>gst_sdp_media_add_attribute ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>        gst_sdp_media_add_attribute         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                                          <em 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>,
@@ -2728,8 +4518,11 @@
 <p>
 Add the attribute with <em class="parameter"><code>key</code></em> and <em class="parameter"><code>value</code></em> to <em class="parameter"><code>media</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
@@ -2752,28 +4545,6 @@
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-sdp-media-as-text"></a><h3>gst_sdp_media_as_text ()</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_sdp_media_as_text               (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>
-Convert the contents of <em class="parameter"><code>media</code></em> to a text string.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>media</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A dynamically allocated string representing the media.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
index 530bdaf..585992a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
+++ b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gststreamvolume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
 <link rel="prev" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
@@ -86,7 +86,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10488096"></a><p>
+<a name="idp13908656"></a><p>
 This interface is implemented by elements that provide a stream volume. Examples for
 such elements are <span class="type">volume</span> and <span class="type">playbin</span>.
 </p>
@@ -134,8 +134,11 @@
 Formulas to convert from a linear to a cubic or dB volume are
 cbrt(val) and 20 * log10 (val).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-STREAM-VOLUME-FORMAT-LINEAR:CAPS"></a><span class="term"><code class="literal">GST_STREAM_VOLUME_FORMAT_LINEAR</code></span></p></td>
@@ -160,8 +163,11 @@
 <a name="gst-stream-volume-get-volume"></a><h3>gst_stream_volume_get_volume ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             gst_stream_volume_get_volume        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>volume</code></em> :</span></p></td>
@@ -186,8 +192,11 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_stream_volume_set_volume        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>volume</code></em> :</span></p></td>
@@ -211,8 +220,11 @@
 <div class="refsect2">
 <a name="gst-stream-volume-get-mute"></a><h3>gst_stream_volume_get_mute ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_stream_volume_get_mute          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>volume</code></em> :</span></p></td>
@@ -231,8 +243,11 @@
 <a name="gst-stream-volume-set-mute"></a><h3>gst_stream_volume_set_mute ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_stream_volume_set_mute          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>volume</code></em> :</span></p></td>
@@ -252,8 +267,11 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             gst_stream_volume_convert_volume    (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> from</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>from</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttag.html b/docs/libs/html/gst-plugins-base-libs-gsttag.html
index a772fc1..dca18e7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttag.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gstreamer-tag.html" title="Tag Support Library">
@@ -90,7 +90,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp17179120"></a><p>
+<a name="idp16950320"></a><p>
 Contains additional standardized GStreamer tag definitions for plugins
 and applications, and functions to register them with the GStreamer
 tag system.
@@ -519,8 +519,11 @@
 are specified, the current locale will be tried. If that also doesn't work,
 WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -560,8 +563,11 @@
 may also be set to NULL by this function if there is no key or no language
 code in the extended comment string.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>ext_comment</code></em> :</span></p></td>
@@ -621,8 +627,11 @@
 Type of image contained in an image tag (specified as "image-type" field in
 the info structure in the image's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>)
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TAG-IMAGE-TYPE-NONE:CAPS"></a><span class="term"><code class="literal">GST_TAG_IMAGE_TYPE_NONE</code></span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
index 6439503..4627c1c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
@@ -51,7 +51,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6524864"></a><h3>Deriving from GstTagDemux</h3>
+<a name="idp7471744"></a><h3>Deriving from GstTagDemux</h3>
 <p>
 Provides a base class for demuxing tags at the beginning or end of a
 stream and handles things like typefinding, querying, seeking, and
@@ -66,7 +66,7 @@
 <p>
 Subclasses have to do four things:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
  In their base init function, they must add a pad template for the sink
  pad to the element class, describing the media type they can parse in
@@ -108,8 +108,11 @@
 <p>
 Opaque <a class="link" href="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux" title="struct GstTagDemux"><span class="type">GstTagDemux</span></a> structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstTagDemux.element"></a>element</code></em>;</span></p></td>
 <td>parent element</td>
@@ -155,8 +158,11 @@
 The <a class="link" href="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass" title="struct GstTagDemuxClass"><span class="type">GstTagDemuxClass</span></a> structure.  See documentation at beginning of section
 for details about what subclasses need to override and do.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstTagDemuxClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -211,8 +217,11 @@
 <p>
 Result values from the parse_tag virtual function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TAG-DEMUX-RESULT-BROKEN-TAG:CAPS"></a><span class="term"><code class="literal">GST_TAG_DEMUX_RESULT_BROKEN_TAG</code></span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
index 42b4f06..a5b97d3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagexif</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
@@ -74,8 +74,11 @@
 Formats the tags in taglist on exif format. The resulting buffer contains
 the tags IFD and is followed by the data pointed by the tag entries.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -105,8 +108,11 @@
 Formats the tags in taglist into exif structure, a tiff header
 is put in the beginning of the buffer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
@@ -131,8 +137,11 @@
 the tag entries and be able to get the offset relative to the buffer
 start
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -161,8 +170,11 @@
 <p>
 Parses the exif tags starting with a tiff header structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
index 183221a..8912989 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagid3</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
@@ -61,7 +61,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp22652816"></a><p>
+<a name="idp15937472"></a><p>
 Contains various utility functions for plugins to parse or create
 ID3 tags and map ID3v2 identifiers to and from GStreamer identifiers.
 </p>
@@ -78,8 +78,11 @@
 Gets the number of ID3v1 genres that can be identified. Winamp genres are 
 included.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the number of ID3v1 genres that can be identified</td>
@@ -93,8 +96,11 @@
 <p>
 Gets the ID3v1 genre name for a given ID.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
@@ -115,8 +121,11 @@
 Parses the data containing an ID3v1 tag and returns a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> from the
 parsed data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -136,8 +145,11 @@
 <p>
 Looks up the GStreamer tag for a ID3v2 tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>id3_tag</code></em> :</span></p></td>
@@ -159,8 +171,11 @@
 Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
 TXXX frame or owner in UFID frame).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
@@ -184,8 +199,11 @@
 <p>
 Looks up the ID3v2 tag for a GStreamer tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gst_tag</code></em> :</span></p></td>
@@ -210,8 +228,11 @@
 to the given tag list. Also see <code class="function">gst_tag_image_data_to_image_sample()</code> for
 more information on image tags in GStreamer.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>tag_list</code></em> :</span></p></td>
@@ -248,8 +269,11 @@
 Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
 i.e. at least <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE"><span class="type">GST_TAG_ID3V2_HEADER_SIZE</span></a> (10) bytes;
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -270,8 +294,11 @@
 Creates a new tag list that contains the information parsed out of a
 ID3 tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
index 3f011f6..4fd0d84 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttaglanguagecodes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
@@ -56,7 +56,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14867200"></a><p>
+<a name="idp19612304"></a><p>
 Provides helper functions to convert between the various ISO-639 language
 codes, and to map language codes to language names.
 </p>
@@ -75,8 +75,11 @@
 tagging purposes (e.g. to tag an audio track appropriately in a video or
 audio editor).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>NULL-terminated string array with two-letter
@@ -98,8 +101,11 @@
 <p>
 Language codes are case-sensitive and expected to be lower case.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>language_code</code></em> :</span></p></td>
@@ -122,8 +128,11 @@
 <p>
 Convenience macro wrapping <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1" title="gst_tag_get_language_code_iso_639_1 ()"><code class="function">gst_tag_get_language_code_iso_639_1()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>lang_code</code></em> :</span></p></td>
 <td>ISO-639 language code (e.g. "deu" or "ger" or "de")</td>
@@ -142,8 +151,11 @@
 <p>
 Language codes are case-sensitive and expected to be lower case.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>lang_code</code></em> :</span></p></td>
@@ -176,8 +188,11 @@
 <p>
 Language codes are case-sensitive and expected to be lower case.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>lang_code</code></em> :</span></p></td>
@@ -210,8 +225,11 @@
 <p>
 Language codes are case-sensitive and expected to be lower case.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>lang_code</code></em> :</span></p></td>
@@ -239,8 +257,11 @@
 tag) or a free-form language name descriptor (which should be put into a
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS"><span class="type">GST_TAG_LANGUAGE_NAME</span></a> tag instead).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>lang_code</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
index 9a39a33..2906fb2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttaglicenses</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
@@ -86,8 +86,11 @@
 <p>
 See http://creativecommons.org/ns for more information.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_REPRODUCTION</code></span></p></td>
@@ -188,8 +191,11 @@
 Get the flags of a license, which describe most of the features of
 a license in their most general form.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
@@ -211,8 +217,11 @@
 Get the nick name of a license, which is a short (untranslated) string
 such as e.g. "CC BY-NC-ND 2.0 UK".
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
@@ -234,8 +243,11 @@
 Get the title of a license, which is a short translated description
 of the license's features (generally not very pretty though).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
@@ -258,8 +270,11 @@
 Get the description of a license, which is a translated description
 of the license's main features.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
@@ -288,8 +303,11 @@
 dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
 pt, scotland, se, si, tw, uk, us, za.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
@@ -311,8 +329,11 @@
 <p>
 Get the version of a license.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
@@ -337,8 +358,11 @@
 (e.g. to tag an audio track appropriately in a video or audio editor, or
 an image in a camera application).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>NULL-terminated array of license strings. Free
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
index 8506fab..9fb05f5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
@@ -50,7 +50,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10890848"></a><h3>Deriving from GstTagMux</h3>
+<a name="idp6228784"></a><h3>Deriving from GstTagMux</h3>
 <p>
 Provides a base class for adding tags at the beginning or end of a
 stream.
@@ -58,7 +58,7 @@
 <p>
 Subclasses have to do the following things:
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
  In their base init function, they must add pad templates for the sink
  pad and the source pad to the element class, describing the media type
@@ -88,8 +88,11 @@
 <p>
 Opaque <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux"><span class="type">GstTagMux</span></a> structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstTagMux.element"></a>element</code></em>;</span></p></td>
 <td>parent element</td>
@@ -111,8 +114,11 @@
 The <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass"><span class="type">GstTagMuxClass</span></a> structure. Subclasses need to override at least one
 of the two render vfuncs.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstTagMuxClass.parent-class"></a>parent_class</code></em>;</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
index 7fc1a39..5ebacda 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagvorbis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
@@ -71,7 +71,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp23106976"></a><p>
+<a name="idp22820896"></a><p>
 Contains various utility functions for plugins to parse or create
 vorbiscomments and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s.
 </p>
@@ -87,8 +87,11 @@
 <p>
 Looks up the GStreamer tag for a vorbiscomment tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>vorbis_tag</code></em> :</span></p></td>
@@ -108,8 +111,11 @@
 <p>
 Looks up the vorbiscomment tag for a GStreamer tag.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gst_tag</code></em> :</span></p></td>
@@ -137,8 +143,11 @@
 Unknown vorbiscomment tags will be added to the tag list in form
 of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -165,8 +174,11 @@
 Creates a new tag list that contains the information parsed out of a
 vorbiscomment packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -200,8 +212,11 @@
 Creates a new tag list that contains the information parsed out of a
 vorbiscomment packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
@@ -245,8 +260,11 @@
 Creates a new tag list that contains the information parsed out of a
 vorbiscomment packet.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -284,8 +302,11 @@
 <p>
 Creates a new vorbiscomment buffer from a tag list.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
index f3d595d..e327f1a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagxmp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
@@ -66,8 +66,11 @@
 <p>
 Parse a xmp packet into a taglist.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -91,8 +94,11 @@
 schemas. An empty list (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) means that all schemas should
 be used
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
@@ -121,8 +127,11 @@
 <p>
 Gets the list of supported schemas in the xmp lib
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
index 31110f8..592deca 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gsttagxmpwriter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
 <link rel="prev" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
@@ -57,7 +57,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp19265232"></a><p>
+<a name="idp23002640"></a><p>
 This interface is implemented by elements that are able to do XMP serialization. Examples for
 such elements are <span class="type">jifmux</span> and <span class="type">qtmux</span>.
 </p>
@@ -79,8 +79,11 @@
 Adds all available XMP schemas to the configuration. Meaning that
 all will be used.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
 <td>a <span class="type">GstTagXmpWriter</span>
@@ -96,8 +99,11 @@
 <p>
 Adds <em class="parameter"><code>schema</code></em> to the list schemas
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -119,8 +125,11 @@
 <p>
 Checks if <em class="parameter"><code>schema</code></em> is going to be used
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -148,8 +157,11 @@
 Removes a schema from the list of schemas to use. Nothing is done if
 the schema wasn't in the list
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
@@ -172,8 +184,11 @@
 Removes all schemas from the list of schemas to use. Meaning that no
 XMP will be generated.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
 <td>a <span class="type">GstTagXmpWriter</span>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index 1e0c712..a33368f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gstreamer-video.html" title="Video Library">
@@ -164,10 +164,10 @@
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-masks" title="gst_video_format_from_masks ()">gst_video_format_from_masks</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> depth</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> bpp</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> endianness</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> red_mask</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> green_mask</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> blue_mask</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> alpha_mask</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> red_mask</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> green_mask</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blue_mask</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> alpha_mask</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" title="gst_video_format_from_fourcc ()">gst_video_format_from_fourcc</a>        (<em class="parameter"><code><span class="type">guint32</span> fourcc</code></em>);
 <span class="returnvalue">guint32</span>             <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-string" title="gst_video_format_from_string ()">gst_video_format_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> *format</code></em>);
@@ -327,7 +327,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp29493584"></a><p>
+<a name="idp31156624"></a><p>
 This library contains some helper functions and includes the
 videosink and videofilter base classes.
 </p>
@@ -352,8 +352,11 @@
 pixel aspect ratio of the intended display device, calculates the actual
 display ratio the video will be rendered with.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dar_n</code></em> :</span></p></td>
@@ -419,8 +422,11 @@
 <p>
 The width, height and pixel-aspect-ratio can also be specified in the output caps.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -475,8 +481,11 @@
 <em class="parameter"><code>destroy_notify</code></em> will be called after the callback was called and <em class="parameter"><code>user_data</code></em> is not needed
 anymore.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
@@ -525,8 +534,11 @@
 structure is usually used to configure the bufferpool if it supports the
 <span class="type">GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT</span>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-top"></a>padding_top</code></em>;</span></p></td>
@@ -558,8 +570,11 @@
 <p>
 Set <em class="parameter"><code>align</code></em> to its default values with no padding and no alignment.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a>
@@ -580,8 +595,11 @@
 To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()"><code class="function">gst_video_event_new_still_frame()</code></a> use
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()"><code class="function">gst_video_event_parse_still_frame()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>in_still</code></em> :</span></p></td>
@@ -610,8 +628,11 @@
 <p>
 Create a still frame event using <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()"><code class="function">gst_video_event_new_still_frame()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -649,8 +670,11 @@
 To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
@@ -695,8 +719,11 @@
 key unit event. See <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> for a
 full description of the downstream force key unit event.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -755,8 +782,11 @@
 To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
@@ -794,8 +824,11 @@
 <p>
 Create an upstream force key unit event using  <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -832,8 +865,11 @@
 Checks if an event is a force key unit event. Returns true for both upstream
 and downstream force key unit events.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
@@ -897,13 +933,22 @@
   GST_VIDEO_FORMAT_I420_10LE,
   GST_VIDEO_FORMAT_I422_10BE,
   GST_VIDEO_FORMAT_I422_10LE,
+  GST_VIDEO_FORMAT_Y444_10BE,
+  GST_VIDEO_FORMAT_Y444_10LE,
+  GST_VIDEO_FORMAT_GBR,
+  GST_VIDEO_FORMAT_GBR_10BE,
+  GST_VIDEO_FORMAT_GBR_10LE,
+  GST_VIDEO_FORMAT_NV16,
 } GstVideoFormat;
 </pre>
 <p>
 Enum value describing the most common video formats.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-FORMAT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_UNKNOWN</code></span></p></td>
@@ -1135,6 +1180,36 @@
 <td>planar 4:2:2 YUV, 10 bits per channel
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-Y444-10BE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_Y444_10BE</code></span></p></td>
+<td>planar 4:4:4 YUV, 10 bits per channel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-Y444-10LE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_Y444_10LE</code></span></p></td>
+<td>planar 4:4:4 YUV, 10 bits per channel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-GBR:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_GBR</code></span></p></td>
+<td>planar 4:4:4 RGB, 8 bits per channel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-GBR-10BE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_GBR_10BE</code></span></p></td>
+<td>planar 4:4:4 RGB, 10 bits per channel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-GBR-10LE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_GBR_10LE</code></span></p></td>
+<td>planar 4:4:4 RGB, 10 bits per channel
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-NV16:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_NV16</code></span></p></td>
+<td>planar 4:2:2 YUV with interleaved UV plane
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1180,8 +1255,11 @@
 <p>
 Information for a video format.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.format"></a>format</code></em>;</span></p></td>
@@ -1293,8 +1371,11 @@
 <p>
 Various Chroma sitings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_CHROMA_SITE_UNKNOWN</code></span></p></td>
@@ -1351,8 +1432,11 @@
 <p>
 Convert <em class="parameter"><code>s</code></em> to a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
@@ -1373,8 +1457,11 @@
 <p>
 Converts <em class="parameter"><code>site</code></em> to its string representation.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>site</code></em> :</span></p></td>
@@ -1405,8 +1492,11 @@
 <p>
 The different video flags that a format info can have.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-FORMAT-FLAG-YUV:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_YUV</code></span></p></td>
@@ -1464,14 +1554,18 @@
 <a name="GstVideoPackFlags"></a><h3>enum GstVideoPackFlags</h3>
 <pre class="programlisting">typedef enum {
   GST_VIDEO_PACK_FLAG_NONE           = 0,
-  GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE = 1
+  GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE = (1 &lt;&lt; 0),
+  GST_VIDEO_PACK_FLAG_INTERLACED     = (1 &lt;&lt; 1)
 } GstVideoPackFlags;
 </pre>
 <p>
 The different flags that can be used when packing and unpacking.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-PACK-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_PACK_FLAG_NONE</code></span></p></td>
@@ -1487,6 +1581,13 @@
   in the least significant bits of the destination.
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-VIDEO-PACK-FLAG-INTERLACED:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_PACK_FLAG_INTERLACED</code></span></p></td>
+<td>The source is interlaced. The unpacked
+  format will be interlaced as well with each line containing
+  information from alternating fields. (Since 1.2)
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1507,8 +1608,16 @@
 interleaved. <em class="parameter"><code>dest</code></em> should at least be big enough to hold <em class="parameter"><code>width</code></em> *
 n_components * size(unpack_format) bytes.
 </p>
-<div class="variablelist"><table border="0">
+<p>
+For subsampled formats, the components will be duplicated in the destination
+array. Reconstruction of the missing components can be performed in a
+separate step after unpacking.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1568,8 +1677,15 @@
 contain at least pack_lines lines with a stride of <em class="parameter"><code>sstride</code></em> and <em class="parameter"><code>y</code></em>
 should be a multiple of pack_lines.
 </p>
-<div class="variablelist"><table border="0">
+<p>
+Subsampled formats will use the horizontally cosited component in the
+destination. Subsampling should be performed before packing.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -1598,7 +1714,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>chroma_site</code></em> :</span></p></td>
-<td>the chroma siting of the target when subsampled</td>
+<td>the chroma siting of the target when subsampled (not used)</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
@@ -1802,15 +1918,18 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>      gst_video_format_from_masks         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> depth</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> bpp</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> endianness</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> red_mask</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> green_mask</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> blue_mask</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> alpha_mask</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> red_mask</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> green_mask</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blue_mask</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> alpha_mask</code></em>);</pre>
 <p>
 Find the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for the given parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>depth</code></em> :</span></p></td>
@@ -1824,7 +1943,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>endianness</code></em> :</span></p></td>
-<td>the endianness of the masks</td>
+<td>the endianness of the masks, <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros.html#G-LITTLE-ENDIAN:CAPS"><span class="type">G_LITTLE_ENDIAN</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros.html#G-BIG-ENDIAN:CAPS"><span class="type">G_BIG_ENDIAN</span></a>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>red_mask</code></em> :</span></p></td>
@@ -1840,7 +1960,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>alpha_mask</code></em> :</span></p></td>
-<td>the optional alpha mask</td>
+<td>the alpha mask, or 0 if no alpha mask</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1859,8 +1979,11 @@
 If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>,
 <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS"><span class="type">GST_VIDEO_FORMAT_UNKNOWN</span></a> is returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>fourcc</code></em> :</span></p></td>
@@ -1882,8 +2005,11 @@
 a few YUV formats have corresponding FOURCC values.  If <em class="parameter"><code>format</code></em> has
 no corresponding FOURCC value, 0 is returned.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1904,8 +2030,11 @@
 <p>
 Convert the <em class="parameter"><code>format</code></em> string to its <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1931,8 +2060,11 @@
 <p>
 Get the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
@@ -1970,8 +2102,11 @@
 <p>
 Generic caps string for video, for use in pad templates.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
 <td>string format that describes the pixel layout, as string
@@ -1992,8 +2127,11 @@
 Possible color range values. These constants are defined for 8 bit color
 values and can be scaled for other bit depths.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_RANGE_UNKNOWN</code></span></p></td>
@@ -2030,8 +2168,11 @@
 The color matrix is used to convert between Y'PbPr and
 non-linear RGB (R'G'B')
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-COLOR-MATRIX-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_UNKNOWN</code></span></p></td>
@@ -2087,8 +2228,11 @@
 The video transfer function defines the formula for converting between
 non-linear RGB (R'G'B') and linear RGB
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-TRANSFER-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_UNKNOWN</code></span></p></td>
@@ -2170,8 +2314,11 @@
 The color primaries define the how to transform linear RGB values to and from
 the CIE XYZ colorspace.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_UNKNOWN</code></span></p></td>
@@ -2224,8 +2371,11 @@
 <p>
 Structure describing the color info.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange"><span class="type">GstVideoColorRange</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.range"></a>range</code></em>;</span></p></td>
@@ -2257,8 +2407,11 @@
 Check if the colorimetry information in <em class="parameter"><code>info</code></em> matches that of the
 string <em class="parameter"><code>color</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2287,8 +2440,11 @@
 Parse the colorimetry string and update <em class="parameter"><code>cinfo</code></em> with the parsed
 values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cinfo</code></em> :</span></p></td>
@@ -2314,8 +2470,11 @@
 <p>
 Make a string representation of <em class="parameter"><code>cinfo</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>cinfo</code></em> :</span></p></td>
@@ -2346,8 +2505,11 @@
 the component values in range [0.0 .. 1.0] back to their representation in
 <em class="parameter"><code>info</code></em> and <em class="parameter"><code>range</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>range</code></em> :</span></p></td>
@@ -2406,8 +2568,11 @@
 <p>
 Use the provided macros to access the info in this structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *<em class="structfield"><code><a name="GstVideoInfo.finfo"></a>finfo</code></em>;</span></p></td>
@@ -2486,8 +2651,11 @@
 The possible values of the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode"><span class="type">GstVideoInterlaceMode</span></a> describing the interlace
 mode of the stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_INTERLACE_MODE_PROGRESSIVE</code></span></p></td>
@@ -2532,8 +2700,11 @@
 <p>
 Extra video flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLAG_NONE</code></span></p></td>
@@ -2760,8 +2931,11 @@
 <p>
 Initialize <em class="parameter"><code>info</code></em> with default values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
@@ -2779,8 +2953,11 @@
 <p>
 Set the default info for a video frame of <em class="parameter"><code>format</code></em> and <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2810,8 +2987,11 @@
 <p>
 Parse <em class="parameter"><code>caps</code></em> and update <em class="parameter"><code>info</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2837,8 +3017,11 @@
 <p>
 Convert the values of <em class="parameter"><code>info</code></em> into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2866,8 +3049,11 @@
 raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This
 function can be used to handle pad queries of the type GST_QUERY_CONVERT.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2909,8 +3095,11 @@
 <p>
 Compares two <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> and returns whether they are equal or not
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2943,8 +3132,11 @@
 Extra padding will be added to the right side when stride alignment padding
 is required and <em class="parameter"><code>align</code></em> will be updated with the new padding values.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
@@ -2976,8 +3168,11 @@
 <p>
 A video frame obtained from <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()"><code class="function">gst_video_frame_map()</code></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoFrame.info"></a>info</code></em>;</span></p></td>
@@ -3026,8 +3221,11 @@
 <p>
 Extra video frame flags
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-FRAME-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FRAME_FLAG_NONE</code></span></p></td>
@@ -3079,8 +3277,11 @@
 All video planes of <em class="parameter"><code>buffer</code></em> will be mapped and the pointers will be set in
 <em class="parameter"><code>frame-&gt;data</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -3126,8 +3327,11 @@
 All video planes of <em class="parameter"><code>buffer</code></em> will be mapped and the pointers will be set in
 <em class="parameter"><code>frame-&gt;data</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -3162,8 +3366,11 @@
 <p>
 Unmap the memory previously mapped with gst_video_frame_map.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a>
@@ -3179,8 +3386,11 @@
 <p>
 Copy the contents from <em class="parameter"><code>src</code></em> to <em class="parameter"><code>dest</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -3208,8 +3418,11 @@
 <p>
 Copy the plane with index <em class="parameter"><code>plane</code></em> from <em class="parameter"><code>src</code></em> to <em class="parameter"><code>dest</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
@@ -3391,8 +3604,11 @@
 <p>
 Additional video buffer flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-BUFFER-FLAG-INTERLACED:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_BUFFER_FLAG_INTERLACED</code></span></p></td>
@@ -3411,14 +3627,14 @@
 <tr>
 <td><p><a name="GST-VIDEO-BUFFER-FLAG-RFF:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_BUFFER_FLAG_RFF</code></span></p></td>
 <td>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is interlaced, then the first field
-                                    (as defined by the <code class="literal">GST_VIDEO_BUFFER_TFF</code> flag setting)
+                                    (as defined by the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS"><code class="literal">GST_VIDEO_BUFFER_TFF</code></a> flag setting)
                                     is repeated.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-VIDEO-BUFFER-FLAG-ONEFIELD:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_BUFFER_FLAG_ONEFIELD</code></span></p></td>
 <td>If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is interlaced, then only the
-                                    first field (as defined by the <code class="literal">GST_VIDEO_BUFFER_TFF</code>
+                                    first field (as defined by the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS"><code class="literal">GST_VIDEO_BUFFER_TFF</code></a>
                                     flag setting) is to be displayed.
 </td>
 </tr>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
index ff764c5..34e7a8d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
@@ -62,7 +62,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp24657472"></a><p>
+<a name="idp30025936"></a><p>
 Provides useful functions and a base class for video filters.
 </p>
 <p>
@@ -98,8 +98,11 @@
 <p>
 The video filter class structure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html#GstBaseTransformClass"><span class="type">GstBaseTransformClass</span></a> <em class="structfield"><code><a name="GstVideoFilterClass.parent-class"></a>parent_class</code></em>;</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
index 13f6c5f..0591d79 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideometa</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
@@ -38,9 +38,10 @@
 <div class="refsynopsisdiv">
 <a name="gst-plugins-base-libs-gstvideometa.synopsis"></a><h2>Synopsis</h2>
 <pre class="synopsis">
-#include &lt;&gt;gst/video/gstvideometa.h&gt;
+#include &lt;gst/video/gstvideometa.h&gt;
 
 struct              <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta">GstVideoMeta</a>;
+                    <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform" title="GstVideoMetaTransform">GstVideoMetaTransform</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="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map" title="gst_video_meta_map ()">gst_video_meta_map</a>                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>,
                                                          <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
@@ -70,6 +71,22 @@
 struct              <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta" title="struct GstVideoCropMeta">GstVideoCropMeta</a>;
 #define             <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-crop-meta" title="gst_buffer_add_video_crop_meta()">gst_buffer_add_video_crop_meta</a>      (b)
 #define             <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-crop-meta" title="gst_buffer_get_video_crop_meta()">gst_buffer_get_video_crop_meta</a>      (b)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload" title="GstVideoGLTextureUpload ()">*GstVideoGLTextureUpload</a>)          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);
+struct              <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta">GstVideoGLTextureUploadMeta</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="returnvalue">GstVideoGLTextureUploadMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-gl-texture-upload-meta" title="gst_buffer_add_video_gl_texture_upload_meta ()">gst_buffer_add_video_gl_texture_upload_meta</a>
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstVideoGLTextureOrientation</span> texture_orientation</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_textures</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstVideoGLTextureType</span> texture_type[4]</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload" title="GstVideoGLTextureUpload ()"><span class="type">GstVideoGLTextureUpload</span></a> upload</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GBoxedCopyFunc"><span class="type">GBoxedCopyFunc</span></a> user_data_copy</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GBoxedFreeFunc"><span class="type">GBoxedFreeFunc</span></a> user_data_free</code></em>);
+#define             <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-gl-texture-upload-meta" title="gst_buffer_get_video_gl_texture_upload_meta()">gst_buffer_get_video_gl_texture_upload_meta</a>(b)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload" title="gst_video_gl_texture_upload_meta_upload ()">gst_video_gl_texture_upload_meta_upload</a>
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -102,8 +119,11 @@
 <p>
 Extra buffer metadata describing image properties
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoMeta.meta"></a>meta</code></em>;</span></p></td>
@@ -161,6 +181,37 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstVideoMetaTransform"></a><h3>GstVideoMetaTransform</h3>
+<pre class="programlisting">typedef struct {
+  GstVideoInfo *in_info;
+  GstVideoInfo *out_info;
+} GstVideoMetaTransform;
+</pre>
+<p>
+Extra data passed to a video transform <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMetaTransformFunction"><span class="type">GstMetaTransformFunction</span></a> such as:
+"gst-video-scale".
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *<em class="structfield"><code><a name="GstVideoMetaTransform.in-info"></a>in_info</code></em>;</span></p></td>
+<td>the input <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *<em class="structfield"><code><a name="GstVideoMetaTransform.out-info"></a>out_info</code></em>;</span></p></td>
+<td>the output <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-meta-map"></a><h3>gst_video_meta_map ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_meta_map                  (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>,
@@ -172,8 +223,11 @@
 Map the video plane with index <em class="parameter"><code>plane</code></em> in <em class="parameter"><code>meta</code></em> and return a pointer to the
 first byte of the plane and the stride of the plane.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -219,8 +273,11 @@
 <p>
 Unmap a previously mapped plane with <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map" title="gst_video_meta_map ()"><code class="function">gst_video_meta_map()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
@@ -264,8 +321,11 @@
 This function calculates the default offsets and strides and then calls
 <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-meta-full" title="gst_buffer_add_video_meta_full ()"><code class="function">gst_buffer_add_video_meta_full()</code></a> with them.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -310,8 +370,11 @@
 <p>
 Attaches GstVideoMeta metadata to <em class="parameter"><code>buffer</code></em> with the given parameters.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -372,8 +435,11 @@
 Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> metadata items when dealing with
 multiview buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
@@ -407,8 +473,11 @@
 <p>
 Extra buffer metadata describing image cropping.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.meta"></a>meta</code></em>;</span></p></td>
@@ -446,6 +515,146 @@
 <pre class="programlisting">#define gst_buffer_get_video_crop_meta(b) ((GstVideoCropMeta*)gst_buffer_get_meta((b),GST_VIDEO_CROP_META_API_TYPE))
 </pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoGLTextureUpload"></a><h3>GstVideoGLTextureUpload ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstVideoGLTextureUpload)          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoGLTextureUploadMeta"></a><h3>struct GstVideoGLTextureUploadMeta</h3>
+<pre class="programlisting">struct GstVideoGLTextureUploadMeta {
+  GstMeta       meta;
+
+  GstVideoGLTextureOrientation texture_orientation;
+  guint n_textures;
+  GstVideoGLTextureType texture_type[4];
+};
+</pre>
+<p>
+Extra buffer metadata for uploading a buffer to an OpenGL texture
+ID. The caller of <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload" title="gst_video_gl_texture_upload_meta_upload ()"><code class="function">gst_video_gl_texture_upload_meta_upload()</code></a> must
+have OpenGL set up and call this from a thread where it is valid
+to upload something to an OpenGL texture.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.meta"></a>meta</code></em>;</span></p></td>
+<td>parent <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">GstVideoGLTextureOrientation</span> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.texture-orientation"></a>texture_orientation</code></em>;</span></p></td>
+<td>Orientation of the textures</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.n-textures"></a>n_textures</code></em>;</span></p></td>
+<td>Number of textures that are generated</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">GstVideoGLTextureType</span> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.texture-type"></a>texture_type</code></em>[4];</span></p></td>
+<td>Type of each texture</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-add-video-gl-texture-upload-meta"></a><h3>gst_buffer_add_video_gl_texture_upload_meta ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="returnvalue">GstVideoGLTextureUploadMeta</span></a> * gst_buffer_add_video_gl_texture_upload_meta
+                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstVideoGLTextureOrientation</span> texture_orientation</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_textures</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstVideoGLTextureType</span> texture_type[4]</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload" title="GstVideoGLTextureUpload ()"><span class="type">GstVideoGLTextureUpload</span></a> upload</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GBoxedCopyFunc"><span class="type">GBoxedCopyFunc</span></a> user_data_copy</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GBoxedFreeFunc"><span class="type">GBoxedFreeFunc</span></a> user_data_free</code></em>);</pre>
+<p>
+Attaches GstVideoGLTextureUploadMeta metadata to <em class="parameter"><code>buffer</code></em> with the given
+parameters.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>upload</code></em> :</span></p></td>
+<td>the function to upload the buffer to a specific texture ID</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data for the implementor of <em class="parameter"><code>upload</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data_copy</code></em> :</span></p></td>
+<td>function to copy <em class="parameter"><code>user_data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data_free</code></em> :</span></p></td>
+<td>function to free <em class="parameter"><code>user_data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> on <em class="parameter"><code>buffer</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-video-gl-texture-upload-meta"></a><h3>gst_buffer_get_video_gl_texture_upload_meta()</h3>
+<pre class="programlisting">#define gst_buffer_get_video_gl_texture_upload_meta(b) ((GstVideoGLTextureUploadMeta*)gst_buffer_get_meta((b),GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-gl-texture-upload-meta-upload"></a><h3>gst_video_gl_texture_upload_meta_upload ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_gl_texture_upload_meta_upload
+                                                        (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);</pre>
+<p>
+Uploads the buffer which owns the meta to a specific texture ID.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>texture_id</code></em> :</span></p></td>
+<td>the texture IDs to upload to</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if uploading succeeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
index 8428986..05ecb32 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideoorientation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
@@ -111,8 +111,11 @@
 <p>
 <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface" title="struct GstVideoOrientationInterface"><span class="type">GstVideoOrientationInterface</span></a> interface.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstVideoOrientationInterface.iface"></a>iface</code></em>;</span></p></td>
@@ -161,8 +164,11 @@
 <p>
 Get the horizontal centering offset from the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -190,8 +196,11 @@
 <p>
 Get the horizontal flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -219,8 +228,11 @@
 <p>
 Get the vertical centering offset from the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -248,8 +260,11 @@
 <p>
 Get the vertical flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -277,8 +292,11 @@
 <p>
 Set the horizontal centering offset for the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -306,8 +324,11 @@
 <p>
 Set the horizontal flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -335,8 +356,11 @@
 <p>
 Set the vertical centering offset for the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
@@ -364,8 +388,11 @@
 <p>
 Set the vertical flipping state (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>video_orientation</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
index 2b8fb2d..5059685 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideooverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
@@ -77,10 +77,10 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp26428400"></a><p>
+<a name="idp23504864"></a><p>
 The <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface is used for 2 main purposes :
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
 To get a grab on the Window where the video sink element is going to render.
 This is achieved by either being informed about the Window identifier that
@@ -191,7 +191,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp26438512"></a><h3>Two basic usage scenarios</h3>
+<a name="idp24790736"></a><h3>Two basic usage scenarios</h3>
 <p>
 There are two basic usage scenarios: in the simplest case, the application
 knows exactly what particular element is used for video output, which is
@@ -225,10 +225,10 @@
 windowing systems are not thread-safe at all and a lot of care would be
 required to co-ordinate the toolkit and window system calls of the
 different threads (Gtk+ users please note: prior to Gtk+ 2.18
-<a href="http://developer.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
+<a href="/usr/share/gtk-doc/html/gdk2/gdk2-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
 within the bus sync handler; this macro was changed to a function call in
 Gtk+ 2.18 and later, which is likely to cause problems when called from a
-sync handler; see below for a better approach without <a href="http://developer.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
+sync handler; see below for a better approach without <a href="/usr/share/gtk-doc/html/gdk2/gdk2-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
 used in the callback).
 </p>
 </div>
@@ -236,7 +236,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp28364736"></a><h3>GstVideoOverlay and Gtk+</h3>
+<a name="idp24802896"></a><h3>GstVideoOverlay and Gtk+</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -379,19 +379,19 @@
   <span class="gtkdoc slc">// drawing onto the parent widget.</span>
   <span class="gtkdoc slc">// This is here just for pedagogical purposes, GDK_WINDOW_XID will call</span>
   <span class="gtkdoc slc">// it as well in newer Gtk versions</span>
-  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://developer.gnome.org/devel/gdk/gdk3-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
+  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="/usr/share/gtk-doc/html/gdk2/gdk2-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Couldn't create native window needed for GstVideoOverlay!&quot;</span><span class="gtkdoc opt">);</span>
 <span class="gtkdoc ppc">#endif</span>
 
 <span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
   <span class="gtkdoc opt">{</span>
-    gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
+    gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gdk2/gdk2-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
     video_window_handle <span class="gtkdoc opt">=</span> xid<span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">}</span>
 <span class="gtkdoc ppc">#endif</span>
 <span class="gtkdoc ppc">#ifdef GDK_WINDOWING_WIN32</span>
   <span class="gtkdoc opt">{</span>
-    HWND wnd <span class="gtkdoc opt">=</span> <span class="function">GDK_WINDOW_HWND</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
+    HWND wnd <span class="gtkdoc opt">=</span> <span class="function">GDK_WINDOW_HWND</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
     video_window_handle <span class="gtkdoc opt">= (</span>guintptr<span class="gtkdoc opt">)</span> wnd<span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">}</span>
 <span class="gtkdoc ppc">#endif</span>
@@ -403,25 +403,25 @@
   GtkWidget <span class="gtkdoc opt">*</span>video_window<span class="gtkdoc opt">;</span>
   GtkWidget <span class="gtkdoc opt">*</span>app_window<span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">...</span>
-  app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
+  app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
-  video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
+  video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/gtk2/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
   <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> <span class="string">&quot;realize&quot;</span><span class="gtkdoc opt">,</span>
       <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   <span class="gtkdoc slc">// usually the video_window will not be directly embedded into the</span>
   <span class="gtkdoc slc">// application window like this, but there will be many other widgets</span>
   <span class="gtkdoc slc">// and the video window will be embedded in one of them instead</span>
-  <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://developer.gnome.org/gtk2/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
   <span class="gtkdoc slc">// show the GUI</span>
-  <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc slc">// realize window now so that the video window gets created and we can</span>
   <span class="gtkdoc slc">// obtain its XID/HWND before the pipeline is started up and the videosink</span>
   <span class="gtkdoc slc">// asks for the XID/HWND of the window to render onto</span>
-  <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://developer.gnome.org/gtk2/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
 
   <span class="gtkdoc slc">// we should have the XID/HWND now</span>
   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_handle <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
@@ -447,7 +447,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp28369936"></a><h3>GstVideoOverlay and Qt</h3>
+<a name="idp30676032"></a><h3>GstVideoOverlay and Qt</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -601,8 +601,11 @@
 <p>
 <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstVideoOverlayInterface.iface"></a>iface</code></em>;</span></p></td>
@@ -638,8 +641,11 @@
 <p>
 This function should only be used by video overlay plugin developers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
@@ -663,8 +669,11 @@
 specific window (e.g. an XWindow on X11). Passing 0 as the  <em class="parameter"><code>handle</code></em> will
 tell the overlay to stop using that window and create an internal one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
@@ -691,8 +700,11 @@
 <p>
 This function should only be used by video overlay plugin developers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> which does not yet have an Window handle set</td>
@@ -707,8 +719,11 @@
 Tell an overlay that it has been exposed. This will redraw the current frame
 in the drawable even if the pipeline is PAUSED.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> to expose.</td>
@@ -727,8 +742,11 @@
 for them. This method allows you to disable events handling completely
 from the <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
@@ -763,8 +781,11 @@
 This method is needed for non fullscreen video overlay in UI toolkits that
 do not support subwindows.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
@@ -804,8 +825,11 @@
 Convenience function to check if the given message is a
 "prepare-window-handle" message from a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index ceaa8d6..1666c45 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideooverlaycomposition</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideometa.html" title="gstvideometa">
@@ -60,12 +60,14 @@
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()">gst_video_overlay_composition_make_writable</a>
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+#define             <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS" title="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS">GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS</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="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()">gst_video_overlay_composition_blend</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *video_buf</code></em>);
 
+struct              <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta">GstVideoOverlayCompositionMeta</a>;
 const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-meta-get-info" title="gst_video_overlay_composition_meta_get_info ()">gst_video_overlay_composition_meta_get_info</a>
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">GstVideoOverlayCompositionMeta</span> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-add-video-overlay-composition-meta" title="gst_buffer_add_video_overlay_composition_meta ()">gst_buffer_add_video_overlay_composition_meta</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta"><span class="returnvalue">GstVideoOverlayCompositionMeta</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-add-video-overlay-composition-meta" title="gst_buffer_add_video_overlay_composition_meta ()">gst_buffer_add_video_overlay_composition_meta</a>
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
 #define             <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-get-video-overlay-composition-meta" title="gst_buffer_get_video_overlay_composition_meta()">gst_buffer_get_video_overlay_composition_meta</a>(b)
@@ -132,7 +134,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp25336896"></a><p>
+<a name="idp28150768"></a><p>
 Functions to create and handle overlay compositions on video buffers.
 </p>
 <p>
@@ -143,7 +145,7 @@
 This API serves two main purposes:
 </p>
 <div class="itemizedlist">
-<span class="type">GstOverlayComposition</span><ul class="itemizedlist" type="disc">
+<span class="type">GstOverlayComposition</span><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 it can be used to attach overlay information (subtitles or logos)
 to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
@@ -182,8 +184,11 @@
 Creates a new video overlay composition object to hold one or more
 overlay rectangles.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -213,8 +218,11 @@
 of <em class="parameter"><code>comp</code></em>, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> to ensure
 a composition and its rectangles can be modified.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -237,8 +245,11 @@
 Decreases the refcount of the composition. If the refcount reaches 0, the
 composition will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -256,8 +267,11 @@
 Adds an overlay rectangle to an existing overlay composition object. This
 must be done right after creating the overlay composition.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -281,8 +295,11 @@
 <p>
 Returns the number of <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>s contained in <em class="parameter"><code>comp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -305,8 +322,11 @@
 <p>
 Returns the <em class="parameter"><code>n</code></em>-th <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> contained in <em class="parameter"><code>comp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -339,8 +359,11 @@
 (meaning there will never be a rectangle with the same sequence number as
 a composition).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -367,8 +390,11 @@
 actual overlay pixel data buffers contained in the rectangles are not
 copied.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -396,8 +422,11 @@
 rectangles will also be copied, but the actual overlay pixel data buffers
 contained in the rectangles are not copied.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -415,6 +444,16 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS"></a><h3>GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS</h3>
+<pre class="programlisting">#define             GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS</pre>
+<p>
+Video formats supported by <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()"><code class="function">gst_video_overlay_composition_blend()</code></a>, for
+use in overlay elements' pad template caps.
+</p>
+<p class="since">Since 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-overlay-composition-blend"></a><h3>gst_video_overlay_composition_blend ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_video_overlay_composition_blend (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *video_buf</code></em>);</pre>
@@ -423,8 +462,11 @@
 contained in <em class="parameter"><code>video_buf</code></em>. The data in <em class="parameter"><code>video_buf</code></em> must be writable and
 mapped appropriately.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -440,6 +482,37 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstVideoOverlayCompositionMeta"></a><h3>struct GstVideoOverlayCompositionMeta</h3>
+<pre class="programlisting">struct GstVideoOverlayCompositionMeta {
+  GstMeta meta;
+
+  GstVideoOverlayComposition *overlay;
+};
+</pre>
+<p>
+Extra buffer metadata describing image overlay data.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoOverlayCompositionMeta.meta"></a>meta</code></em>;</span></p></td>
+<td>parent <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *<em class="structfield"><code><a name="GstVideoOverlayCompositionMeta.overlay"></a>overlay</code></em>;</span></p></td>
+<td>the attached <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-video-overlay-composition-meta-get-info"></a><h3>gst_video_overlay_composition_meta_get_info ()</h3>
 <pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMeta.html#GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * gst_video_overlay_composition_meta_get_info
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
@@ -447,7 +520,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-add-video-overlay-composition-meta"></a><h3>gst_buffer_add_video_overlay_composition_meta ()</h3>
-<pre class="programlisting"><span class="returnvalue">GstVideoOverlayCompositionMeta</span> * gst_buffer_add_video_overlay_composition_meta
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta"><span class="returnvalue">GstVideoOverlayCompositionMeta</span></a> * gst_buffer_add_video_overlay_composition_meta
                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
 <p>
@@ -455,8 +528,11 @@
 reference to the composition, meaning this function does not take ownership
 of <em class="parameter"><code>comp</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
@@ -493,8 +569,11 @@
 <p>
 Overlay format flags.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE</code></span></p></td>
@@ -546,8 +625,11 @@
 and also many rendering libraries such as Cairo, for example.
 The pixel data buffer must have <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pixels</code></em> :</span></p></td>
@@ -600,8 +682,11 @@
 it is unlikely that someone will hold the single reference to the rectangle
 and not know that that's the case).
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
@@ -624,8 +709,11 @@
 Decreases the refcount of the rectangle. If the refcount reaches 0, the
 rectangle will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -639,8 +727,11 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_video_overlay_rectangle_get_pixels_raw
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -674,8 +765,11 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_video_overlay_rectangle_get_pixels_argb
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -708,8 +802,11 @@
 <pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_video_overlay_rectangle_get_pixels_ayuv
                                                         (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -748,8 +845,11 @@
 need to be scaled to the render dimensions, which can be retrieved using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -786,8 +886,11 @@
 need to be scaled to the render dimensions, which can be retrieved using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -824,8 +927,11 @@
 need to be scaled to the render dimensions, which can be retrieved using
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -863,8 +969,11 @@
 Retrieves the render position and render dimension of the overlay
 rectangle on the video.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -920,8 +1029,11 @@
 renderer could also use the GstBuffer pointers as a hint for changed
 pixel-data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -957,8 +1069,11 @@
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -995,8 +1110,11 @@
 actual overlay pixel data buffers contained in the rectangle are not
 copied.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -1024,8 +1142,11 @@
 uses premultiplied or not, it can request the pixel data in the format
 it is stored in, to avoid unnecessary conversion.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -1047,8 +1168,11 @@
 <p>
 Retrieves the global-alpha value associated with a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
@@ -1079,8 +1203,11 @@
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
 <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
index d16c5a3..fcf9963 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
@@ -78,7 +78,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp24791616"></a><p>
+<a name="idp22507344"></a><p>
 Provides useful functions and a base class for video sinks. 
 </p>
 <p>
@@ -102,8 +102,11 @@
 The video sink instance structure. Derived video sinks should set the
 <em class="parameter"><code>height</code></em> and <em class="parameter"><code>width</code></em> members.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.width"></a>width</code></em>;</span></p></td>
@@ -129,8 +132,11 @@
 The video sink class structure. Derived classes should override the
 <em class="parameter"><code>show_frame</code></em> virtual function.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html#GstBaseSinkClass"><span class="type">GstBaseSinkClass</span></a> <em class="structfield"><code><a name="GstVideoSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
@@ -159,8 +165,11 @@
 <p>
 Helper structure representing a rectangular area.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.x"></a>x</code></em>;</span></p></td>
@@ -195,8 +204,11 @@
 <p>
 Get the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink"><span class="type">GstVideoSink</span></a>
@@ -222,8 +234,11 @@
 without <em class="parameter"><code>scaling</code></em>. It handles clipping if the <em class="parameter"><code>src</code></em> rectangle is bigger than
 the <em class="parameter"><code>dst</code></em> one and <em class="parameter"><code>scaling</code></em> is set to FALSE.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
index b4214e7..0754c39 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstvideoutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-video.html" title="Video Library">
 <link rel="prev" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">
@@ -96,8 +96,11 @@
 A <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> represents a video frame both in raw and
 encoded form.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstVideoCodecFrame.system-frame-number"></a>system_frame_number</code></em>;</span></p></td>
@@ -164,8 +167,11 @@
 <p>
 Flags for <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY</code></span></p></td>
@@ -198,8 +204,11 @@
 <p>
 The entire set of flags for the <em class="parameter"><code>frame</code></em>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -215,8 +224,11 @@
 <p>
 Checks whether the given <em class="parameter"><code>flag</code></em> is set
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -238,8 +250,11 @@
 <p>
 This macro sets the given bits
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -261,8 +276,11 @@
 <p>
 This macro usets the given bits.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -284,8 +302,11 @@
 <p>
 Tests if the buffer should only be decoded but not sent downstream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -302,8 +323,11 @@
 Tests if the frame must be encoded as a keyframe. Applies only to
 frames provided to encoders. Decoders can safely ignore this field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -324,8 +348,11 @@
 Applies only to frames provided to encoders. Decoders can safely
 ignore this field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -344,8 +371,11 @@
 <p>
 Decoder implementations can use this to detect keyframes.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -368,8 +398,11 @@
 <p>
 Encoder implementation can safely ignore this field.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -404,8 +437,11 @@
 Decoder implementing parsing features should set this when they
 detect such a synchronization point.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -438,8 +474,11 @@
 <p>
 Increases the refcount of the given frame by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -461,8 +500,11 @@
 Decreases the refcount of the frame. If the refcount reaches 0, the frame
 will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
@@ -484,8 +526,11 @@
 If a <em class="parameter"><code>user_data</code></em> was previously set, then the previous set <em class="parameter"><code>notify</code></em> will be called
 before the <em class="parameter"><code>user_data</code></em> is replaced.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -512,8 +557,11 @@
 Gets private data set on the frame by the subclass via
 <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-user-data" title="gst_video_codec_frame_set_user_data ()"><code class="function">gst_video_codec_frame_set_user_data()</code></a> previously.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
@@ -552,8 +600,11 @@
 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state" title="gst_video_decoder_set_output_state ()"><code class="function">gst_video_decoder_set_output_state()</code></a></code></em> or
 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()"><code class="function">gst_video_encoder_set_output_state()</code></a></code></em> methods.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoCodecState.info"></a>info</code></em>;</span></p></td>
@@ -579,8 +630,11 @@
 <p>
 Increases the refcount of the given state by one.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
@@ -602,8 +656,11 @@
 Decreases the refcount of the state. If the refcount reaches 0, the state
 will be freed.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
 <td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>
diff --git a/docs/libs/html/gstreamer-allocators.html b/docs/libs/html/gstreamer-allocators.html
new file mode 100644
index 0000000..54894b7
--- /dev/null
+++ b/docs/libs/html/gstreamer-allocators.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Allocators Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
+<link rel="prev" href="compiling.html" title="Compiling">
+<link rel="next" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="compiling.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-dmabuf.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="gstreamer-allocators"></a>Allocators Library</h2></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"> — Memory wrapper for Linux dmabuf memory</span>
+</dt></dl></div>
+<p>
+        This library should be linked to by getting cflags and libs from
+        <code class="filename">gstreamer-plugins-base-1.0.pc</code> and adding
+        <code class="filename">-lgstallocators-1.0</code> to the library flags.
+      </p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-app.html b/docs/libs/html/gstreamer-app.html
index e1eec88..5b1308f 100644
--- a/docs/libs/html/gstreamer-app.html
+++ b/docs/libs/html/gstreamer-app.html
@@ -3,17 +3,17 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>App Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="compiling.html" title="Compiling">
+<link rel="prev" href="gst-plugins-base-libs-dmabuf.html" title="dmabuf">
 <link rel="next" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="compiling.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-dmabuf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
 <th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-app"></a>App Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"> — Easy way for applications to inject buffers into a
     pipeline</span>
diff --git a/docs/libs/html/gstreamer-audio.html b/docs/libs/html/gstreamer-audio.html
index fe9a240..60dcd85 100644
--- a/docs/libs/html/gstreamer-audio.html
+++ b/docs/libs/html/gstreamer-audio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Audio Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-appsink.html" title="appsink">
@@ -22,11 +22,14 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-audio"></a>Audio Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"> — Support library for audio elements</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"> — Base class for Audio CD sources</span>
 </dt>
 <dt>
@@ -57,7 +60,7 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"> — Base class for audio sources</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmultichannel.html">gstmultichannel</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
diff --git a/docs/libs/html/gstreamer-base-utils.html b/docs/libs/html/gstreamer-base-utils.html
index adb7eb5..80db661 100644
--- a/docs/libs/html/gstreamer-base-utils.html
+++ b/docs/libs/html/gstreamer-base-utils.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Base Utils Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-base-utils"></a>Base Utils Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
 </dt>
diff --git a/docs/libs/html/gstreamer-ffft.html b/docs/libs/html/gstreamer-ffft.html
index a961480..08892c8 100644
--- a/docs/libs/html/gstreamer-ffft.html
+++ b/docs/libs/html/gstreamer-ffft.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>FFT Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-ffft"></a>FFT Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"> — General FFT functions and declarations</span>
 </dt>
diff --git a/docs/libs/html/gstreamer-libs-hierarchy.html b/docs/libs/html/gstreamer-libs-hierarchy.html
index b210ecd..4e1069d 100644
--- a/docs/libs/html/gstreamer-libs-hierarchy.html
+++ b/docs/libs/html/gstreamer-libs-hierarchy.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part II. Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">
@@ -57,7 +57,7 @@
         <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget">GstEncodingTarget</a>
         <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo">GstDiscovererInfo</a>
     GInterface
-        GstNavigation
+        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>
         <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>
         <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>
         <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>
diff --git a/docs/libs/html/gstreamer-plugins-base.html b/docs/libs/html/gstreamer-plugins-base.html
index 00a1969..a2c8da3 100644
--- a/docs/libs/html/gstreamer-plugins-base.html
+++ b/docs/libs/html/gstreamer-plugins-base.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part I. GStreamer Base Plugins Libraries</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
@@ -24,12 +24,16 @@
 <a name="gstreamer-plugins-base"></a>Part I. GStreamer Base Plugins Libraries</h1></div></div></div>
 <div class="toc">
 <p><b>Table of Contents</b></p>
-<dl>
+<dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="compiling.html">Compiling</a></span><span class="refpurpose"> — 
 How to compile against the base plugins libraries
 </span>
 </dt>
+<dt><span class="chapter"><a href="gstreamer-allocators.html">Allocators Library</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"> — Memory wrapper for Linux dmabuf memory</span>
+</dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-app.html">App Library</a></span></dt>
 <dd><dl>
 <dt>
@@ -47,6 +51,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"> — Support library for audio elements</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"> — Base class for Audio CD sources</span>
 </dt>
 <dt>
@@ -77,7 +84,7 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"> — Base class for audio sources</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmultichannel.html">gstmultichannel</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
@@ -251,7 +258,7 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"> — Interface for adjusting color balance settings</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"> — Object representing a channel from the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose">Object representing a channel from the <span class="type">GstColorBalance</span>
         interface.</span>
 </dt>
 <dt>
diff --git a/docs/libs/html/gstreamer-riff.html b/docs/libs/html/gstreamer-riff.html
index 9cc68c2..79de433 100644
--- a/docs/libs/html/gstreamer-riff.html
+++ b/docs/libs/html/gstreamer-riff.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Riff Media Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-riff"></a>Riff Media Library</h2></div></div></div>
-<div class="toc"><dl><dt>
+<div class="toc"><dl class="toc"><dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"> — Riff fileformat utillity functions.</span>
 </dt></dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-rtp.html b/docs/libs/html/gstreamer-rtp.html
index b4eed76..eeea27d 100644
--- a/docs/libs/html/gstreamer-rtp.html
+++ b/docs/libs/html/gstreamer-rtp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>RTP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-rtp"></a>RTP Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"> — Base class for audio RTP payloader</span>
 </dt>
diff --git a/docs/libs/html/gstreamer-rtsp.html b/docs/libs/html/gstreamer-rtsp.html
index 400093d..a4bb791 100644
--- a/docs/libs/html/gstreamer-rtsp.html
+++ b/docs/libs/html/gstreamer-rtsp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>RTSP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstrtphdrext.html" title="gstrtphdrext">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-rtsp"></a>RTSP Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"> — manage RTSP connections</span>
 </dt>
diff --git a/docs/libs/html/gstreamer-sdp.html b/docs/libs/html/gstreamer-sdp.html
index 38ae9c4..197a911 100644
--- a/docs/libs/html/gstreamer-sdp.html
+++ b/docs/libs/html/gstreamer-sdp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>SDP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-sdp"></a>SDP Library</h2></div></div></div>
-<div class="toc"><dl><dt>
+<div class="toc"><dl class="toc"><dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"> — Helper methods for dealing with SDP messages</span>
 </dt></dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-tag.html b/docs/libs/html/gstreamer-tag.html
index 4256734..cda6343 100644
--- a/docs/libs/html/gstreamer-tag.html
+++ b/docs/libs/html/gstreamer-tag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Tag Support Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-tag"></a>Tag Support Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"> — additional tag definitions for plugins and applications</span>
 </dt>
diff --git a/docs/libs/html/gstreamer-video.html b/docs/libs/html/gstreamer-video.html
index ae5c03f..d78a936 100644
--- a/docs/libs/html/gstreamer-video.html
+++ b/docs/libs/html/gstreamer-video.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Video Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <link rel="prev" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
@@ -22,7 +22,7 @@
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-video"></a>Video Library</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
 </dt>
@@ -42,7 +42,7 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"> — Interface for adjusting color balance settings</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"> — Object representing a channel from the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose">Object representing a channel from the <span class="type">GstColorBalance</span>
         interface.</span>
 </dt>
 <dt>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 81c4209..521d3eb 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="next" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -15,13 +15,13 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Library 1.0 (1.0.8)
+      for GStreamer Base Library 1.0 (1.1.2)
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
     </p></div>
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="part"><a href="gstreamer-plugins-base.html">I. GStreamer Base Plugins Libraries</a></span></dt>
 <dd><dl>
 <dt>
@@ -29,6 +29,10 @@
 How to compile against the base plugins libraries
 </span>
 </dt>
+<dt><span class="chapter"><a href="gstreamer-allocators.html">Allocators Library</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"> — Memory wrapper for Linux dmabuf memory</span>
+</dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-app.html">App Library</a></span></dt>
 <dd><dl>
 <dt>
@@ -46,6 +50,9 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"> — Support library for audio elements</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"> — Base class for Audio CD sources</span>
 </dt>
 <dt>
@@ -76,7 +83,7 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"> — Base class for audio sources</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmultichannel.html">gstmultichannel</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
@@ -250,7 +257,7 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"> — Interface for adjusting color balance settings</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"> — Object representing a channel from the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose">Object representing a channel from the <span class="type">GstColorBalance</span>
         interface.</span>
 </dt>
 <dt>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index b04dafc..c47a2df 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -1,5 +1,14 @@
 <ONLINE href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/">
 <ANCHOR id="compiling" href="gst-plugins-base-libs-1.0/compiling.html">
+<ANCHOR id="gst-plugins-base-libs-dmabuf" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html">
+<ANCHOR id="gst-plugins-base-libs-dmabuf.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.synopsis">
+<ANCHOR id="gst-plugins-base-libs-dmabuf.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.description">
+<ANCHOR id="gst-plugins-base-libs-dmabuf.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.details">
+<ANCHOR id="gst-dmabuf-allocator-alloc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-alloc">
+<ANCHOR id="gst-dmabuf-allocator-obtain" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-obtain">
+<ANCHOR id="gst-dmabuf-memory-get-fd" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd">
+<ANCHOR id="gst-is-dmabuf-memory" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory">
+<ANCHOR id="gst-plugins-base-libs-dmabuf.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-dmabuf.html#gst-plugins-base-libs-dmabuf.see-also">
 <ANCHOR id="gst-plugins-base-libs-appsrc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html">
 <ANCHOR id="gst-plugins-base-libs-appsrc.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.synopsis">
 <ANCHOR id="gst-plugins-base-libs-appsrc.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.description">
@@ -121,6 +130,7 @@
 <ANCHOR id="gst-audio-info-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-info-free">
 <ANCHOR id="gst-audio-info-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-info-new">
 <ANCHOR id="gst-audio-info-set-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-info-set-format">
+<ANCHOR id="gst-audio-info-is-equal" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal">
 <ANCHOR id="gst-audio-format-build-integer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-format-build-integer">
 <ANCHOR id="gst-audio-format-fill-silence" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-format-fill-silence">
 <ANCHOR id="gst-audio-format-from-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-format-from-string">
@@ -157,8 +167,24 @@
 <ANCHOR id="GST-AUDIO-INFO-LAYOUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-LAYOUT:CAPS">
 <ANCHOR id="GST-FRAMES-TO-CLOCK-TIME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS">
 <ANCHOR id="GST-CLOCK-TIME-TO-FRAMES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS">
+<ANCHOR id="GST-AUDIO-NE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-NE:CAPS">
+<ANCHOR id="GST-AUDIO-OE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-OE:CAPS">
+<ANCHOR id="GST-AUDIO-RATE-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-RATE-RANGE:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNELS-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CHANNELS-RANGE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMATS-ALL:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMATS-ALL:CAPS">
+<ANCHOR id="GST-AUDIO-CAPS-MAKE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CAPS-MAKE:CAPS">
 <ANCHOR id="GST-AUDIO-DEF-RATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS">
+<ANCHOR id="GST-AUDIO-DEF-CHANNELS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-CHANNELS:CAPS">
+<ANCHOR id="GST-AUDIO-DEF-FORMAT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-FORMAT:CAPS">
 <ANCHOR id="gst-audio-buffer-clip" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip">
+<ANCHOR id="gst-plugins-base-libs-gstaudiometa" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudiometa.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstaudiometa.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudiometa.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-plugins-base-libs-gstaudiometa.details">
+<ANCHOR id="GstAudioDownmixMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta">
+<ANCHOR id="gst-buffer-add-audio-downmix-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-downmix-meta">
+<ANCHOR id="gst-buffer-get-audio-downmix-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta">
+<ANCHOR id="gst-buffer-get-audio-downmix-meta-for-channels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta-for-channels">
 <ANCHOR id="gst-plugins-base-libs-gstaudiocdsrc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiocdsrc.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudiocdsrc.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiocdsrc.html#gst-plugins-base-libs-gstaudiocdsrc.synopsis">
 <ANCHOR id="GstAudioCdSrc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc">
@@ -385,42 +411,50 @@
 <ANCHOR id="GstAudioBaseSrc--provide-clock" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--provide-clock">
 <ANCHOR id="GstAudioBaseSrc--slave-method" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--slave-method">
 <ANCHOR id="gst-plugins-base-libs-gstaudiobasesrc.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiobasesrc.html#gst-plugins-base-libs-gstaudiobasesrc.see-also">
-<ANCHOR id="gst-plugins-base-libs-gstmultichannel" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html">
-<ANCHOR id="gst-plugins-base-libs-gstmultichannel.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#gst-plugins-base-libs-gstmultichannel.synopsis">
-<ANCHOR id="gst-plugins-base-libs-gstmultichannel.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#gst-plugins-base-libs-gstmultichannel.description">
-<ANCHOR id="gst-plugins-base-libs-gstmultichannel.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#gst-plugins-base-libs-gstmultichannel.details">
-<ANCHOR id="GstAudioChannelPosition" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-MONO:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-MONO:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS">
+<ANCHOR id="gst-plugins-base-libs-gstaudiochannels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudiochannels.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstaudiochannels.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudiochannels.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-plugins-base-libs-gstaudiochannels.details">
+<ANCHOR id="GstAudioChannelPosition" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-MONO:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-MONO:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS">
+<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-MASK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#GST-AUDIO-CHANNEL-POSITION-MASK:CAPS">
+<ANCHOR id="gst-audio-channel-positions-to-mask" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-mask">
+<ANCHOR id="gst-audio-channel-positions-from-mask" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-from-mask">
+<ANCHOR id="gst-audio-channel-positions-to-valid-order" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order">
+<ANCHOR id="gst-audio-check-valid-channel-positions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-check-valid-channel-positions">
+<ANCHOR id="gst-audio-buffer-reorder-channels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-buffer-reorder-channels">
+<ANCHOR id="gst-audio-reorder-channels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-reorder-channels">
+<ANCHOR id="gst-audio-get-channel-reorder-map" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiochannels.html#gst-audio-get-channel-reorder-map">
 <ANCHOR id="gst-plugins-base-libs-gstaudioringbuffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html">
 <ANCHOR id="gst-plugins-base-libs-gstaudioringbuffer.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#gst-plugins-base-libs-gstaudioringbuffer.synopsis">
 <ANCHOR id="GstAudioRingBuffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer">
@@ -435,6 +469,7 @@
 <ANCHOR id="GST-AUDIO-RING-BUFFER-STATE-STOPPED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-STOPPED:CAPS">
 <ANCHOR id="GST-AUDIO-RING-BUFFER-STATE-PAUSED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-PAUSED:CAPS">
 <ANCHOR id="GST-AUDIO-RING-BUFFER-STATE-STARTED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-STARTED:CAPS">
+<ANCHOR id="GST-AUDIO-RING-BUFFER-STATE-ERROR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-STATE-ERROR:CAPS">
 <ANCHOR id="GstAudioRingBufferFormatType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferFormatType">
 <ANCHOR id="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-RAW:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-FORMAT-TYPE-RAW:CAPS">
 <ANCHOR id="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MU-LAW:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioringbuffer.html#GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MU-LAW:CAPS">
@@ -734,6 +769,7 @@
 <ANCHOR id="GST-RTCP-RTPFB-TYPE-NACK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-NACK:CAPS">
 <ANCHOR id="GST-RTCP-RTPFB-TYPE-TMMBR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBR:CAPS">
 <ANCHOR id="GST-RTCP-RTPFB-TYPE-TMMBN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBN:CAPS">
+<ANCHOR id="GST-RTCP-RTPFB-TYPE-RCTP-SR-REQ:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-RCTP-SR-REQ:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-PLI:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-PLI:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-SLI:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-SLI:CAPS">
 <ANCHOR id="GST-RTCP-PSFB-TYPE-RPSI:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-RPSI:CAPS">
@@ -839,6 +875,10 @@
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.description">
 <ANCHOR id="gst-plugins-base-libs-gstrtphdrext.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-plugins-base-libs-gstrtphdrext.details">
+<ANCHOR id="gst-rtp-hdrext-get-ntp-56" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-56">
+<ANCHOR id="gst-rtp-hdrext-get-ntp-64" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-get-ntp-64">
+<ANCHOR id="gst-rtp-hdrext-set-ntp-56" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-56">
+<ANCHOR id="gst-rtp-hdrext-set-ntp-64" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtphdrext.html#gst-rtp-hdrext-set-ntp-64">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.description">
@@ -881,6 +921,8 @@
 <ANCHOR id="gst-rtsp-watch-reset" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-reset">
 <ANCHOR id="gst-rtsp-watch-send-message" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message">
 <ANCHOR id="gst-rtsp-watch-write-data" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data">
+<ANCHOR id="gst-rtsp-watch-get-send-backlog" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-get-send-backlog">
+<ANCHOR id="gst-rtsp-watch-set-send-backlog" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog">
 <ANCHOR id="gst-plugins-base-libs-gstrtspconnection.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspconnection.html#gst-plugins-base-libs-gstrtspconnection.see-also">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.synopsis">
@@ -953,6 +995,7 @@
 <ANCHOR id="gst-rtsp-header-allow-multiple" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple">
 <ANCHOR id="gst-rtsp-status-as-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text">
 <ANCHOR id="gst-rtsp-options-as-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text">
+<ANCHOR id="gst-rtsp-options-from-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-from-text">
 <ANCHOR id="gst-rtsp-find-header-field" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field">
 <ANCHOR id="gst-rtsp-find-method" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method">
 <ANCHOR id="gst-plugins-base-libs-gstrtspdefs.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.see-also">
@@ -1011,12 +1054,17 @@
 <ANCHOR id="GST-RTSP-RANGE-CLOCK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-RANGE-CLOCK:CAPS">
 <ANCHOR id="GstRTSPTimeRange" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange">
 <ANCHOR id="GstRTSPTime" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime">
+<ANCHOR id="GstRTSPTime2" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2">
 <ANCHOR id="GstRTSPTimeType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType">
 <ANCHOR id="GST-RTSP-TIME-SECONDS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-SECONDS:CAPS">
 <ANCHOR id="GST-RTSP-TIME-NOW:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS">
 <ANCHOR id="GST-RTSP-TIME-END:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-END:CAPS">
+<ANCHOR id="GST-RTSP-TIME-FRAMES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-FRAMES:CAPS">
+<ANCHOR id="GST-RTSP-TIME-UTC:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-UTC:CAPS">
 <ANCHOR id="gst-rtsp-range-parse" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse">
+<ANCHOR id="gst-rtsp-range-get-times" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times">
 <ANCHOR id="gst-rtsp-range-to-string" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string">
+<ANCHOR id="gst-rtsp-range-convert-units" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-convert-units">
 <ANCHOR id="gst-rtsp-range-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html">
 <ANCHOR id="gst-plugins-base-libs-gstrtsptransport.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-plugins-base-libs-gstrtsptransport.synopsis">
@@ -1037,6 +1085,7 @@
 <ANCHOR id="GST-RTSP-LOWER-TRANS-UDP-MCAST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-UDP-MCAST:CAPS">
 <ANCHOR id="GST-RTSP-LOWER-TRANS-TCP:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-TCP:CAPS">
 <ANCHOR id="GST-RTSP-LOWER-TRANS-HTTP:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-HTTP:CAPS">
+<ANCHOR id="GST-RTSP-LOWER-TRANS-TLS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-LOWER-TRANS-TLS:CAPS">
 <ANCHOR id="GstRTSPTransport" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport">
 <ANCHOR id="gst-rtsp-transport-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-new">
 <ANCHOR id="gst-rtsp-transport-init" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init">
@@ -1067,6 +1116,8 @@
 <ANCHOR id="GST-SDP-EINVAL:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-EINVAL:CAPS">
 <ANCHOR id="GstSDPOrigin" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin">
 <ANCHOR id="GstSDPConnection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection">
+<ANCHOR id="gst-sdp-connection-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set">
+<ANCHOR id="gst-sdp-connection-clear" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear">
 <ANCHOR id="GST-SDP-BWTYPE-CT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-CT:CAPS">
 <ANCHOR id="GST-SDP-BWTYPE-AS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-AS:CAPS">
 <ANCHOR id="GST-SDP-BWTYPE-EXT-PREFIX:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-EXT-PREFIX:CAPS">
@@ -1074,10 +1125,18 @@
 <ANCHOR id="GST-SDP-BWTYPE-RS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RS:CAPS">
 <ANCHOR id="GST-SDP-BWTYPE-TIAS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-TIAS:CAPS">
 <ANCHOR id="GstSDPBandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth">
+<ANCHOR id="gst-sdp-bandwidth-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set">
+<ANCHOR id="gst-sdp-bandwidth-clear" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-clear">
 <ANCHOR id="GstSDPTime" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime">
+<ANCHOR id="gst-sdp-time-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-set">
+<ANCHOR id="gst-sdp-time-clear" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-clear">
 <ANCHOR id="GstSDPZone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone">
+<ANCHOR id="gst-sdp-zone-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-set">
+<ANCHOR id="gst-sdp-zone-clear" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-clear">
 <ANCHOR id="GstSDPKey" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey">
 <ANCHOR id="GstSDPAttribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute">
+<ANCHOR id="gst-sdp-attribute-set" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-set">
+<ANCHOR id="gst-sdp-attribute-clear" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-clear">
 <ANCHOR id="GstSDPMedia" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia">
 <ANCHOR id="GstSDPMessage" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage">
 <ANCHOR id="gst-sdp-message-new" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new">
@@ -1101,20 +1160,35 @@
 <ANCHOR id="gst-sdp-message-set-uri" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri">
 <ANCHOR id="gst-sdp-message-emails-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len">
 <ANCHOR id="gst-sdp-message-get-email" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email">
+<ANCHOR id="gst-sdp-message-insert-email" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-email">
+<ANCHOR id="gst-sdp-message-replace-email" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-email">
+<ANCHOR id="gst-sdp-message-remove-email" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-email">
 <ANCHOR id="gst-sdp-message-add-email" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email">
 <ANCHOR id="gst-sdp-message-phones-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len">
 <ANCHOR id="gst-sdp-message-get-phone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone">
+<ANCHOR id="gst-sdp-message-insert-phone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-phone">
+<ANCHOR id="gst-sdp-message-replace-phone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-phone">
+<ANCHOR id="gst-sdp-message-remove-phone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-phone">
 <ANCHOR id="gst-sdp-message-add-phone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone">
 <ANCHOR id="gst-sdp-message-get-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection">
 <ANCHOR id="gst-sdp-message-set-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection">
 <ANCHOR id="gst-sdp-message-bandwidths-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len">
 <ANCHOR id="gst-sdp-message-get-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth">
+<ANCHOR id="gst-sdp-message-insert-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-bandwidth">
+<ANCHOR id="gst-sdp-message-replace-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-bandwidth">
+<ANCHOR id="gst-sdp-message-remove-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-bandwidth">
 <ANCHOR id="gst-sdp-message-add-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth">
 <ANCHOR id="gst-sdp-message-times-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len">
 <ANCHOR id="gst-sdp-message-get-time" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time">
+<ANCHOR id="gst-sdp-message-insert-time" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-time">
+<ANCHOR id="gst-sdp-message-replace-time" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-time">
+<ANCHOR id="gst-sdp-message-remove-time" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-time">
 <ANCHOR id="gst-sdp-message-add-time" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time">
 <ANCHOR id="gst-sdp-message-zones-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len">
 <ANCHOR id="gst-sdp-message-get-zone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone">
+<ANCHOR id="gst-sdp-message-insert-zone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-zone">
+<ANCHOR id="gst-sdp-message-replace-zone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-zone">
+<ANCHOR id="gst-sdp-message-remove-zone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-zone">
 <ANCHOR id="gst-sdp-message-add-zone" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone">
 <ANCHOR id="gst-sdp-message-get-key" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key">
 <ANCHOR id="gst-sdp-message-set-key" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key">
@@ -1122,6 +1196,9 @@
 <ANCHOR id="gst-sdp-message-get-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute">
 <ANCHOR id="gst-sdp-message-get-attribute-val" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val">
 <ANCHOR id="gst-sdp-message-get-attribute-val-n" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n">
+<ANCHOR id="gst-sdp-message-insert-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-attribute">
+<ANCHOR id="gst-sdp-message-replace-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-attribute">
+<ANCHOR id="gst-sdp-message-remove-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-attribute">
 <ANCHOR id="gst-sdp-message-add-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute">
 <ANCHOR id="gst-sdp-message-medias-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len">
 <ANCHOR id="gst-sdp-message-get-media" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media">
@@ -1131,6 +1208,7 @@
 <ANCHOR id="gst-sdp-media-init" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init">
 <ANCHOR id="gst-sdp-media-uninit" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit">
 <ANCHOR id="gst-sdp-media-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free">
+<ANCHOR id="gst-sdp-media-as-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text">
 <ANCHOR id="gst-sdp-media-get-media" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media">
 <ANCHOR id="gst-sdp-media-set-media" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media">
 <ANCHOR id="gst-sdp-media-get-port" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port">
@@ -1140,14 +1218,23 @@
 <ANCHOR id="gst-sdp-media-set-proto" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto">
 <ANCHOR id="gst-sdp-media-formats-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len">
 <ANCHOR id="gst-sdp-media-get-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format">
+<ANCHOR id="gst-sdp-media-insert-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-format">
+<ANCHOR id="gst-sdp-media-replace-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-format">
+<ANCHOR id="gst-sdp-media-remove-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-format">
 <ANCHOR id="gst-sdp-media-add-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format">
 <ANCHOR id="gst-sdp-media-get-information" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information">
 <ANCHOR id="gst-sdp-media-set-information" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information">
 <ANCHOR id="gst-sdp-media-connections-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len">
 <ANCHOR id="gst-sdp-media-get-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection">
+<ANCHOR id="gst-sdp-media-insert-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-connection">
+<ANCHOR id="gst-sdp-media-replace-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-connection">
+<ANCHOR id="gst-sdp-media-remove-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-connection">
 <ANCHOR id="gst-sdp-media-add-connection" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection">
 <ANCHOR id="gst-sdp-media-bandwidths-len" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len">
 <ANCHOR id="gst-sdp-media-get-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth">
+<ANCHOR id="gst-sdp-media-insert-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-bandwidth">
+<ANCHOR id="gst-sdp-media-replace-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-bandwidth">
+<ANCHOR id="gst-sdp-media-remove-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-bandwidth">
 <ANCHOR id="gst-sdp-media-add-bandwidth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth">
 <ANCHOR id="gst-sdp-media-get-key" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key">
 <ANCHOR id="gst-sdp-media-set-key" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key">
@@ -1155,8 +1242,10 @@
 <ANCHOR id="gst-sdp-media-get-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute">
 <ANCHOR id="gst-sdp-media-get-attribute-val" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val">
 <ANCHOR id="gst-sdp-media-get-attribute-val-n" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n">
+<ANCHOR id="gst-sdp-media-insert-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-attribute">
+<ANCHOR id="gst-sdp-media-replace-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-attribute">
+<ANCHOR id="gst-sdp-media-remove-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-attribute">
 <ANCHOR id="gst-sdp-media-add-attribute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute">
-<ANCHOR id="gst-sdp-media-as-text" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text">
 <ANCHOR id="gst-plugins-base-libs-gsttag" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html">
 <ANCHOR id="gst-plugins-base-libs-gsttag.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gsttag.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttag.html#gst-plugins-base-libs-gsttag.description">
@@ -1459,6 +1548,7 @@
 <ANCHOR id="gst-discoverer-stream-info-get-previous" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous">
 <ANCHOR id="gst-discoverer-stream-info-get-tags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags">
 <ANCHOR id="gst-discoverer-stream-info-get-toc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-toc">
+<ANCHOR id="gst-discoverer-stream-info-get-stream-id" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-id">
 <ANCHOR id="gst-discoverer-stream-info-ref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref">
 <ANCHOR id="gst-discoverer-stream-info-unref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref">
 <ANCHOR id="gst-discoverer-stream-info-list-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free">
@@ -1513,12 +1603,15 @@
 <ANCHOR id="gst-encoding-profile-get-description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description">
 <ANCHOR id="gst-encoding-profile-get-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format">
 <ANCHOR id="gst-encoding-profile-get-preset" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset">
+<ANCHOR id="gst-encoding-profile-get-preset-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset-name">
 <ANCHOR id="gst-encoding-profile-get-presence" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence">
 <ANCHOR id="gst-encoding-profile-get-restriction" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction">
+<ANCHOR id="gst-encoding-profile-get-file-extension" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-file-extension">
 <ANCHOR id="gst-encoding-profile-set-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name">
 <ANCHOR id="gst-encoding-profile-set-description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description">
 <ANCHOR id="gst-encoding-profile-set-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format">
 <ANCHOR id="gst-encoding-profile-set-preset" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset">
+<ANCHOR id="gst-encoding-profile-set-preset-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset-name">
 <ANCHOR id="gst-encoding-profile-set-restriction" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction">
 <ANCHOR id="gst-encoding-profile-set-presence" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence">
 <ANCHOR id="gst-encoding-profile-is-equal" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal">
@@ -1621,6 +1714,12 @@
 <ANCHOR id="GST-VIDEO-FORMAT-I420-10LE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I420-10LE:CAPS">
 <ANCHOR id="GST-VIDEO-FORMAT-I422-10BE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I422-10BE:CAPS">
 <ANCHOR id="GST-VIDEO-FORMAT-I422-10LE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I422-10LE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-Y444-10BE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-Y444-10BE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-Y444-10LE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-Y444-10LE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-GBR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-GBR:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-GBR-10BE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-GBR-10BE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-GBR-10LE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-GBR-10LE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-NV16:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-NV16:CAPS">
 <ANCHOR id="GST-VIDEO-MAX-PLANES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS">
 <ANCHOR id="GST-VIDEO-MAX-COMPONENTS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS">
 <ANCHOR id="GstVideoFormatInfo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo">
@@ -1648,6 +1747,7 @@
 <ANCHOR id="GstVideoPackFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoPackFlags">
 <ANCHOR id="GST-VIDEO-PACK-FLAG-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-PACK-FLAG-NONE:CAPS">
 <ANCHOR id="GST-VIDEO-PACK-FLAG-TRUNCATE-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-PACK-FLAG-TRUNCATE-RANGE:CAPS">
+<ANCHOR id="GST-VIDEO-PACK-FLAG-INTERLACED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-PACK-FLAG-INTERLACED:CAPS">
 <ANCHOR id="GstVideoFormatUnpack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack">
 <ANCHOR id="GstVideoFormatPack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack">
 <ANCHOR id="GST-VIDEO-FORMAT-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS">
@@ -1819,6 +1919,7 @@
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.description">
 <ANCHOR id="gst-plugins-base-libs-gstvideometa.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-plugins-base-libs-gstvideometa.details">
 <ANCHOR id="GstVideoMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoMeta">
+<ANCHOR id="GstVideoMetaTransform" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform">
 <ANCHOR id="gst-video-meta-map" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map">
 <ANCHOR id="gst-video-meta-unmap" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-video-meta-unmap">
 <ANCHOR id="gst-video-meta-get-info" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-video-meta-get-info">
@@ -1829,6 +1930,11 @@
 <ANCHOR id="GstVideoCropMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta">
 <ANCHOR id="gst-buffer-add-video-crop-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-crop-meta">
 <ANCHOR id="gst-buffer-get-video-crop-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-crop-meta">
+<ANCHOR id="GstVideoGLTextureUpload" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUpload">
+<ANCHOR id="GstVideoGLTextureUploadMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta">
+<ANCHOR id="gst-buffer-add-video-gl-texture-upload-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-gl-texture-upload-meta">
+<ANCHOR id="gst-buffer-get-video-gl-texture-upload-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-buffer-get-video-gl-texture-upload-meta">
+<ANCHOR id="gst-video-gl-texture-upload-meta-upload" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.synopsis">
 <ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.description">
@@ -1843,7 +1949,9 @@
 <ANCHOR id="gst-video-overlay-composition-get-seqnum" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum">
 <ANCHOR id="gst-video-overlay-composition-copy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy">
 <ANCHOR id="gst-video-overlay-composition-make-writable" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable">
+<ANCHOR id="GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS">
 <ANCHOR id="gst-video-overlay-composition-blend" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend">
+<ANCHOR id="GstVideoOverlayCompositionMeta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta">
 <ANCHOR id="gst-video-overlay-composition-meta-get-info" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-meta-get-info">
 <ANCHOR id="gst-buffer-add-video-overlay-composition-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-add-video-overlay-composition-meta">
 <ANCHOR id="gst-buffer-get-video-overlay-composition-meta" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-buffer-get-video-overlay-composition-meta">
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index c923edf..f6e467d 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -84,7 +84,6 @@
 	$(top_srcdir)/gst/tcp/gsttcpclientsink.h \
 	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpserversink.h \
-	$(top_builddir)/gst/tcp/gsttcp-enumtypes.h \
 	$(top_srcdir)/gst/tcp/gsttcp.h \
 	$(top_srcdir)/gst/videorate/gstvideorate.h \
 	$(top_srcdir)/gst/videoscale/gstvideoscale.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 09668ca..8ae01c8 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -32,23 +31,51 @@
 # This is an include file specifically tuned for building documentation
 # for GStreamer plug-ins
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -68,16 +95,15 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gtk-doc-plugins.mak \
-	$(top_srcdir)/common/upload-doc.mak
+DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
+	$(top_srcdir)/common/gtk-doc-plugins.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = docs/plugins
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -116,12 +142,18 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -129,6 +161,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -507,7 +540,6 @@
 	$(top_srcdir)/gst/tcp/gsttcpclientsink.h \
 	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpserversink.h \
-	$(top_builddir)/gst/tcp/gsttcp-enumtypes.h \
 	$(top_srcdir)/gst/tcp/gsttcp.h \
 	$(top_srcdir)/gst/videorate/gstvideorate.h \
 	$(top_srcdir)/gst/videoscale/gstvideoscale.h \
@@ -614,9 +646,9 @@
 @ENABLE_GTK_DOC_TRUE@INSPECT_REGISTRY = $(top_builddir)/docs/plugins/inspect-registry.xml
 @ENABLE_GTK_DOC_TRUE@INSPECT_ENVIRONMENT = \
 @ENABLE_GTK_DOC_TRUE@	LC_ALL=C \
-@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_SYSTEM_PATH= \
-@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
-@ENABLE_GTK_DOC_TRUE@	GST_REGISTRY=$(INSPECT_REGISTRY) \
+@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_SYSTEM_PATH_1_0= \
+@ENABLE_GTK_DOC_TRUE@	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \
+@ENABLE_GTK_DOC_TRUE@	GST_REGISTRY_1_0=$(INSPECT_REGISTRY) \
 @ENABLE_GTK_DOC_TRUE@	PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @ENABLE_GTK_DOC_TRUE@	$(INSPECT_EXTRA_ENVIRONMENT)
 
@@ -664,11 +696,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -807,17 +839,17 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-local
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-local
 
 html: html-build.stamp
 
@@ -1006,10 +1038,7 @@
 @ENABLE_GTK_DOC_TRUE@	    mkhtml_options="$$mkhtml_options --verbose"; \
 @ENABLE_GTK_DOC_TRUE@	  fi; \
 @ENABLE_GTK_DOC_TRUE@	fi; \
-@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
-@ENABLE_GTK_DOC_TRUE@	@mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
-@ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
+@ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE)-@GST_API_VERSION@ $(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/version.entities
@@ -1069,9 +1098,9 @@
 	      $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
 	    done; \
 	  fi; \
-	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
-	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
-	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
+	  echo '-- Installing $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2' ; \
+	  if test -e $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; then \
+	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2 \
 	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \
diff --git a/docs/plugins/gst-plugins-base-plugins.args b/docs/plugins/gst-plugins-base-plugins.args
index e53fab8..4dd9d16 100644
--- a/docs/plugins/gst-plugins-base-plugins.args
+++ b/docs/plugins/gst-plugins-base-plugins.args
@@ -1369,6 +1369,36 @@
 </ARG>
 
 <ARG>
+<NAME>GstPlayBin::audio-stream-combiner</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio stream combiner</NICK>
+<BLURB>Current audio stream combiner (NULL = input-selector).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin::text-stream-combiner</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text stream combiner</NICK>
+<BLURB>Current text stream combiner (NULL = input-selector).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin::video-stream-combiner</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Video stream combiner</NICK>
+<BLURB>Current video stream combiner (NULL = input-selector).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstAudiorate::add</NAME>
 <TYPE>guint64</TYPE>
 <RANGE></RANGE>
@@ -1975,7 +2005,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>Add Borders</NICK>
 <BLURB>Add black borders if necessary to keep the display aspect ratio.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
+<DEFAULT>TRUE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -3594,7 +3624,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Emit signals</NICK>
-<BLURB>Emit new-preroll, new-buffer and new-buffer-list signals.</BLURB>
+<BLURB>Emit new-preroll and new-sample signals.</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
@@ -3749,6 +3779,26 @@
 </ARG>
 
 <ARG>
+<NAME>GstAudioResample::sinc-filter-auto-threshold</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sinc filter auto mode threshold</NICK>
+<BLURB>Memory usage threshold to use if sinc filter mode is AUTO, given in bytes.</BLURB>
+<DEFAULT>1048576</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstAudioResample::sinc-filter-mode</NAME>
+<TYPE>SpeexResamplerSincFilterMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sinc filter table mode</NICK>
+<BLURB>What sinc filter table mode to use.</BLURB>
+<DEFAULT>Use full table if table size below threshold</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstAdder::caps</NAME>
 <TYPE>GstCaps*</TYPE>
 <RANGE></RANGE>
diff --git a/docs/plugins/gst-plugins-base-plugins.hierarchy b/docs/plugins/gst-plugins-base-plugins.hierarchy
index c87374b..a3eee22 100644
--- a/docs/plugins/gst-plugins-base-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-base-plugins.hierarchy
@@ -2,7 +2,7 @@
   GInitiallyUnowned
     GstObject
       GstAllocator
-        GstDefaultAllocator
+        GstAllocatorSysmem
       GstAudioRingBuffer
         GstAudioSinkRingBuffer
         GstAudioSrcRingBuffer
@@ -20,7 +20,7 @@
         GstAudioEncoder
           GstVorbisEnc
         GstAudioRate
-        GstAudioVisualizer-BaseExtVisual
+        GstAudioVisualizer-BaseExtLibvisual
           GstVisual
             GstVisualbumpscope
             GstVisualcorona
@@ -116,6 +116,8 @@
   GInputStream
   GOutputStream
   GSocket
+  GTypeModule
+    PangoModule
   GstColorBalanceChannel
   GstEncodingProfile
   PangoContext
diff --git a/docs/plugins/gst-plugins-base-plugins.interfaces b/docs/plugins/gst-plugins-base-plugins.interfaces
index 48f258b..af1ad11 100644
--- a/docs/plugins/gst-plugins-base-plugins.interfaces
+++ b/docs/plugins/gst-plugins-base-plugins.interfaces
@@ -1,48 +1,28 @@
 GSocket GInitable
 GTypeModule GTypePlugin
-GstAlsaMixerElement GstImplementsInterface GstMixer GstPropertyProbe
-GstAlsaMixerElement GstMixer
-GstAlsaSink GstPropertyProbe
-GstAlsaSrc GstImplementsInterface GstMixer GstPropertyProbe
-GstAlsaSrc GstMixer
+GstAdder GstChildProxy
 GstAppSink GstURIHandler
 GstAppSrc GstURIHandler
 GstAudioCdSrc GstURIHandler
 GstAudioEncoder GstPreset
 GstBin GstChildProxy
 GstCdParanoiaSrc GstURIHandler
-GstCddaBaseSrc GstURIHandler
 GstDecodeBin GstChildProxy
-GstDecodeBin2 GstChildProxy
 GstEncodeBin GstChildProxy
 GstGioSink GstURIHandler
 GstGioSrc GstURIHandler
-GstGnomeVFSSink GstURIHandler
-GstGnomeVFSSrc GstURIHandler
 GstOggMux GstPreset
 GstPipeline GstChildProxy
-GstPlayBaseBin GstChildProxy
-GstPlayBin GstChildProxy
-GstPlayBin GstChildProxy GstStreamVolume
 GstPlayBin GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
-GstPlayBin2 GstChildProxy GstStreamVolume
-GstPlaySink GstChildProxy
 GstPlaySink GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
 GstSubtitleOverlay GstChildProxy
 GstTheoraEnc GstPreset
 GstURIDecodeBin GstChildProxy
-GstV4lElement GstImplementsInterface GstTuner GstXOverlay GstColorBalance GstPropertyProbe
-GstV4lSrc GstImplementsInterface GstTuner GstXOverlay GstColorBalance GstPropertyProbe
 GstVideoEncoder GstPreset
-GstVolume GstImplementsInterface GstMixer GstStreamVolume
-GstVolume GstMixer GstStreamVolume
 GstVolume GstStreamVolume
 GstVorbisEnc GstPreset GstTagSetter
-GstVorbisEnc GstTagSetter GstPreset
 GstVorbisTag GstTagSetter
-GstXImageSink GstImplementsInterface GstNavigation GstXOverlay
 GstXImageSink GstNavigation GstVideoOverlay
-GstXvImageSink GstImplementsInterface GstNavigation GstXOverlay GstColorBalance GstPropertyProbe
 GstXvImageSink GstNavigation GstVideoOverlay GstColorBalance
 PangoCairoFcFontMap PangoCairoFontMap
 PangoModule GTypePlugin
diff --git a/docs/plugins/gst-plugins-base-plugins.prerequisites b/docs/plugins/gst-plugins-base-plugins.prerequisites
index d56be59..e5a6665 100644
--- a/docs/plugins/gst-plugins-base-plugins.prerequisites
+++ b/docs/plugins/gst-plugins-base-plugins.prerequisites
@@ -1,12 +1,6 @@
 GFile GObject
 GInitable GObject
 GstChildProxy GObject
-GstChildProxy GstObject
-GstColorBalance GstImplementsInterface GstElement
-GstImplementsInterface GstElement
-GstMixer GstImplementsInterface GstElement
 GstStreamVolume GObject
 GstTagSetter GstElement
-GstTuner GstImplementsInterface GstElement
-GstXOverlay GstImplementsInterface GstElement
 PangoCairoFontMap PangoFontMap
diff --git a/docs/plugins/gst-plugins-base-plugins.signals b/docs/plugins/gst-plugins-base-plugins.signals
index 10f5e34..6d2190c 100644
--- a/docs/plugins/gst-plugins-base-plugins.signals
+++ b/docs/plugins/gst-plugins-base-plugins.signals
@@ -155,6 +155,16 @@
 </SIGNAL>
 
 <SIGNAL>
+<NAME>GstDecodeBin::autoplug-query</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstDecodeBin *gstdecodebin
+GstPad *arg1
+GstElement *arg2
+GstQuery *arg3
+</SIGNAL>
+
+<SIGNAL>
 <NAME>CDParanoia::smilie-change</NAME>
 <RETURNS>void</RETURNS>
 CDParanoia *cdparanoia
@@ -333,6 +343,16 @@
 </SIGNAL>
 
 <SIGNAL>
+<NAME>GstURIDecodeBin::autoplug-query</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstURIDecodeBin *gsturidecodebin
+GstPad *arg1
+GstElement *arg2
+GstQuery *arg3
+</SIGNAL>
+
+<SIGNAL>
 <NAME>GstPlayBin2::about-to-finish</NAME>
 <RETURNS>void</RETURNS>
 <FLAGS>l</FLAGS>
@@ -581,6 +601,14 @@
 </SIGNAL>
 
 <SIGNAL>
+<NAME>GstEncodeBin::request-profile-pad</NAME>
+<RETURNS>GstPad*</RETURNS>
+<FLAGS>la</FLAGS>
+GstEncodeBin *gstencodebin
+gchar *arg1
+</SIGNAL>
+
+<SIGNAL>
 <NAME>GstMultiSocketSink::add</NAME>
 <RETURNS>void</RETURNS>
 <FLAGS>la</FLAGS>
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 4ae7569..4526f3d 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Elements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
@@ -20,9 +20,9 @@
 <td><a accesskey="n" href="gst-plugins-base-plugins-adder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp281680"></a>gst-plugins-base Elements</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp4161184"></a>gst-plugins-base Elements</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-adder.html">adder</a></span><span class="refpurpose"> — Add N audio channels together</span>
 </dt>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 075ae99..c8e5e2c 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gst-plugins-base Plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
@@ -20,86 +20,86 @@
 <td><a accesskey="n" href="gst-plugins-base-plugins-plugin-adder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp34912"></a>gst-plugins-base Plugins</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idp33008"></a>gst-plugins-base Plugins</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose"> — <a name="plugin-adder"></a>Adds multiple streams</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose">Adds multiple streams</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-alsa.html">alsa</a></span><span class="refpurpose"> — <a name="plugin-alsa"></a>ALSA plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-alsa.html">alsa</a></span><span class="refpurpose">ALSA plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-app.html">app</a></span><span class="refpurpose"> — <a name="plugin-app"></a>Elements used to communicate with applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-app.html">app</a></span><span class="refpurpose">Elements used to communicate with applications</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioconvert.html">audioconvert</a></span><span class="refpurpose"> — <a name="plugin-audioconvert"></a>Convert audio to different formats</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioconvert.html">audioconvert</a></span><span class="refpurpose">Convert audio to different formats</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiorate.html">audiorate</a></span><span class="refpurpose"> — <a name="plugin-audiorate"></a>Adjusts audio frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiorate.html">audiorate</a></span><span class="refpurpose">Adjusts audio frames</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioresample.html">audioresample</a></span><span class="refpurpose"> — <a name="plugin-audioresample"></a>Resamples audio</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioresample.html">audioresample</a></span><span class="refpurpose">Resamples audio</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiotestsrc.html">audiotestsrc</a></span><span class="refpurpose"> — <a name="plugin-audiotestsrc"></a>Creates audio test signals of given frequency and volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiotestsrc.html">audiotestsrc</a></span><span class="refpurpose">Creates audio test signals of given frequency and volume</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-cdparanoia.html">cdparanoia</a></span><span class="refpurpose"> — <a name="plugin-cdparanoia"></a>Read audio from CD in paranoid mode</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-cdparanoia.html">cdparanoia</a></span><span class="refpurpose">Read audio from CD in paranoid mode</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-encoding.html">encoding</a></span><span class="refpurpose"> — <a name="plugin-encoding"></a>various encoding-related elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-encoding.html">encoding</a></span><span class="refpurpose">various encoding-related elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoconvert.html">videoconvert</a></span><span class="refpurpose"> — <a name="plugin-videoconvert"></a>Colorspace conversion</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoconvert.html">videoconvert</a></span><span class="refpurpose">Colorspace conversion</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-gio.html">gio</a></span><span class="refpurpose"> — <a name="plugin-gio"></a>GIO elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-gio.html">gio</a></span><span class="refpurpose">GIO elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-libvisual.html">libvisual</a></span><span class="refpurpose"> — <a name="plugin-libvisual"></a>libvisual visualization plugins</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-libvisual.html">libvisual</a></span><span class="refpurpose">libvisual visualization plugins</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ogg.html">ogg</a></span><span class="refpurpose"> — <a name="plugin-ogg"></a>ogg stream manipulation (info about ogg: http://xiph.org)</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ogg.html">ogg</a></span><span class="refpurpose">ogg stream manipulation (info about ogg: http://xiph.org)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-pango.html">pango</a></span><span class="refpurpose"> — <a name="plugin-pango"></a>Pango-based text rendering and overlay</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-pango.html">pango</a></span><span class="refpurpose">Pango-based text rendering and overlay</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-playback.html">playback</a></span><span class="refpurpose"> — <a name="plugin-playback"></a>various playback elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-playback.html">playback</a></span><span class="refpurpose">various playback elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-subparse.html">subparse</a></span><span class="refpurpose"> — <a name="plugin-subparse"></a>Subtitle parsing</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-subparse.html">subparse</a></span><span class="refpurpose">Subtitle parsing</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-tcp.html">tcp</a></span><span class="refpurpose"> — <a name="plugin-tcp"></a>transfer data over the network via TCP</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-tcp.html">tcp</a></span><span class="refpurpose">transfer data over the network via TCP</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-theora.html">theora</a></span><span class="refpurpose"> — <a name="plugin-theora"></a>Theora plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-theora.html">theora</a></span><span class="refpurpose">Theora plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-typefindfunctions.html">typefindfunctions</a></span><span class="refpurpose"> — <a name="plugin-typefindfunctions"></a>default typefind functions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-typefindfunctions.html">typefindfunctions</a></span><span class="refpurpose">default typefind functions</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videorate.html">videorate</a></span><span class="refpurpose"> — <a name="plugin-videorate"></a>Adjusts video frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videorate.html">videorate</a></span><span class="refpurpose">Adjusts video frames</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoscale.html">videoscale</a></span><span class="refpurpose"> — <a name="plugin-videoscale"></a>Resizes video</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoscale.html">videoscale</a></span><span class="refpurpose">Resizes video</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videotestsrc.html">videotestsrc</a></span><span class="refpurpose"> — <a name="plugin-videotestsrc"></a>Creates a test video stream</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videotestsrc.html">videotestsrc</a></span><span class="refpurpose">Creates a test video stream</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-volume.html">volume</a></span><span class="refpurpose"> — <a name="plugin-volume"></a>plugin for controlling audio volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-volume.html">volume</a></span><span class="refpurpose">plugin for controlling audio volume</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-vorbis.html">vorbis</a></span><span class="refpurpose"> — <a name="plugin-vorbis"></a>Vorbis plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-vorbis.html">vorbis</a></span><span class="refpurpose">Vorbis plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ximagesink.html">ximagesink</a></span><span class="refpurpose"> — <a name="plugin-ximagesink"></a>X11 video output element based on standard Xlib calls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ximagesink.html">ximagesink</a></span><span class="refpurpose">X11 video output element based on standard Xlib calls</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-xvimagesink.html">xvimagesink</a></span><span class="refpurpose"> — <a name="plugin-xvimagesink"></a>XFree86 video output plugin using Xv extension</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-xvimagesink.html">xvimagesink</a></span><span class="refpurpose">XFree86 video output plugin using Xv extension</span>
 </dt>
 </dl></div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins.devhelp2 b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
similarity index 92%
rename from docs/plugins/html/gst-plugins-base-plugins.devhelp2
rename to docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
index eabf387..b49b45f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins.devhelp2
+++ b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-base-plugins" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-base-plugins-1.0" version="2" language="c">
   <chapters>
     <sub name="gst-plugins-base Elements" link="ch01.html">
       <sub name="adder" link="gst-plugins-base-plugins-adder.html"/>
@@ -79,13 +79,13 @@
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp8195552"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp8338416"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idm33616"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp7801184"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp7846608"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idm28800"/>
     <keyword type="struct" name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp5972480"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp5979888"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp7349808"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp7357216"/>
     <keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
     <keyword type="property" name="The &quot;block&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
@@ -103,8 +103,8 @@
     <keyword type="signal" name="The &quot;need-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
     <keyword type="signal" name="The &quot;push-buffer&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
     <keyword type="signal" name="The &quot;seek-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9939552"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9946960"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9818032"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9825440"/>
     <keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
@@ -120,29 +120,29 @@
     <keyword type="signal" name="The &quot;pull-buffer-list&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer-list"/>
     <keyword type="signal" name="The &quot;new-sample&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-sample"/>
     <keyword type="signal" name="The &quot;pull-sample&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-sample"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp5873968"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp5881424"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp2878016"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp7880096"/>
     <keyword type="struct" name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
     <keyword type="property" name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp9836576"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9844032"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp9242800"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp7726080"/>
     <keyword type="struct" name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
     <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
     <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
     <keyword type="property" name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp8673792"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp7867536"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp6608080"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp7648304"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp7960336"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp7768080"/>
     <keyword type="struct" name="struct GstAudioConvert" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"/>
     <keyword type="enum" name="enum GstAudioConvertDithering" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering"/>
     <keyword type="enum" name="enum GstAudioConvertNoiseShaping" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping"/>
     <keyword type="property" name="The &quot;dithering&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
     <keyword type="property" name="The &quot;noise-shaping&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp8832128"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10421840"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10429296"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp5250128"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10216224"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10223568"/>
     <keyword type="struct" name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
     <keyword type="property" name="The &quot;add&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop"/>
@@ -151,15 +151,17 @@
     <keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent"/>
     <keyword type="property" name="The &quot;tolerance&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance"/>
     <keyword type="property" name="The &quot;skip-to-first&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp6172800"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp9881200"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp5710912"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp6328192"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp8103808"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp8111216"/>
     <keyword type="struct" name="struct GstAudioResample" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"/>
     <keyword type="property" name="The &quot;filter-length&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp5602576"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10496560"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10504016"/>
+    <keyword type="property" name="The &quot;sinc-filter-auto-threshold&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-auto-threshold"/>
+    <keyword type="property" name="The &quot;sinc-filter-mode&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-mode"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp5968320"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp5971904"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10301776"/>
     <keyword type="struct" name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
     <keyword type="enum" name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
     <keyword type="property" name="The &quot;freq&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq"/>
@@ -170,8 +172,8 @@
     <keyword type="property" name="The &quot;wave&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave"/>
     <keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
     <keyword type="property" name="The &quot;can-activate-push&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp5836512"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp5929056"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp5621568"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10407536"/>
     <keyword type="struct" name="struct GstCdParanoiaSrc" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-struct"/>
     <keyword type="property" name="The &quot;generic-device&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device"/>
     <keyword type="property" name="The &quot;paranoia-mode&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--paranoia-mode"/>
@@ -180,12 +182,12 @@
     <keyword type="property" name="The &quot;cache-size&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size"/>
     <keyword type="signal" name="The &quot;transport-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-transport-error"/>
     <keyword type="signal" name="The &quot;uncorrected-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-uncorrected-error"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp8974016"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp5779760"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp7607776"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp5742224"/>
     <keyword type="struct" name="struct GstClockOverlay" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct"/>
     <keyword type="property" name="The &quot;time-format&quot; property" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp10863120"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp10870640"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp10766176"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp10773696"/>
     <keyword type="struct" name="struct GstDecodeBin" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-struct"/>
     <keyword type="property" name="The &quot;threaded&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--threaded"/>
     <keyword type="property" name="The &quot;sink-caps&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps"/>
@@ -208,9 +210,10 @@
     <keyword type="signal" name="The &quot;autoplug-select&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-select"/>
     <keyword type="signal" name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-sort"/>
     <keyword type="signal" name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-drained"/>
-    <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp9272320"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp8632128"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp8639536"/>
+    <keyword type="signal" name="The &quot;autoplug-query&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-query"/>
+    <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp8826560"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp9039232"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp8701792"/>
     <keyword type="struct" name="GstEncodeBin" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"/>
     <keyword type="property" name="The &quot;audio-jitter-tolerance&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance"/>
     <keyword type="property" name="The &quot;avoid-reencoding&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding"/>
@@ -220,35 +223,36 @@
     <keyword type="property" name="The &quot;queue-time-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max"/>
     <keyword type="property" name="The &quot;flags&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags"/>
     <keyword type="signal" name="The &quot;request-pad&quot; signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videoconvert.html#idp6822704"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoconvert.html#idp7233328"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoconvert.html#idp5807552"/>
+    <keyword type="signal" name="The &quot;request-profile-pad&quot; signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-profile-pad"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videoconvert.html#idp7520288"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoconvert.html#idp7807632"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoconvert.html#idp5980992"/>
     <keyword type="struct" name="struct GstVideoConvert" link="gst-plugins-base-plugins-videoconvert.html#GstVideoConvert-struct"/>
     <keyword type="property" name="The &quot;dither&quot; property" link="gst-plugins-base-plugins-videoconvert.html#GstVideoConvert--dither"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp6234176"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp6856704"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp6864224"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp8734832"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp8739392"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp5842064"/>
     <keyword type="struct" name="struct GstGioSink" link="gst-plugins-base-plugins-giosink.html#GstGioSink-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--location"/>
     <keyword type="property" name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--file"/>
-    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp10672192"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp10677040"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11554128"/>
+    <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp11099136"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11103696"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp5509536"/>
     <keyword type="struct" name="struct GstGioSrc" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location"/>
     <keyword type="property" name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file"/>
-    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp8306864"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp7571904"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp8030800"/>
+    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp11110736"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11114880"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp6626096"/>
     <keyword type="struct" name="struct GstGioStreamSink" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink-struct"/>
     <keyword type="property" name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream"/>
-    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp7982192"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp8710576"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp7949408"/>
+    <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp9799504"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp9803616"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp6704976"/>
     <keyword type="struct" name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
     <keyword type="property" name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp11965024"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp11972432"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp11432720"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp11440128"/>
     <keyword type="struct" name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
     <keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
     <keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
@@ -286,8 +290,8 @@
     <keyword type="signal" name="The &quot;add-full&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
     <keyword type="signal" name="The &quot;remove-flush&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
     <keyword type="signal" name="The &quot;client-handle-removed&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-handle-removed"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multisocketsink.html#idp11357696"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multisocketsink.html#idp11365264"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multisocketsink.html#idp11997392"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multisocketsink.html#idp12004960"/>
     <keyword type="struct" name="struct GstMultiSocketSink" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-struct"/>
     <keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multisocketsink.html#GstRecoverPolicy"/>
     <keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multisocketsink.html#GstSyncMethod"/>
@@ -322,26 +326,26 @@
     <keyword type="signal" name="The &quot;remove&quot; signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove"/>
     <keyword type="signal" name="The &quot;remove-flush&quot; signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove-flush"/>
     <keyword type="signal" name="The &quot;client-handle-removed&quot; signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-handle-removed"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp8004800"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp8164000"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp11870304"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp7632320"/>
     <keyword type="struct" name="struct GstOggDemux" link="gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp12446752"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp12440272"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp12796224"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp12789856"/>
     <keyword type="struct" name="struct GstOggMux" link="gst-plugins-base-plugins-oggmux.html#GstOggMux-struct"/>
     <keyword type="property" name="The &quot;max-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay"/>
     <keyword type="property" name="The &quot;max-page-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
     <keyword type="property" name="The &quot;max-tolerance&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance"/>
     <keyword type="property" name="The &quot;skeleton&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton"/>
-    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp13190160"/>
-    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp13206272"/>
-    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp13216832"/>
-    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp13218944"/>
-    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp13221712"/>
-    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp13223680"/>
-    <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin.html#idp13225248"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp13226928"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp13231904"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp13239360"/>
+    <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12892944"/>
+    <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12909056"/>
+    <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12919616"/>
+    <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12921728"/>
+    <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12924496"/>
+    <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12926464"/>
+    <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin.html#idp12928032"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12929712"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12934320"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12941776"/>
     <keyword type="struct" name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
     <keyword type="enum" name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin.html#GstPlayFlags"/>
     <keyword type="property" name="The &quot;audio-sink&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
@@ -372,6 +376,9 @@
     <keyword type="property" name="The &quot;current-suburi&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-suburi"/>
     <keyword type="property" name="The &quot;current-uri&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-uri"/>
     <keyword type="property" name="The &quot;force-aspect-ratio&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--force-aspect-ratio"/>
+    <keyword type="property" name="The &quot;audio-stream-combiner&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-stream-combiner"/>
+    <keyword type="property" name="The &quot;text-stream-combiner&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--text-stream-combiner"/>
+    <keyword type="property" name="The &quot;video-stream-combiner&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-stream-combiner"/>
     <keyword type="signal" name="The &quot;about-to-finish&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-about-to-finish"/>
     <keyword type="signal" name="The &quot;audio-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-audio-changed"/>
     <keyword type="signal" name="The &quot;audio-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-audio-tags-changed"/>
@@ -387,44 +394,44 @@
     <keyword type="signal" name="The &quot;text-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-text-tags-changed"/>
     <keyword type="signal" name="The &quot;video-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-changed"/>
     <keyword type="signal" name="The &quot;video-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-tags-changed"/>
-    <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp8738640"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6392816"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp13761456"/>
+    <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp8654688"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp9123136"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp13509520"/>
     <keyword type="struct" name="struct GstSubtitleOverlay" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay-struct"/>
     <keyword type="property" name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
     <keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
     <keyword type="property" name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp13714160"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp13716768"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp13560624"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp8489104"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11323856"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11331264"/>
     <keyword type="struct" name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
     <keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp12404384"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12336400"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp13745056"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp11316288"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp11318608"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp11771680"/>
     <keyword type="struct" name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
     <keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp13382192"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp13384960"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp13392368"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp5468256"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp5470736"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp8248064"/>
     <keyword type="struct" name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
     <keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol"/>
     <keyword type="property" name="The &quot;current-port&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--current-port"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13546896"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13549664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13650400"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp11055072"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp11057552"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp11064960"/>
     <keyword type="struct" name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
     <keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
     <keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
     <keyword type="property" name="The &quot;current-port&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--current-port"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp13103136"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp13110544"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp13899520"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp13905904"/>
     <keyword type="struct" name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
     <keyword type="property" name="The &quot;deltax&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltax"/>
     <keyword type="property" name="The &quot;deltay&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltay"/>
@@ -446,8 +453,8 @@
     <keyword type="property" name="The &quot;color&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color"/>
     <keyword type="property" name="The &quot;xpos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos"/>
     <keyword type="property" name="The &quot;ypos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp7708336"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp12171200"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp8226320"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp13148784"/>
     <keyword type="struct" name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
     <keyword type="property" name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
     <keyword type="property" name="The &quot;halignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
@@ -455,12 +462,12 @@
     <keyword type="property" name="The &quot;valignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
     <keyword type="property" name="The &quot;xpad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
     <keyword type="property" name="The &quot;ypad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp7502656"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13488176"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp8796848"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13084176"/>
     <keyword type="struct" name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
     <keyword type="property" name="The &quot;crop&quot; property" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp12936752"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp12944096"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14229360"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14236816"/>
     <keyword type="struct" name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
     <keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
     <keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border"/>
@@ -483,15 +490,15 @@
     <keyword type="property" name="The &quot;multipass-cache-file&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file"/>
     <keyword type="property" name="The &quot;multipass-mode&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode"/>
     <keyword type="property" name="The &quot;dup-on-gap&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--dup-on-gap"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idp9560288"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp14591664"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idp6488032"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp9325808"/>
     <keyword type="struct" name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
     <keyword type="property" name="The &quot;synchronization-points&quot; property" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp6893504"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp7107264"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp7579232"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp11762016"/>
     <keyword type="struct" name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14722272"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14729728"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14598736"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14606192"/>
     <keyword type="struct" name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
     <keyword type="enum" name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
     <keyword type="property" name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri"/>
@@ -512,9 +519,10 @@
     <keyword type="signal" name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
     <keyword type="signal" name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort"/>
     <keyword type="signal" name="The &quot;source-setup&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp14418320"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp14422736"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14430192"/>
+    <keyword type="signal" name="The &quot;autoplug-query&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-query"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp14907152"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp14911280"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14918736"/>
     <keyword type="struct" name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
     <keyword type="property" name="The &quot;duplicate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate"/>
@@ -526,9 +534,9 @@
     <keyword type="property" name="The &quot;average-period&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period"/>
     <keyword type="property" name="The &quot;drop-only&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only"/>
     <keyword type="property" name="The &quot;max-rate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate"/>
-    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp14564544"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp14568944"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp14345920"/>
+    <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp8570032"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp11738816"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp13368784"/>
     <keyword type="struct" name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
     <keyword type="enum" name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
     <keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
@@ -537,9 +545,9 @@
     <keyword type="property" name="The &quot;envelope&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope"/>
     <keyword type="property" name="The &quot;sharpen&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen"/>
     <keyword type="property" name="The &quot;sharpness&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15527008"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15529664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15537120"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp14075232"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp14077600"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp14085056"/>
     <keyword type="struct" name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
     <keyword type="enum" name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
     <keyword type="property" name="The &quot;pattern&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern"/>
@@ -562,17 +570,17 @@
     <keyword type="property" name="The &quot;background-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
     <keyword type="property" name="The &quot;foreground-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color"/>
     <keyword type="property" name="The &quot;horizontal-speed&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed"/>
-    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp11852016"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp15499712"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp15507168"/>
+    <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp5191648"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp9559168"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp14852496"/>
     <keyword type="struct" name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
     <keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
     <keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp10205664"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp11840080"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp8788672"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp9337440"/>
     <keyword type="struct" name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp14613008"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp14620416"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp9304416"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp8059360"/>
     <keyword type="struct" name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
     <keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
     <keyword type="property" name="The &quot;last-message&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
@@ -580,14 +588,14 @@
     <keyword type="property" name="The &quot;max-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
     <keyword type="property" name="The &quot;min-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
     <keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp7541760"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp14688992"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp5478112"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp9630064"/>
     <keyword type="struct" name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp14690912"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp8308928"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp10106256"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp6567808"/>
     <keyword type="struct" name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp15182528"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp15010352"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp14432368"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp15979600"/>
     <keyword type="struct" name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
     <keyword type="property" name="The &quot;display&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
     <keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio"/>
@@ -597,8 +605,8 @@
     <keyword type="property" name="The &quot;handle-expose&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose"/>
     <keyword type="property" name="The &quot;window-height&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
     <keyword type="property" name="The &quot;window-width&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
-    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16618768"/>
-    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16626224"/>
+    <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16153248"/>
+    <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16160704"/>
     <keyword type="struct" name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
     <keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
     <keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast"/>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-adder.html b/docs/plugins/html/gst-plugins-base-plugins-adder.html
index e54def1..b99c4f1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-adder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>adder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="ch01.html" title="gst-plugins-base Elements">
@@ -27,6 +27,8 @@
                    | 
                   <a href="#gst-plugins-base-plugins-adder.object-hierarchy" class="shortcut">Object Hierarchy</a>
                    | 
+                  <a href="#gst-plugins-base-plugins-adder.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+                   | 
                   <a href="#gst-plugins-base-plugins-adder.properties" class="shortcut">Properties</a>
 </td></tr>
 </table>
@@ -55,6 +57,12 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-base-plugins-adder.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstAdder implements
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-base-plugins-adder.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-adder.html#GstAdder--caps" title='The "caps" property'>caps</a>"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
@@ -73,7 +81,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8195552"></a><h3>Example launch line</h3>
+<a name="idp7801184"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,9 +102,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8338416"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7846608"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +128,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idm33616"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idm28800"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -139,8 +153,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
index bdba20e..040664b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-appsink.html" title="appsink">
@@ -27,8 +27,6 @@
                    | 
                   <a href="#gst-plugins-base-plugins-alsasink.object-hierarchy" class="shortcut">Object Hierarchy</a>
                    | 
-                  <a href="#gst-plugins-base-plugins-alsasink.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
-                   | 
                   <a href="#gst-plugins-base-plugins-alsasink.properties" class="shortcut">Properties</a>
 </td></tr>
 </table>
@@ -60,12 +58,6 @@
 </pre>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-plugins-alsasink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GstAlsaSink implements
- GstPropertyProbe.</p>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasink.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device" title='The "device" property'>device</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
@@ -78,9 +70,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5873968"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp2878016"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -101,9 +96,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5881424"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7880096"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
index 1b84a3e..cbda592 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsasrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
@@ -27,8 +27,6 @@
                    | 
                   <a href="#gst-plugins-base-plugins-alsasrc.object-hierarchy" class="shortcut">Object Hierarchy</a>
                    | 
-                  <a href="#gst-plugins-base-plugins-alsasrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
-                   | 
                   <a href="#gst-plugins-base-plugins-alsasrc.properties" class="shortcut">Properties</a>
 </td></tr>
 </table>
@@ -61,12 +59,6 @@
 </pre>
 </div>
 <div class="refsect1">
-<a name="gst-plugins-base-plugins-alsasrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GstAlsaSrc implements
- GstMixer.</p>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasrc.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device" title='The "device" property'>device</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
@@ -79,9 +71,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9836576"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9242800"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +97,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9844032"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7726080"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsink.html b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
index 62448c7..57879f6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
@@ -104,9 +104,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9939552"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9818032"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -127,9 +130,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9946960"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9825440"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -181,7 +187,7 @@
 <div class="refsect2">
 <a name="GstAppSink--emit-signals"></a><h3>The <code class="literal">"emit-signals"</code> property</h3>
 <pre class="programlisting">  "emit-signals"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Emit new-preroll, new-buffer and new-buffer-list signals.</p>
+<p>Emit new-preroll and new-sample signals.</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
@@ -207,8 +213,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -228,8 +237,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -249,8 +261,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -270,8 +285,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -291,8 +309,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -312,8 +333,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -333,8 +357,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -354,8 +381,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
@@ -375,8 +405,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
index 4227aa4..0a8b87c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>appsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-adder.html" title="adder">
@@ -106,9 +106,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5972480"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7349808"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -129,9 +132,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5979888"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7357216"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -255,8 +261,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
@@ -276,8 +285,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
@@ -298,8 +310,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
@@ -320,8 +335,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
@@ -342,8 +360,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
index c2141b4..f220e82 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8673792"></a><h3>Example launch line</h3>
+<a name="idp7648304"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,9 +108,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7867536"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7960336"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -131,9 +134,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6608080"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7768080"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -153,8 +159,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -201,8 +210,11 @@
 <p>
 Set of available dithering methods when converting audio.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="DITHER-NONE:CAPS"></a><span class="term"><code class="literal">DITHER_NONE</code></span></p></td>
@@ -241,8 +253,11 @@
 <p>
 Set of available noise shaping methods
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="NOISE-SHAPING-NONE:CAPS"></a><span class="term"><code class="literal">NOISE_SHAPING_NONE</code></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
index dbcfb18..f8afc49 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
@@ -103,7 +103,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8832128"></a><h3>Example pipelines</h3>
+<a name="idp5250128"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,9 +122,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10421840"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10216224"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -145,9 +148,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10429296"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10223568"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -167,8 +173,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
index 87e3df7..2b012c7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioresample</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
@@ -60,6 +60,8 @@
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length" title='The "filter-length" property'>filter-length</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title='The "quality" property'>quality</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct
+  "<a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-auto-threshold" title='The "sinc-filter-auto-threshold" property'>sinc-filter-auto-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-mode" title='The "sinc-filter-mode" property'>sinc-filter-mode</a>"         <span class="type">SpeexResamplerSincFilterMode</span>  : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -69,9 +71,18 @@
 a configurable windowing function to enhance quality.
 </p>
 <p>
+By default, the resampler uses a reduced sinc table, with cubic interpolation filling in
+the gaps. This ensures that the table does not become too big. However, the interpolation
+increases the CPU usage considerably. As an alternative, a full sinc table can be used.
+Doing so can drastically reduce CPU usage (4x faster with 44.1 -&gt; 48 kHz conversions for
+example), at the cost of increased memory consumption, plus the sinc table takes longer
+to initialize when the element is created. A third mode exists, which uses the full table
+unless said table would become too large, in which case the interpolated one is used instead.
+</p>
+<p>
 </p>
 <div class="refsect2">
-<a name="idp6172800"></a><h3>Example launch line</h3>
+<a name="idp6328192"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -90,9 +101,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9881200"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8103808"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -113,9 +127,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5710912"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8111216"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -135,8 +152,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -188,6 +208,20 @@
 <p>Allowed values: [0,10]</p>
 <p>Default value: 4</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioResample--sinc-filter-auto-threshold"></a><h3>The <code class="literal">"sinc-filter-auto-threshold"</code> property</h3>
+<pre class="programlisting">  "sinc-filter-auto-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
+<p>Memory usage threshold to use if sinc filter mode is AUTO, given in bytes.</p>
+<p>Default value: 1048576</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioResample--sinc-filter-mode"></a><h3>The <code class="literal">"sinc-filter-mode"</code> property</h3>
+<pre class="programlisting">  "sinc-filter-mode"         <span class="type">SpeexResamplerSincFilterMode</span>  : Read / Write</pre>
+<p>What sinc filter table mode to use.</p>
+<p>Default value: Use full table if table size below threshold</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
index 568e746..0496220 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
@@ -78,7 +78,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5602576"></a><h3>Example launch line</h3>
+<a name="idp5968320"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,9 +110,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10496560"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5971904"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -133,9 +136,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10504016"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10301776"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -151,11 +157,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string){ S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)1</td>
-</tr>
-<tr>
-<td><p><span class="term"></span></p></td>
-<td> audio/x-raw, format=(string){ S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003</td>
+<td>audio/x-raw, format=(string){ S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -195,8 +197,11 @@
 <p>
 Different types of supported sound waves.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUDIO-TEST-SRC-WAVE-SINE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_SINE</code></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
index 00bd246..8a8dded 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cdparanoiasrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
@@ -89,9 +89,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5836512"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5621568"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -112,9 +115,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5929056"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10407536"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -197,8 +203,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)             : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstcdparanoiasrc</code></em> :</span></p></td>
@@ -219,8 +228,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)             : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstcdparanoiasrc</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
index bcf1b88..9dd99be 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>clockoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8974016"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7607776"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -89,9 +92,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5779760"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5742224"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -111,8 +117,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
index 502a5d7..bca3cea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>decodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
@@ -94,6 +94,7 @@
   "<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-select" title='The "autoplug-select" signal'>autoplug-select</a>"                                : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
   "<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-sort" title='The "autoplug-sort" signal'>autoplug-sort</a>"                                  : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
   "<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-drained" title='The "drained" signal'>drained</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+  "<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-query" title='The "autoplug-query" signal'>autoplug-query</a>"                                 : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
 </pre>
 </div>
 <div class="refsect1">
@@ -110,9 +111,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10863120"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10766176"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -133,9 +137,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10870640"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10773696"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -155,8 +162,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -310,8 +320,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstdecodebin</code></em> :</span></p></td>
@@ -332,8 +345,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstdecodebin</code></em> :</span></p></td>
@@ -357,8 +373,11 @@
 This signal is emitted when a pad for which there is no further possible
 decoding is added to the decodebin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -401,8 +420,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -460,8 +482,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -527,8 +552,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -589,8 +617,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -627,8 +658,11 @@
 <p>
 This signal is emitted once decodebin has finished decoding all the data.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -642,6 +676,54 @@
 </table></div>
 <p class="since">Since 0.10.16</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstDecodeBin-autoplug-query"></a><h3>The <code class="literal">"autoplug-query"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a> *bin,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>       *child,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>   *pad,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>     *query,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+This signal is emitted whenever an autoplugged element that is
+not linked downstream yet and not exposed does a query. It can
+be used to tell the element about the downstream supported caps
+for example.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
+<td>The decodebin.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
+<td>The child element doing the query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the query was handled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
index bafc2a5..398c2fb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
@@ -81,6 +81,7 @@
 <a name="gst-plugins-base-plugins-encodebin.signals"></a><h2>Signals</h2>
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad" title='The "request-pad" signal'>request-pad</a>"                                    : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a>
+  "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-profile-pad" title='The "request-profile-pad" signal'>request-profile-pad</a>"                            : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a>
 </pre>
 </div>
 <div class="refsect1">
@@ -99,8 +100,8 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp9272320"></a><h3>Features</h3>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<a name="idp8826560"></a><h3>Features</h3>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 Automatic encoder and muxer selection based on elements available on the
 system.
@@ -164,9 +165,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8632128"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9039232"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -187,9 +191,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8639536"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8701792"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -209,8 +216,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -230,8 +240,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -251,8 +264,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -352,8 +368,11 @@
 provided <em class="parameter"><code>caps</code></em> as input. You must release the pad with
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-release-request-pad"><code class="function">gst_element_release_request_pad()</code></a> when you are done with it.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>encodebin</code></em> :</span></p></td>
@@ -376,6 +395,44 @@
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstEncodeBin-request-profile-pad"></a><h3>The <code class="literal">"request-profile-pad"</code> signal</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a>*             user_function                      (<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin"><span class="type">GstEncodeBin</span></a> *encodebin,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *profilename,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
+<p>
+Use this method to request an unused sink request <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> from the profile
+<em class="parameter"><code>profilename</code></em>. You must release the pad with
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-release-request-pad"><code class="function">gst_element_release_request_pad()</code></a> when you are done with it.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encodebin</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin"><span class="type">GstEncodeBin</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profilename</code></em> :</span></p></td>
+<td>the name of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no compatible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> could be
+created or is available.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosink.html b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
index 69e5a1f..ddbf2ac 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videoconvert.html" title="videoconvert">
@@ -101,7 +101,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6234176"></a><h3>Example pipelines</h3>
+<a name="idp8734832"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -144,9 +144,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6856704"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8739392"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -167,9 +170,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6864224"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5842064"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -224,7 +230,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosink.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <span class="type">GstGnomeVFSSink</span>, <a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc"><span class="type">GstGioSrc</span></a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a>, <a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc"><span class="type">GstGioSrc</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
index 548342e..3a2db86 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giosink.html" title="giosink">
@@ -95,7 +95,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10672192"></a><h3>Example launch lines</h3>
+<a name="idp11099136"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -139,9 +139,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10677040"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11103696"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -162,9 +165,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11554128"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5509536"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -219,7 +225,7 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-giosrc.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <span class="type">GstGnomeVFSSrc</span>, <a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink"><span class="type">GstGioSink</span></a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc"><span class="type">GstGnomeVFSSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink"><span class="type">GstGioSink</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
index da805b4..db4e16a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giostreamsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
@@ -74,7 +74,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8306864"></a><h3>Example code</h3>
+<a name="idp11110736"></a><h3>Example code</h3>
 <p>
 The following example writes the received data to a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
 </p>
@@ -141,9 +141,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7571904"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11114880"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -164,9 +167,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8030800"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6626096"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
index 9832591..9d018db 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>giostreamsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
@@ -75,7 +75,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7982192"></a><h3>Example code</h3>
+<a name="idp9799504"></a><h3>Example code</h3>
 <p>
 The following example reads data from a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
 </p>
@@ -140,9 +140,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8710576"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9803616"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -163,9 +166,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7949408"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6704976"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
index 8ca9e72..4909679 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multifdsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
@@ -70,17 +70,17 @@
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served" title='The "bytes-served" property'>bytes-served</a>"             <span class="type">guint64</span>               : Read
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve" title='The "bytes-to-serve" property'>bytes-to-serve</a>"           <span class="type">guint64</span>               : Read
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--mode" title='The "mode" property'>mode</a>"                     <span class="type">GstFDSetMode</span>          : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--protocol" title='The "protocol" property'>protocol</a>"                 <span class="type">GstTCPProtocol</span>        : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--protocol" title='The "protocol" property'>protocol</a>"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy" title='The "recover-policy" property'>recover-policy</a>"           <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy" title="enum GstRecoverPolicy"><span class="type">GstRecoverPolicy</span></a>      : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-clients" title='The "sync-clients" property'>sync-clients</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="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method" title='The "sync-method" property'>sync-method</a>"              <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod"><span class="type">GstSyncMethod</span></a>         : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout" title='The "timeout" property'>timeout</a>"                  <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-min" title='The "buffers-min" property'>buffers-min</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-unit" title='The "burst-unit" property'>burst-unit</a>"               <span class="type">GstTCPUnitType</span>        : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-unit" title='The "burst-unit" property'>burst-unit</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>        : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value" title='The "burst-value" property'>burst-value</a>"              <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min" title='The "bytes-min" property'>bytes-min</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'>time-min</a>"                 <span class="type">gint64</span>                : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--unit-type" title='The "unit-type" property'>unit-type</a>"                <span class="type">GstTCPUnitType</span>        : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--unit-type" title='The "unit-type" property'>unit-type</a>"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>        : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max" title='The "units-max" property'>units-max</a>"                <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max" title='The "units-soft-max" property'>units-soft-max</a>"           <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--qos-dscp" title='The "qos-dscp" property'>qos-dscp</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
@@ -112,6 +112,10 @@
 For each descriptor added, the <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-added" title='The "client-added" signal'><span class="type">"client-added"</span></a> signal will be called.
 </p>
 <p>
+The multifdsink element needs to be set into READY, PAUSED or PLAYING state
+before operations such as adding clients are possible.
+</p>
+<p>
 As of version 0.10.8, a client can also be added with the <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full" title='The "add-full" signal'><span class="type">"add-full"</span></a> signal
 that allows for more control over what and how much data a client 
 initially receives.
@@ -194,9 +198,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11965024"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11432720"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -217,9 +224,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11972432"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11440128"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -267,8 +277,11 @@
 Possible values for the recovery procedure to use when a client consumes
 data too slow and has a backlag of more that soft-limit buffers.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-RECOVER-POLICY-NONE:CAPS"></a><span class="term"><code class="literal">GST_RECOVER_POLICY_NONE</code></span></p></td>
@@ -309,8 +322,11 @@
 This enum defines the selection of the first buffer that is sent
 to a new client.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-SYNC-METHOD-LATEST:CAPS"></a><span class="term"><code class="literal">GST_SYNC_METHOD_LATEST</code></span></p></td>
@@ -365,8 +381,11 @@
 This specifies the reason why a client was removed from
 multisocketsink and is received in the "client-removed" signal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-CLIENT-STATUS-OK:CAPS"></a><span class="term"><code class="literal">GST_CLIENT_STATUS_OK</code></span></p></td>
@@ -455,7 +474,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--protocol"></a><h3>The <code class="literal">"protocol"</code> property</h3>
-<pre class="programlisting">  "protocol"                 <span class="type">GstTCPProtocol</span>        : Read / Write</pre>
+<pre class="programlisting">  "protocol"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write</pre>
 <p>The protocol to wrap data in. GDP protocol here is deprecated. Please use gdppay element.</p>
 <p>Default value: GST_TCP_PROTOCOL_NONE</p>
 </div>
@@ -498,7 +517,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--burst-unit"></a><h3>The <code class="literal">"burst-unit"</code> property</h3>
-<pre class="programlisting">  "burst-unit"               <span class="type">GstTCPUnitType</span>        : Read / Write</pre>
+<pre class="programlisting">  "burst-unit"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>        : Read / Write</pre>
 <p>The format of the burst units (when sync-method is burst[[-with]-keyframe]).</p>
 <p>Default value: Undefined</p>
 </div>
@@ -528,7 +547,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiFdSink--unit-type"></a><h3>The <code class="literal">"unit-type"</code> property</h3>
-<pre class="programlisting">  "unit-type"                <span class="type">GstTCPUnitType</span>        : Read / Write</pre>
+<pre class="programlisting">  "unit-type"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType"><span class="type">GstTCPUnitType</span></a>        : Read / Write</pre>
 <p>The unit to measure the max/soft-max/queued properties.</p>
 <p>Default value: Buffers</p>
 </div>
@@ -588,8 +607,11 @@
 <p>
 Hand the given open file descriptor to multifdsink to write to.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -613,8 +635,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)           : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -638,8 +663,11 @@
 be emitted from the streaming thread so application should be prepared
 for that.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -673,8 +701,11 @@
 the get-stats signal from this callback. For the same reason it is
 not safe to <code class="function">close()</code> and reuse <em class="parameter"><code>fd</code></em> in this callback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -705,8 +736,11 @@
 Get statistics about <em class="parameter"><code>fd</code></em>. This function returns a GValueArray to ease
 automatic wrapping for bindings.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -742,8 +776,11 @@
 <p>
 Remove the given open file descriptor from multifdsink.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -776,8 +813,11 @@
 associated with <em class="parameter"><code>fd</code></em> and it is therefore not possible to call get-stats
 with <em class="parameter"><code>fd</code></em>. It is however safe to <code class="function">close()</code> and reuse <em class="parameter"><code>fd</code></em> in the callback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -810,8 +850,11 @@
 Hand the given open file descriptor to multifdsink to write to and
 specify the burst parameters for the new connection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -862,8 +905,11 @@
 Remove the given open file descriptor from multifdsink after flushing all
 the pending data to the fd.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
@@ -888,8 +934,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)           : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultifdsink</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
index 44d0644..ec295ac 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multisocketsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
@@ -192,9 +192,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11357696"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11997392"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -215,9 +218,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11365264"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12004960"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -462,8 +468,11 @@
 <p>
 Hand the given open socket to multisocketsink to write to.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -495,8 +504,11 @@
 Hand the given open socket to multisocketsink to write to and
 specify the burst parameters for the new connection.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -544,8 +556,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)               : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -569,8 +584,11 @@
 be emitted from the streaming thread so application should be prepared
 for that.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -604,8 +622,11 @@
 the get-stats signal from this callback. For the same reason it is
 not safe to <code class="function">close()</code> and reuse <em class="parameter"><code>socket</code></em> in this callback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -642,8 +663,11 @@
 associated with <em class="parameter"><code>socket</code></em> and it is therefore not possible to call get-stats
 with <em class="parameter"><code>socket</code></em>. It is however safe to <code class="function">close()</code> and reuse <em class="parameter"><code>fd</code></em> in the callback.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -670,8 +694,11 @@
 <p>
 Get statistics about <em class="parameter"><code>socket</code></em>. This function returns a GstStructure.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -706,8 +733,11 @@
 <p>
 Remove the given open socket from multisocketsink.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -734,8 +764,11 @@
 Remove the given open socket from multisocketsink after flushing all
 the pending data to the socket.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
@@ -760,8 +793,11 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)               : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>gstmultisocketsink</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
index 3135f82..0f0dbf0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-multisocketsink.html" title="multisocketsink">
@@ -57,9 +57,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8004800"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11870304"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -80,9 +83,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8164000"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7632320"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -114,8 +120,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
index dde9114..1fa2f58 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>oggmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
@@ -76,9 +76,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12446752"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12796224"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -99,9 +102,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12440272"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12789856"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -141,8 +147,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -170,8 +179,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -205,10 +217,17 @@
 <td><p><span class="term"></span></p></td>
 <td> video/x-vp8</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-daala</td>
+</tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playbin.html b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
index 8f8a5c1..a0aabb2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playbin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playbin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
@@ -65,7 +65,7 @@
 <a name="gst-plugins-base-plugins-playbin.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstPlayBin implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>,  GstNavigation and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.properties"></a><h2>Properties</h2>
@@ -98,6 +98,9 @@
   "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-suburi" title='The "current-suburi" property'>current-suburi</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
   "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--current-uri" title='The "current-uri" property'>current-uri</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
   "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</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="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-stream-combiner" title='The "audio-stream-combiner" property'>audio-stream-combiner</a>"    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--text-stream-combiner" title='The "text-stream-combiner" property'>text-stream-combiner</a>"     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-stream-combiner" title='The "video-stream-combiner" property'>video-stream-combiner</a>"    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -129,7 +132,7 @@
 <p>
 Playbin can handle both audio and video files and features
 </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem">
 automatic file type recognition and based on that automatic
 selection and usage of the right audio/video/subtitle demuxers/decoders
@@ -162,7 +165,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13190160"></a><h3>Usage</h3>
+<a name="idp12892944"></a><h3>Usage</h3>
 <p>
 A playbin element can be created just like any other element using
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make"><code class="function">gst_element_factory_make()</code></a>. The file/URI to play should be set via the <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--uri" title='The "uri" property'><span class="type">"uri"</span></a>
@@ -210,7 +213,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13206272"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="idp12909056"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
 <p>
 By default, if no audio sink or video sink has been specified via the
 <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink" title='The "audio-sink" property'><span class="type">"audio-sink"</span></a> or <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-sink" title='The "video-sink" property'><span class="type">"video-sink"</span></a> property, playbin will use the autoaudiosink
@@ -251,7 +254,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13216832"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="idp12919616"></a><h3>Retrieving Tags and Other Meta Data</h3>
 <p>
 Most of the common meta data (artist, title, etc.) can be retrieved by
 watching for TAG messages on the pipeline's bus (see above).
@@ -266,7 +269,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13218944"></a><h3>Buffering</h3>
+<a name="idp12921728"></a><h3>Buffering</h3>
 Playbin handles buffering automatically for the most part, but applications
 need to handle parts of the buffering process as well. Whenever playbin is
 buffering, it will post BUFFERING messages on the bus with a percentage
@@ -311,7 +314,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13221712"></a><h3>Embedding the video window in your application</h3>
+<a name="idp12924496"></a><h3>Embedding the video window in your application</h3>
 By default, playbin (or rather the video sinks used) will create their own
 window. Applications will usually want to force output to a window of their
 own, however. This can be done using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface, which most
@@ -321,7 +324,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13223680"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="idp12926464"></a><h3>Specifying which CD/DVD device to use</h3>
 The device to use for CDs/DVDs needs to be set on the source element
 playbin creates before it is opened. The most generic way of doing this
 is to connect to playbin's "source-setup" (or "notify::source") signal,
@@ -337,7 +340,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13225248"></a><h3>Handling redirects</h3>
+<a name="idp12928032"></a><h3>Handling redirects</h3>
 <p>
 Some elements may post 'redirect' messages on the bus to tell the
 application to open another location. These are element messages containing
@@ -350,7 +353,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp13226928"></a><h3>Examples</h3>
+<a name="idp12929712"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -396,9 +399,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13231904"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp12934320"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -419,7 +425,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13239360"></a><h3>Element Pads</h3>
+<a name="idp12941776"></a><h3>Element Pads</h3>
 </div>
 </div>
 <p>
@@ -454,8 +460,11 @@
 <p>
 Extra flags to configure the behaviour of the sinks.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-PLAY-FLAG-VIDEO:CAPS"></a><span class="term"><code class="literal">GST_PLAY_FLAG_VIDEO</code></span></p></td>
@@ -763,6 +772,33 @@
 <p>When enabled, scaling will respect original aspect ratio.</p>
 <p>Default value: TRUE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstPlayBin--audio-stream-combiner"></a><h3>The <code class="literal">"audio-stream-combiner"</code> property</h3>
+<pre class="programlisting">  "audio-stream-combiner"    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write</pre>
+<p>
+Get or set the current audio stream combiner. By default, an input-selector
+is created and deleted as-needed.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPlayBin--text-stream-combiner"></a><h3>The <code class="literal">"text-stream-combiner"</code> property</h3>
+<pre class="programlisting">  "text-stream-combiner"     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write</pre>
+<p>
+Get or set the current text stream combiner. By default, an input-selector
+is created and deleted as-needed.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPlayBin--video-stream-combiner"></a><h3>The <code class="literal">"video-stream-combiner"</code> property</h3>
+<pre class="programlisting">  "video-stream-combiner"    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>*           : Read / Write</pre>
+<p>
+Get or set the current video stream combiner. By default, an input-selector
+is created and deleted as-needed.
+</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.signal-details"></a><h2>Signal Details</h2>
@@ -777,8 +813,11 @@
 <p>
 This signal is emitted from the context of a GStreamer streaming thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -807,8 +846,11 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -837,8 +879,11 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -869,8 +914,11 @@
 If <em class="parameter"><code>caps</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, no conversion will be performed and this function is
 equivalent to the <span class="type">"frame"</span> property.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -902,13 +950,16 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-Action signal to retrieve the stream-selector sinkpad for a specific
+Action signal to retrieve the stream-combiner sinkpad for a specific
 audio stream.
 This pad can be used for notifications of caps changes, stream-specific
 queries, etc.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -940,8 +991,11 @@
 Action signal to retrieve the tags of a specific audio stream number.
 This information can be used to select a stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -971,13 +1025,16 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-Action signal to retrieve the stream-selector sinkpad for a specific
+Action signal to retrieve the stream-combiner sinkpad for a specific
 text stream.
 This pad can be used for notifications of caps changes, stream-specific
 queries, etc.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1009,8 +1066,11 @@
 Action signal to retrieve the tags of a specific text stream number.
 This information can be used to select a stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1040,13 +1100,16 @@
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>        stream,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
-Action signal to retrieve the stream-selector sinkpad for a specific
+Action signal to retrieve the stream-combiner sinkpad for a specific
 video stream.
 This pad can be used for notifications of caps changes, stream-specific
 queries, etc.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1078,8 +1141,11 @@
 Action signal to retrieve the tags of a specific video stream number.
 This information can be used to select a stream.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1119,8 +1185,11 @@
 This signal is usually emitted from the context of a GStreamer streaming
 thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1154,8 +1223,11 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1184,8 +1256,11 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1219,8 +1294,11 @@
 thread. You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a> to notify your application's main thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
@@ -1249,8 +1327,11 @@
 You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
 to notify your application's main thread.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>playbin</code></em> :</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
index 3582e11..3d09367 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>adder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="ch02.html" title="gst-plugins-base Plugins">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7108592"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8720832"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp11877888"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5373168"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-adder.html" title="adder">adder</a></span></p></td>
 <td>Add N audio channels together</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index c56d18e..75b5964 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>alsa</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15269936"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6244832"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8755616"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp2755344"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">alsasink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
index ca4736b..0b24543 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>app</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9340912"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp15667312"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8412496"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9674448"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-appsink.html" title="appsink">appsink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index 0ec96b4..bc0caf4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-app.html" title="app">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7540064"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp16056592"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp10191408"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6374128"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">audioconvert</a></span></p></td>
 <td>Convert audio to different formats</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index 8487687..9edc6dc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15259920"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6293968"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8123808"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5993456"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">audiorate</a></span></p></td>
 <td>Drops/duplicates/adjusts timestamps on audio samples to make a perfect stream</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index 6f4be24..aa7405e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audioresample</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15759648"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp11823392"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp10678880"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6778640"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">audioresample</a></span></p></td>
 <td>Resamples audio</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index 2a02cd6..5ec5b5f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>audiotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8567216"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp7941008"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7583024"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8074992"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">audiotestsrc</a></span></p></td>
 <td>Creates audio test signals of given frequency and volume</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index fd223f9..842ea5b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>cdparanoia</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15420048"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8158608"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp14669328"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp2795056"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">cdparanoiasrc</a></span></p></td>
 <td>Read audio from CD in paranoid mode</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index 07d413c..ff853df 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>encoding</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5379680"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8199424"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp8524768"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8801744"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">encodebin</a></span></p></td>
 <td>Convenience encoding/muxing element</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index e893ede..4775fbf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoconvert.html" title="videoconvert">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15241008"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6160192"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp9027520"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp7831568"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-giosink.html" title="giosink">giosink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
index bca07c3..1619964 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>libvisual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9534032"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp15795808"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7340672"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9131104"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">libvisual_bumpscope</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index 02d7e04..ea549f5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ogg</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16572832"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8672000"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp12386528"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp7804304"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">oggaviparse</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
index 9b22674..e6d950d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>pango</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp5618896"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp10586688"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp15743664"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8157056"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">clockoverlay</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
index e3603db..c9f0b57 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>playback</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8051200"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp15856448"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp11159296"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9054656"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">decodebin</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
index 96e5242..101a399 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp13433328"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9544000"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp9648192"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp10556752"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">ssaparse</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
index 1a4d2b3..3b2c4e9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15768912"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp16303584"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7206400"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6300048"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">multifdsink</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
index 8b49bc2..45f956e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theora</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9174128"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp14948416"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp11106096"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8232224"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">theoradec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
index 35179db..ce01d75 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>typefindfunctions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp16755440"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp16293136"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp5455088"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5727872"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody></tbody>
 </table></div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
index 5c0483e..c3885ae 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp6235568"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8535088"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp11094416"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp2921584"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-videoconvert.html" title="videoconvert">videoconvert</a></span></p></td>
 <td>Converts video from one colorspace to another</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
index f229224..44a777e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8107776"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp7082112"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp7414640"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp14100336"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-videorate.html" title="videorate">videorate</a></span></p></td>
 <td>Drops/duplicates/adjusts timestamps on video frames to make a perfect stream</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
index 4c02e6b..94b4180 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoscale</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15490240"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8996432"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp10387936"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp6917168"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">videoscale</a></span></p></td>
 <td>Resizes video</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
index f9fdec1..8c6f1ec 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp9494016"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp16624304"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp12332416"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8941904"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">videotestsrc</a></span></p></td>
 <td>Creates a test video stream</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
index e54f2bf..76b813d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>volume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp8281936"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5762832"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp5732976"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp8645024"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-volume.html" title="volume">volume</a></span></p></td>
 <td>Set volume on audio/raw streams</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
index 602d409..98ab12a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15855552"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5690880"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6997632"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5373424"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">vorbisdec</a></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
index 28aeffd..dc830b2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
@@ -29,9 +29,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp13705520"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp5874976"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -39,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -57,9 +60,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6982512"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp14036528"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">ximagesink</a></span></p></td>
 <td>A standard X based videosink</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
index 07a3cb1..f1225e4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>xvimagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
 <link rel="prev" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
@@ -28,9 +28,12 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp15732704"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9094736"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">filename</span></p></td>
@@ -38,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.0.8</td>
+<td>1.1.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -56,9 +59,12 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6574512"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
+<a name="idp9760208"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">xvimagesink</a></span></p></td>
 <td>A Xv based videosink</td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
index 30941a4..22a096f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>subtitleoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-playbin.html" title="playbin">
@@ -84,7 +84,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8738640"></a><h3>Examples</h3>
+<a name="idp8654688"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,9 +102,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6392816"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9123136"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -125,9 +128,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13761456"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13509520"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -147,8 +153,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -168,8 +177,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
index d36e415..5f3febd 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpclientsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
@@ -60,7 +60,7 @@
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host" title='The "host" property'>host</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol" title='The "protocol" property'>protocol</a>"                 <span class="type">GstTCPProtocol</span>        : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol" title='The "protocol" property'>protocol</a>"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -68,7 +68,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp12404384"></a><h3>Example launch line</h3>
+<a name="idp11316288"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,9 +92,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12336400"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11318608"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13745056"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11771680"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -170,7 +176,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPClientSink--protocol"></a><h3>The <code class="literal">"protocol"</code> property</h3>
-<pre class="programlisting">  "protocol"                 <span class="type">GstTCPProtocol</span>        : Read / Write</pre>
+<pre class="programlisting">  "protocol"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write</pre>
 <p>The protocol to wrap data in.</p>
 <p>Default value: GST_TCP_PROTOCOL_NONE</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
index 2a651da..a2ab00a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpclientsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
@@ -61,7 +61,7 @@
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host" title='The "host" property'>host</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol" title='The "protocol" property'>protocol</a>"                 <span class="type">GstTCPProtocol</span>        : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol" title='The "protocol" property'>protocol</a>"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -69,7 +69,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13714160"></a><h3>Example launch line</h3>
+<a name="idp8489104"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -93,9 +93,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13716768"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11323856"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -116,9 +119,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13560624"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11331264"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -171,7 +177,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPClientSrc--protocol"></a><h3>The <code class="literal">"protocol"</code> property</h3>
-<pre class="programlisting">  "protocol"                 <span class="type">GstTCPProtocol</span>        : Read / Write</pre>
+<pre class="programlisting">  "protocol"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write</pre>
 <p>The protocol to wrap data in.</p>
 <p>Default value: GST_TCP_PROTOCOL_NONE</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
index 2f96bd1..cf76134 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpserversink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13546896"></a><h3>Example launch line</h3>
+<a name="idp11055072"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,9 +94,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13549664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11057552"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +120,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13650400"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11064960"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
index c8eb65b..32d48ae 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tcpserversrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
@@ -61,7 +61,7 @@
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host" title='The "host" property'>host</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol" title='The "protocol" property'>protocol</a>"                 <span class="type">GstTCPProtocol</span>        : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol" title='The "protocol" property'>protocol</a>"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--current-port" title='The "current-port" property'>current-port</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read
 </pre>
 </div>
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp13382192"></a><h3>Example launch line</h3>
+<a name="idp5468256"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,9 +94,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13384960"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5470736"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +120,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13392368"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8248064"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -172,7 +178,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTCPServerSrc--protocol"></a><h3>The <code class="literal">"protocol"</code> property</h3>
-<pre class="programlisting">  "protocol"                 <span class="type">GstTCPProtocol</span>        : Read / Write</pre>
+<pre class="programlisting">  "protocol"                 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"><span class="type">GstTCPProtocol</span></a>        : Read / Write</pre>
 <p>The protocol to wrap data in.</p>
 <p>Default value: GST_TCP_PROTOCOL_NONE</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
index a36ff02..8fc70e7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>textoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
@@ -65,11 +65,11 @@
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shaded-background" title='The "shaded-background" property'>shaded-background</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="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--text" title='The "text" property'>text</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valign" title='The "valign" property'>valign</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Write
-  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wrap-mode" title='The "wrap-mode" property'>wrap-mode</a>"                <span class="type">GstTextOverlayWrapMode</span>  : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wrap-mode" title='The "wrap-mode" property'>wrap-mode</a>"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayWrapMode"><span class="type">GstTextOverlayWrapMode</span></a>  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpad" title='The "xpad" property'>xpad</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypad" title='The "ypad" property'>ypad</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--halignment" title='The "halignment" property'>halignment</a>"               <span class="type">GstTextOverlayHAlign</span>  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valignment" title='The "valignment" property'>valignment</a>"               <span class="type">GstTextOverlayVAlign</span>  : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--halignment" title='The "halignment" property'>halignment</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign"><span class="type">GstTextOverlayHAlign</span></a>  : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valignment" title='The "valignment" property'>valignment</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign"><span class="type">GstTextOverlayVAlign</span></a>  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--line-alignment" title='The "line-alignment" property'>line-alignment</a>"           <span class="type">GstTextOverlayLineAlign</span>  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wait-text" title='The "wait-text" property'>wait-text</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -85,9 +85,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp13103136"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13899520"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -108,9 +111,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13110544"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13905904"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -130,8 +136,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -151,8 +160,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -239,7 +251,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--wrap-mode"></a><h3>The <code class="literal">"wrap-mode"</code> property</h3>
-<pre class="programlisting">  "wrap-mode"                <span class="type">GstTextOverlayWrapMode</span>  : Read / Write</pre>
+<pre class="programlisting">  "wrap-mode"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayWrapMode"><span class="type">GstTextOverlayWrapMode</span></a>  : Read / Write</pre>
 <p>Whether to wrap the text and if so how.</p>
 <p>Default value: wordchar</p>
 </div>
@@ -262,14 +274,14 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--halignment"></a><h3>The <code class="literal">"halignment"</code> property</h3>
-<pre class="programlisting">  "halignment"               <span class="type">GstTextOverlayHAlign</span>  : Read / Write</pre>
+<pre class="programlisting">  "halignment"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign"><span class="type">GstTextOverlayHAlign</span></a>  : Read / Write</pre>
 <p>Horizontal alignment of the text.</p>
 <p>Default value: center</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTextOverlay--valignment"></a><h3>The <code class="literal">"valignment"</code> property</h3>
-<pre class="programlisting">  "valignment"               <span class="type">GstTextOverlayVAlign</span>  : Read / Write</pre>
+<pre class="programlisting">  "valignment"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign"><span class="type">GstTextOverlayVAlign</span></a>  : Read / Write</pre>
 <p>Vertical alignment of the text.</p>
 <p>Default value: baseline</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textrender.html b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
index 842a68b..4ebaf44 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textrender.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>textrender</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
@@ -70,9 +70,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7708336"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8226320"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -93,9 +96,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12171200"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13148784"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -115,8 +121,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
index c4c9940..f4edc3c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoradec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-textrender.html" title="textrender">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7502656"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8796848"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -89,9 +92,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp13488176"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13084176"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -111,8 +117,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
index b64a217..c1767b2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoraenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
@@ -67,7 +67,7 @@
 <a name="gst-plugins-base-plugins-theoraenc.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate" title='The "bitrate" property'>bitrate</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border" title='The "border" property'>border</a>"                   <span class="type">GstTheoraEncBorderMode</span>  : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border" title='The "border" property'>border</a>"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode"><span class="type">GstTheoraEncBorderMode</span></a>  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--center" title='The "center" property'>center</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="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-auto" title='The "keyframe-auto" property'>keyframe-auto</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="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-force" title='The "keyframe-force" property'>keyframe-force</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
@@ -94,9 +94,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp12936752"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14229360"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -117,9 +120,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12944096"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14236816"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -139,8 +145,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -186,7 +195,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTheoraEnc--border"></a><h3>The <code class="literal">"border"</code> property</h3>
-<pre class="programlisting">  "border"                   <span class="type">GstTheoraEncBorderMode</span>  : Read / Write</pre>
+<pre class="programlisting">  "border"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode"><span class="type">GstTheoraEncBorderMode</span></a>  : Read / Write</pre>
 <p>ignored and kept for API compat only.</p>
 <p>Default value: Black Border</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
index 8de7267..340bd79 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>theoraparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
@@ -65,9 +65,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9560288"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6488032"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -88,9 +91,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14591664"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9325808"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -110,8 +116,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
index 9d32e8c..623693a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>timeoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6893504"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7579232"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -81,9 +84,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp7107264"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11762016"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -103,8 +109,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
index be7373e..30fc8ea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>uridecodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
@@ -92,6 +92,7 @@
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained" title='The "drained" signal'>drained</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort" title='The "autoplug-sort" signal'>autoplug-sort</a>"                                  : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
   "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup" title='The "source-setup" signal'>source-setup</a>"                                   : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+  "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-query" title='The "autoplug-query" signal'>autoplug-query</a>"                                 : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
 </pre>
 </div>
 <div class="refsect1">
@@ -103,9 +104,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14722272"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14598736"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -126,9 +130,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14729728"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14606192"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -174,8 +181,11 @@
 <p>
 return values for the autoplug-select signal.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-AUTOPLUG-SELECT-TRY:CAPS"></a><span class="term"><code class="literal">GST_AUTOPLUG_SELECT_TRY</code></span></p></td>
@@ -299,8 +309,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -358,8 +371,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -425,8 +441,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -468,8 +487,11 @@
 This signal is emitted when a pad for which there is no further possible
 decoding is added to the uridecodebin.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -499,8 +521,11 @@
 <p>
 This signal is emitted when the data for the current uri is played.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
@@ -537,8 +562,11 @@
 </div>
 <p>
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -581,8 +609,11 @@
 an audio cd source). This is functionally equivalent to connecting to
 the notify::source signal, but more convenient.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
@@ -600,6 +631,33 @@
 </table></div>
 <p class="since">Since 0.10.33</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstURIDecodeBin-autoplug-query"></a><h3>The <code class="literal">"autoplug-query"</code> signal</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a> *gsturidecodebin,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>          *arg1,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>      *arg2,
+                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>        *arg3,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)            : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>gsturidecodebin</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
index 49b31c3..edb86ba 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6822704"></a><h3>Example launch line</h3>
+<a name="idp7520288"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -88,9 +88,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7233328"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp7807632"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -111,9 +114,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5807552"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5980992"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -129,12 +135,19 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -150,7 +163,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
index 5eb029f..4113e05 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
@@ -115,7 +115,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14418320"></a><h3>Example pipelines</h3>
+<a name="idp14907152"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -149,9 +149,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14422736"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14911280"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -172,9 +175,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14430192"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14918736"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -202,8 +208,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
index 9c508be..af697eb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videoscale</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videorate.html" title="videorate">
@@ -84,7 +84,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp14564544"></a><h3>Example pipelines</h3>
+<a name="idp8570032"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -120,9 +120,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14568944"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp11738816"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -143,9 +146,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14345920"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp13368784"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -163,10 +169,17 @@
 <td><p><span class="term">details</span></p></td>
 <td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -184,6 +197,10 @@
 <td><p><span class="term">details</span></p></td>
 <td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -213,8 +230,11 @@
 <p>
 The videoscale method to use.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-SCALE-NEAREST:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_SCALE_NEAREST</code></span></p></td>
@@ -253,7 +273,7 @@
 <a name="GstVideoScale--add-borders"></a><h3>The <code class="literal">"add-borders"</code> property</h3>
 <pre class="programlisting">  "add-borders"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>Add black borders if necessary to keep the display aspect ratio.</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
index 48647d3..3f4a8e8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>videotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
@@ -64,7 +64,7 @@
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>"         <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--is-live" title='The "is-live" property'>is-live</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--peer-alloc" title='The "peer-alloc" property'>peer-alloc</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="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--colorspec" title='The "colorspec" property'>colorspec</a>"                <span class="type">GstVideoTestSrcColorSpec</span>  : Read / Write
+  "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--colorspec" title='The "colorspec" property'>colorspec</a>"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec"><span class="type">GstVideoTestSrcColorSpec</span></a>  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--k0" title='The "k0" property'>k0</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt" title='The "kt" property'>kt</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt2" title='The "kt2" property'>kt2</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
@@ -92,7 +92,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp15527008"></a><h3>Example launch line</h3>
+<a name="idp14075232"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,9 +110,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15529664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14077600"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -133,9 +136,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15537120"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14085056"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -151,7 +157,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -222,8 +228,11 @@
 pattern=zone-plate kx2=20 ky2=20 kt=1' to produce something
 interesting.
 </p>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><a name="GST-VIDEO-TEST-SRC-SMPTE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TEST_SRC_SMPTE</code></span></p></td>
@@ -366,7 +375,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTestSrc--colorspec"></a><h3>The <code class="literal">"colorspec"</code> property</h3>
-<pre class="programlisting">  "colorspec"                <span class="type">GstVideoTestSrcColorSpec</span>  : Read / Write</pre>
+<pre class="programlisting">  "colorspec"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec"><span class="type">GstVideoTestSrcColorSpec</span></a>  : Read / Write</pre>
 <p>Generate video in the given color specification (Deprecated: use a caps filter with video/x-raw-yuv,color-matrix="sdtv" or "hdtv" instead).</p>
 <p>Default value: ITU-R Rec. BT.601</p>
 </div>
@@ -463,7 +472,6 @@
 black (0xff000000).
 </p>
 <p>Default value: 4278190080</p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -474,7 +482,6 @@
 patterns.  Default is white (0xffffffff).
 </p>
 <p>Default value: 4294967295</p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-volume.html b/docs/plugins/html/gst-plugins-base-plugins-volume.html
index c02a413..c754277 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-volume.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>volume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
@@ -79,7 +79,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11852016"></a><h3>Example launch line</h3>
+<a name="idp5191648"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,9 +99,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15499712"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9559168"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -122,9 +125,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15507168"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14852496"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -144,8 +150,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
index cd12d95..6f2eeef 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-volume.html" title="volume">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10205664"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8788672"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -81,9 +84,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11840080"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9337440"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -103,8 +109,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
index ca32ec4..7e24afa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
@@ -61,7 +61,7 @@
 <a name="gst-plugins-base-plugins-vorbisenc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstVorbisEnc implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisenc.properties"></a><h2>Properties</h2>
@@ -79,9 +79,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14613008"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9304416"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -102,9 +105,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14620416"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp8059360"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -124,8 +130,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
index c2c9071..39480e5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbisparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
@@ -58,9 +58,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7541760"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp5478112"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -81,9 +84,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp14688992"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp9630064"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -103,8 +109,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
index 0549c51..31ea540 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>vorbistag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
@@ -66,9 +66,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp14690912"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp10106256"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -89,9 +92,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8308928"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp6567808"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
@@ -111,8 +117,11 @@
 </tr>
 </tbody>
 </table></div>
-<div class="variablelist"><table border="0">
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
index 5d14033..2df0d1a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>ximagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
@@ -62,7 +62,7 @@
 <a name="gst-plugins-base-plugins-ximagesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstXImageSink implements
- GstNavigation and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-ximagesink.properties"></a><h2>Properties</h2>
@@ -82,9 +82,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp15182528"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp14432368"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -105,9 +108,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp15010352"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp15979600"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
index 6ecdf00..575aeb5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>xvimagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
@@ -62,7 +62,7 @@
 <a name="gst-plugins-base-plugins-xvimagesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstXvImageSink implements
- GstNavigation,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>,  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a> and  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-xvimagesink.properties"></a><h2>Properties</h2>
@@ -92,9 +92,12 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp16618768"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16153248"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
@@ -115,9 +118,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp16626224"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0">
+<a name="idp16160704"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
 <col align="left" valign="top">
+<col>
+</colgroup>
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index ed2625f..201f014 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="next" href="ch01.html" title="gst-plugins-base Elements">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -15,14 +15,14 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Plugins 1.0 (1.0.8)
+      for GStreamer Base Plugins 1.0 (1.1.2)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
     </p></div>
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="chapter"><a href="ch01.html">gst-plugins-base Elements</a></span></dt>
 <dd><dl>
 <dt>
@@ -164,82 +164,82 @@
 <dt><span class="chapter"><a href="ch02.html">gst-plugins-base Plugins</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose"> — <a name="plugin-adder"></a>Adds multiple streams</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose">Adds multiple streams</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-alsa.html">alsa</a></span><span class="refpurpose"> — <a name="plugin-alsa"></a>ALSA plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-alsa.html">alsa</a></span><span class="refpurpose">ALSA plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-app.html">app</a></span><span class="refpurpose"> — <a name="plugin-app"></a>Elements used to communicate with applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-app.html">app</a></span><span class="refpurpose">Elements used to communicate with applications</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioconvert.html">audioconvert</a></span><span class="refpurpose"> — <a name="plugin-audioconvert"></a>Convert audio to different formats</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioconvert.html">audioconvert</a></span><span class="refpurpose">Convert audio to different formats</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiorate.html">audiorate</a></span><span class="refpurpose"> — <a name="plugin-audiorate"></a>Adjusts audio frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiorate.html">audiorate</a></span><span class="refpurpose">Adjusts audio frames</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioresample.html">audioresample</a></span><span class="refpurpose"> — <a name="plugin-audioresample"></a>Resamples audio</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audioresample.html">audioresample</a></span><span class="refpurpose">Resamples audio</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiotestsrc.html">audiotestsrc</a></span><span class="refpurpose"> — <a name="plugin-audiotestsrc"></a>Creates audio test signals of given frequency and volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-audiotestsrc.html">audiotestsrc</a></span><span class="refpurpose">Creates audio test signals of given frequency and volume</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-cdparanoia.html">cdparanoia</a></span><span class="refpurpose"> — <a name="plugin-cdparanoia"></a>Read audio from CD in paranoid mode</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-cdparanoia.html">cdparanoia</a></span><span class="refpurpose">Read audio from CD in paranoid mode</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-encoding.html">encoding</a></span><span class="refpurpose"> — <a name="plugin-encoding"></a>various encoding-related elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-encoding.html">encoding</a></span><span class="refpurpose">various encoding-related elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoconvert.html">videoconvert</a></span><span class="refpurpose"> — <a name="plugin-videoconvert"></a>Colorspace conversion</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoconvert.html">videoconvert</a></span><span class="refpurpose">Colorspace conversion</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-gio.html">gio</a></span><span class="refpurpose"> — <a name="plugin-gio"></a>GIO elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-gio.html">gio</a></span><span class="refpurpose">GIO elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-libvisual.html">libvisual</a></span><span class="refpurpose"> — <a name="plugin-libvisual"></a>libvisual visualization plugins</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-libvisual.html">libvisual</a></span><span class="refpurpose">libvisual visualization plugins</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ogg.html">ogg</a></span><span class="refpurpose"> — <a name="plugin-ogg"></a>ogg stream manipulation (info about ogg: http://xiph.org)</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ogg.html">ogg</a></span><span class="refpurpose">ogg stream manipulation (info about ogg: http://xiph.org)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-pango.html">pango</a></span><span class="refpurpose"> — <a name="plugin-pango"></a>Pango-based text rendering and overlay</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-pango.html">pango</a></span><span class="refpurpose">Pango-based text rendering and overlay</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-playback.html">playback</a></span><span class="refpurpose"> — <a name="plugin-playback"></a>various playback elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-playback.html">playback</a></span><span class="refpurpose">various playback elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-subparse.html">subparse</a></span><span class="refpurpose"> — <a name="plugin-subparse"></a>Subtitle parsing</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-subparse.html">subparse</a></span><span class="refpurpose">Subtitle parsing</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-tcp.html">tcp</a></span><span class="refpurpose"> — <a name="plugin-tcp"></a>transfer data over the network via TCP</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-tcp.html">tcp</a></span><span class="refpurpose">transfer data over the network via TCP</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-theora.html">theora</a></span><span class="refpurpose"> — <a name="plugin-theora"></a>Theora plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-theora.html">theora</a></span><span class="refpurpose">Theora plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-typefindfunctions.html">typefindfunctions</a></span><span class="refpurpose"> — <a name="plugin-typefindfunctions"></a>default typefind functions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-typefindfunctions.html">typefindfunctions</a></span><span class="refpurpose">default typefind functions</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videorate.html">videorate</a></span><span class="refpurpose"> — <a name="plugin-videorate"></a>Adjusts video frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videorate.html">videorate</a></span><span class="refpurpose">Adjusts video frames</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoscale.html">videoscale</a></span><span class="refpurpose"> — <a name="plugin-videoscale"></a>Resizes video</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videoscale.html">videoscale</a></span><span class="refpurpose">Resizes video</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videotestsrc.html">videotestsrc</a></span><span class="refpurpose"> — <a name="plugin-videotestsrc"></a>Creates a test video stream</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-videotestsrc.html">videotestsrc</a></span><span class="refpurpose">Creates a test video stream</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-volume.html">volume</a></span><span class="refpurpose"> — <a name="plugin-volume"></a>plugin for controlling audio volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-volume.html">volume</a></span><span class="refpurpose">plugin for controlling audio volume</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-vorbis.html">vorbis</a></span><span class="refpurpose"> — <a name="plugin-vorbis"></a>Vorbis plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-vorbis.html">vorbis</a></span><span class="refpurpose">Vorbis plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ximagesink.html">ximagesink</a></span><span class="refpurpose"> — <a name="plugin-ximagesink"></a>X11 video output element based on standard Xlib calls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-ximagesink.html">ximagesink</a></span><span class="refpurpose">X11 video output element based on standard Xlib calls</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-xvimagesink.html">xvimagesink</a></span><span class="refpurpose"> — <a name="plugin-xvimagesink"></a>XFree86 video output plugin using Xv extension</span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-xvimagesink.html">xvimagesink</a></span><span class="refpurpose">XFree86 video output plugin using Xv extension</span>
 </dt>
 </dl></dd>
 </dl></div>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index eeefb7a..8dca2dd 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -3,6 +3,7 @@
 <ANCHOR id="gst-plugins-base-plugins-adder.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.synopsis">
 <ANCHOR id="GstAdder" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#GstAdder">
 <ANCHOR id="gst-plugins-base-plugins-adder.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.object-hierarchy">
+<ANCHOR id="gst-plugins-base-plugins-adder.implemented-interfaces" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.implemented-interfaces">
 <ANCHOR id="gst-plugins-base-plugins-adder.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.properties">
 <ANCHOR id="gst-plugins-base-plugins-adder.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.description">
 <ANCHOR id="gst-plugins-base-plugins-adder.details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-adder.html#gst-plugins-base-plugins-adder.details">
@@ -67,7 +68,6 @@
 <ANCHOR id="gst-plugins-base-plugins-alsasink.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.synopsis">
 <ANCHOR id="GstAlsaSink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#GstAlsaSink">
 <ANCHOR id="gst-plugins-base-plugins-alsasink.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.object-hierarchy">
-<ANCHOR id="gst-plugins-base-plugins-alsasink.implemented-interfaces" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.implemented-interfaces">
 <ANCHOR id="gst-plugins-base-plugins-alsasink.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.properties">
 <ANCHOR id="gst-plugins-base-plugins-alsasink.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.description">
 <ANCHOR id="gst-plugins-base-plugins-alsasink.details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.details">
@@ -80,7 +80,6 @@
 <ANCHOR id="gst-plugins-base-plugins-alsasrc.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.synopsis">
 <ANCHOR id="GstAlsaSrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc">
 <ANCHOR id="gst-plugins-base-plugins-alsasrc.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.object-hierarchy">
-<ANCHOR id="gst-plugins-base-plugins-alsasrc.implemented-interfaces" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.implemented-interfaces">
 <ANCHOR id="gst-plugins-base-plugins-alsasrc.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.properties">
 <ANCHOR id="gst-plugins-base-plugins-alsasrc.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.description">
 <ANCHOR id="gst-plugins-base-plugins-alsasrc.details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.details">
@@ -139,6 +138,8 @@
 <ANCHOR id="gst-plugins-base-plugins-audioresample.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioresample.html#gst-plugins-base-plugins-audioresample.property-details">
 <ANCHOR id="GstAudioResample--filter-length" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length">
 <ANCHOR id="GstAudioResample--quality" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality">
+<ANCHOR id="GstAudioResample--sinc-filter-auto-threshold" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-auto-threshold">
+<ANCHOR id="GstAudioResample--sinc-filter-mode" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-mode">
 <ANCHOR id="gst-plugins-base-plugins-audiotestsrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audiotestsrc.html">
 <ANCHOR id="gst-plugins-base-plugins-audiotestsrc.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audiotestsrc.html#gst-plugins-base-plugins-audiotestsrc.synopsis">
 <ANCHOR id="GstAudioTestSrc" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc">
@@ -232,6 +233,7 @@
 <ANCHOR id="GstDecodeBin-autoplug-select" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-select">
 <ANCHOR id="GstDecodeBin-autoplug-sort" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-sort">
 <ANCHOR id="GstDecodeBin-drained" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-decodebin.html#GstDecodeBin-drained">
+<ANCHOR id="GstDecodeBin-autoplug-query" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-query">
 <ANCHOR id="gst-plugins-base-plugins-encodebin" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html">
 <ANCHOR id="gst-plugins-base-plugins-encodebin.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html#gst-plugins-base-plugins-encodebin.synopsis">
 <ANCHOR id="GstEncodeBin" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html#GstEncodeBin">
@@ -252,6 +254,7 @@
 <ANCHOR id="GstEncodeBin--flags" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags">
 <ANCHOR id="gst-plugins-base-plugins-encodebin.signal-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html#gst-plugins-base-plugins-encodebin.signal-details">
 <ANCHOR id="GstEncodeBin-request-pad" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad">
+<ANCHOR id="GstEncodeBin-request-profile-pad" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-profile-pad">
 <ANCHOR id="gst-plugins-base-plugins-videoconvert" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videoconvert.html">
 <ANCHOR id="gst-plugins-base-plugins-videoconvert.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videoconvert.html#gst-plugins-base-plugins-videoconvert.synopsis">
 <ANCHOR id="GstVideoConvert" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videoconvert.html#GstVideoConvert">
@@ -490,6 +493,9 @@
 <ANCHOR id="GstPlayBin--current-suburi" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin--current-suburi">
 <ANCHOR id="GstPlayBin--current-uri" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin--current-uri">
 <ANCHOR id="GstPlayBin--force-aspect-ratio" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin--force-aspect-ratio">
+<ANCHOR id="GstPlayBin--audio-stream-combiner" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-stream-combiner">
+<ANCHOR id="GstPlayBin--text-stream-combiner" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin--text-stream-combiner">
+<ANCHOR id="GstPlayBin--video-stream-combiner" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin--video-stream-combiner">
 <ANCHOR id="gst-plugins-base-plugins-playbin.signal-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#gst-plugins-base-plugins-playbin.signal-details">
 <ANCHOR id="GstPlayBin-about-to-finish" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin-about-to-finish">
 <ANCHOR id="GstPlayBin-audio-changed" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-playbin.html#GstPlayBin-audio-changed">
@@ -708,6 +714,7 @@
 <ANCHOR id="GstURIDecodeBin-drained" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained">
 <ANCHOR id="GstURIDecodeBin-autoplug-sort" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort">
 <ANCHOR id="GstURIDecodeBin-source-setup" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup">
+<ANCHOR id="GstURIDecodeBin-autoplug-query" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-query">
 <ANCHOR id="gst-plugins-base-plugins-videorate" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videorate.html">
 <ANCHOR id="gst-plugins-base-plugins-videorate.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videorate.html#gst-plugins-base-plugins-videorate.synopsis">
 <ANCHOR id="GstVideoRate" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-videorate.html#GstVideoRate">
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index 7285e22..7321505 100644
--- a/docs/plugins/inspect/plugin-adder.xml
+++ b/docs/plugins/inspect/plugin-adder.xml
@@ -3,7 +3,7 @@
   <description>Adds multiple streams</description>
   <filename>../../gst/adder/.libs/libgstadder.so</filename>
   <basename>libgstadder.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alsa.xml b/docs/plugins/inspect/plugin-alsa.xml
index e74cef2..09f42d4 100644
--- a/docs/plugins/inspect/plugin-alsa.xml
+++ b/docs/plugins/inspect/plugin-alsa.xml
@@ -3,7 +3,7 @@
   <description>ALSA plugin library</description>
   <filename>../../ext/alsa/.libs/libgstalsa.so</filename>
   <basename>libgstalsa.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-app.xml b/docs/plugins/inspect/plugin-app.xml
index 80aae5b..6017808 100644
--- a/docs/plugins/inspect/plugin-app.xml
+++ b/docs/plugins/inspect/plugin-app.xml
@@ -3,7 +3,7 @@
   <description>Elements used to communicate with applications</description>
   <filename>../../gst/app/.libs/libgstapp.so</filename>
   <basename>libgstapp.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioconvert.xml b/docs/plugins/inspect/plugin-audioconvert.xml
index b90fc3c..bbf9386 100644
--- a/docs/plugins/inspect/plugin-audioconvert.xml
+++ b/docs/plugins/inspect/plugin-audioconvert.xml
@@ -3,7 +3,7 @@
   <description>Convert audio to different formats</description>
   <filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
   <basename>libgstaudioconvert.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiorate.xml b/docs/plugins/inspect/plugin-audiorate.xml
index 35d5dd4..e451eab 100644
--- a/docs/plugins/inspect/plugin-audiorate.xml
+++ b/docs/plugins/inspect/plugin-audiorate.xml
@@ -3,7 +3,7 @@
   <description>Adjusts audio frames</description>
   <filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
   <basename>libgstaudiorate.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioresample.xml b/docs/plugins/inspect/plugin-audioresample.xml
index 3a243f2..93ce3c7 100644
--- a/docs/plugins/inspect/plugin-audioresample.xml
+++ b/docs/plugins/inspect/plugin-audioresample.xml
@@ -3,7 +3,7 @@
   <description>Resamples audio</description>
   <filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
   <basename>libgstaudioresample.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiotestsrc.xml b/docs/plugins/inspect/plugin-audiotestsrc.xml
index bcb1c41..5d3f298 100644
--- a/docs/plugins/inspect/plugin-audiotestsrc.xml
+++ b/docs/plugins/inspect/plugin-audiotestsrc.xml
@@ -3,7 +3,7 @@
   <description>Creates audio test signals of given frequency and volume</description>
   <filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
   <basename>libgstaudiotestsrc.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string){ S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)1; audio/x-raw, format=(string){ S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
+          <details>audio/x-raw, format=(string){ S16LE, S32LE, F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml
index 6b445b1..afd15ee 100644
--- a/docs/plugins/inspect/plugin-cdparanoia.xml
+++ b/docs/plugins/inspect/plugin-cdparanoia.xml
@@ -3,7 +3,7 @@
   <description>Read audio from CD in paranoid mode</description>
   <filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
   <basename>libgstcdparanoia.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-encoding.xml b/docs/plugins/inspect/plugin-encoding.xml
index 6d648bf..b74a473 100644
--- a/docs/plugins/inspect/plugin-encoding.xml
+++ b/docs/plugins/inspect/plugin-encoding.xml
@@ -3,7 +3,7 @@
   <description>various encoding-related elements</description>
   <filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
   <basename>libgstencodebin.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gio.xml b/docs/plugins/inspect/plugin-gio.xml
index d887a4c..4cbf869 100644
--- a/docs/plugins/inspect/plugin-gio.xml
+++ b/docs/plugins/inspect/plugin-gio.xml
@@ -3,7 +3,7 @@
   <description>GIO elements</description>
   <filename>../../gst/gio/.libs/libgstgio.so</filename>
   <basename>libgstgio.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ivorbisdec.xml b/docs/plugins/inspect/plugin-ivorbisdec.xml
index 809914a..f269a9f 100644
--- a/docs/plugins/inspect/plugin-ivorbisdec.xml
+++ b/docs/plugins/inspect/plugin-ivorbisdec.xml
@@ -3,7 +3,7 @@
   <description>Vorbis Tremor decoder</description>
   <filename>../../ext/vorbis/.libs/libgstivorbisdec.so</filename>
   <basename>libgstivorbisdec.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libvisual.xml b/docs/plugins/inspect/plugin-libvisual.xml
index 6ed648a..7225445 100644
--- a/docs/plugins/inspect/plugin-libvisual.xml
+++ b/docs/plugins/inspect/plugin-libvisual.xml
@@ -3,7 +3,7 @@
   <description>libvisual visualization plugins</description>
   <filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
   <basename>libgstlibvisual.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ogg.xml b/docs/plugins/inspect/plugin-ogg.xml
index 2a850fe..6afe43e 100644
--- a/docs/plugins/inspect/plugin-ogg.xml
+++ b/docs/plugins/inspect/plugin-ogg.xml
@@ -3,7 +3,7 @@
   <description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
   <filename>../../ext/ogg/.libs/libgstogg.so</filename>
   <basename>libgstogg.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -74,7 +74,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-theora; application/x-ogm-video; video/x-dirac; video/x-smoke; video/x-vp8</details>
+          <details>video/x-theora; application/x-ogm-video; video/x-dirac; video/x-smoke; video/x-vp8; video/x-daala</details>
         </caps>
         <caps>
           <name>src</name>
@@ -164,7 +164,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>sometimes</presence>
-          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cirrus-logic-accupak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camstudio, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-compressed-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string){ RGB8P, BGR, BGRx }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)25, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)50, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-flash-video, flvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lucent, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-huffyuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-intel-h263, variant=(string)intel, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)microsoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/jpeg, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)42, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)43, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)41, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mszh, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/png, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-rle, layout=(string)microsoft, depth=(int)[ 1, 64 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/sp5x, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camtasia, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ultimotion, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)UYVY, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vdolive, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vivo, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)videosoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xan, wcversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YVU9, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zlib, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cinepak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msvideocodec, msvideoversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)xirlink, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dirac, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ffv, ffvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-kmvc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp7, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp8, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mimic, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-apple-video, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-theora, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-fraps, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-aasc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-loco, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zmbv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)v210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)r210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</details>
+          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-asus, asusversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cirrus-logic-accupak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camstudio, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-compressed-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string){ RGB8P, BGR, BGRx }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)25, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, dvversion=(int)50, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-flash-video, flvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lucent, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-huffyuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-intel-h263, variant=(string)intel, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)lead, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)microsoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/jpeg, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)42, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)43, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, systemstream=(boolean)false, mpegversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)41, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mszh, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; image/png, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-rle, layout=(string)microsoft, depth=(int)[ 1, 64 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-indeo, indeoversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/sp5x, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-truemotion, trueversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-camtasia, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ultimotion, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)UYVY, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ati-vcr, vcrversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vdolive, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)vivo, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)videosoft, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-wmv, wmvversion=(int)3, format=(string)WMV3, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xan, wcversion=(int)4, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YVU9, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zlib, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-cinepak, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h264, variant=(string)itu, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msvideocodec, msvideoversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, variant=(string)xirlink, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dirac, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-ffv, ffvversion=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-kmvc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp5, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp6-flash, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp7, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-vp8, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-mimic, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-apple-video, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-theora, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-fraps, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-aasc, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)YV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-loco, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-zmbv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)v210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw, format=(string)r210, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml
index dd6bd3f..8b03666 100644
--- a/docs/plugins/inspect/plugin-pango.xml
+++ b/docs/plugins/inspect/plugin-pango.xml
@@ -3,7 +3,7 @@
   <description>Pango-based text rendering and overlay</description>
   <filename>../../ext/pango/.libs/libgstpango.so</filename>
   <basename>libgstpango.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-playback.xml b/docs/plugins/inspect/plugin-playback.xml
index d86ce03..2243a91 100644
--- a/docs/plugins/inspect/plugin-playback.xml
+++ b/docs/plugins/inspect/plugin-playback.xml
@@ -3,7 +3,7 @@
   <description>various playback elements</description>
   <filename>../../gst/playback/.libs/libgstplayback.so</filename>
   <basename>libgstplayback.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-subparse.xml b/docs/plugins/inspect/plugin-subparse.xml
index ccefc6f..389fbab 100644
--- a/docs/plugins/inspect/plugin-subparse.xml
+++ b/docs/plugins/inspect/plugin-subparse.xml
@@ -3,7 +3,7 @@
   <description>Subtitle parsing</description>
   <filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
   <basename>libgstsubparse.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-tcp.xml b/docs/plugins/inspect/plugin-tcp.xml
index b5ed941..15c1e2c 100644
--- a/docs/plugins/inspect/plugin-tcp.xml
+++ b/docs/plugins/inspect/plugin-tcp.xml
@@ -3,7 +3,7 @@
   <description>transfer data over the network via TCP</description>
   <filename>../../gst/tcp/.libs/libgsttcp.so</filename>
   <basename>libgsttcp.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-theora.xml b/docs/plugins/inspect/plugin-theora.xml
index 65dc0c6..232bf82 100644
--- a/docs/plugins/inspect/plugin-theora.xml
+++ b/docs/plugins/inspect/plugin-theora.xml
@@ -3,7 +3,7 @@
   <description>Theora plugin library</description>
   <filename>../../ext/theora/.libs/libgsttheora.so</filename>
   <basename>libgsttheora.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-typefindfunctions.xml b/docs/plugins/inspect/plugin-typefindfunctions.xml
index f12a061..3a11972 100644
--- a/docs/plugins/inspect/plugin-typefindfunctions.xml
+++ b/docs/plugins/inspect/plugin-typefindfunctions.xml
@@ -3,7 +3,7 @@
   <description>default typefind functions</description>
   <filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
   <basename>libgsttypefindfunctions.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoconvert.xml b/docs/plugins/inspect/plugin-videoconvert.xml
index acb6366..e8888b8 100644
--- a/docs/plugins/inspect/plugin-videoconvert.xml
+++ b/docs/plugins/inspect/plugin-videoconvert.xml
@@ -3,7 +3,7 @@
   <description>Colorspace conversion</description>
   <filename>../../gst/videoconvert/.libs/libgstvideoconvert.so</filename>
   <basename>libgstvideoconvert.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml
index bc05ef5..3e42e22 100644
--- a/docs/plugins/inspect/plugin-videorate.xml
+++ b/docs/plugins/inspect/plugin-videorate.xml
@@ -3,7 +3,7 @@
   <description>Adjusts video frames</description>
   <filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
   <basename>libgstvideorate.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoscale.xml b/docs/plugins/inspect/plugin-videoscale.xml
index 7b42121..2234dbb 100644
--- a/docs/plugins/inspect/plugin-videoscale.xml
+++ b/docs/plugins/inspect/plugin-videoscale.xml
@@ -3,7 +3,7 @@
   <description>Resizes video</description>
   <filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
   <basename>libgstvideoscale.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, RGB15, ARGB64, AYUV64, NV12 }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml
index 95c9093..065379f 100644
--- a/docs/plugins/inspect/plugin-videotestsrc.xml
+++ b/docs/plugins/inspect/plugin-videotestsrc.xml
@@ -3,7 +3,7 @@
   <description>Creates a test video stream</description>
   <filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
   <basename>libgstvideotestsrc.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ bggr, rggb, grbg, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-bayer, format=(string){ bggr, rggb, grbg, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-volume.xml b/docs/plugins/inspect/plugin-volume.xml
index df0a3e4..6a2c6a0 100644
--- a/docs/plugins/inspect/plugin-volume.xml
+++ b/docs/plugins/inspect/plugin-volume.xml
@@ -3,7 +3,7 @@
   <description>plugin for controlling audio volume</description>
   <filename>../../gst/volume/.libs/libgstvolume.so</filename>
   <basename>libgstvolume.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vorbis.xml b/docs/plugins/inspect/plugin-vorbis.xml
index 6cd4b23..77acba8 100644
--- a/docs/plugins/inspect/plugin-vorbis.xml
+++ b/docs/plugins/inspect/plugin-vorbis.xml
@@ -3,7 +3,7 @@
   <description>Vorbis plugin library</description>
   <filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
   <basename>libgstvorbis.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesink.xml b/docs/plugins/inspect/plugin-ximagesink.xml
index 27500ab..7582ae5 100644
--- a/docs/plugins/inspect/plugin-ximagesink.xml
+++ b/docs/plugins/inspect/plugin-ximagesink.xml
@@ -3,7 +3,7 @@
   <description>X11 video output element based on standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
   <basename>libgstximagesink.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-xvimagesink.xml b/docs/plugins/inspect/plugin-xvimagesink.xml
index b0db821..5f46f92 100644
--- a/docs/plugins/inspect/plugin-xvimagesink.xml
+++ b/docs/plugins/inspect/plugin-xvimagesink.xml
@@ -3,7 +3,7 @@
   <description>XFree86 video output plugin using Xv extension</description>
   <filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
   <basename>libgstxvimagesink.so</basename>
-  <version>1.0.8</version>
+  <version>1.1.2</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 08d6497..262f60f 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = ext
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -103,21 +129,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -125,9 +158,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -521,22 +574,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -551,57 +607,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -617,12 +628,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -634,15 +640,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -651,6 +653,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -811,22 +828,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/ext/alsa/Makefile.in b/ext/alsa/Makefile.in
index ae6f35f..411f532 100644
--- a/ext/alsa/Makefile.in
+++ b/ext/alsa/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/alsa
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -139,10 +165,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstalsa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstalsa_la_CFLAGS) $(CFLAGS) \
 	$(libgstalsa_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstalsa_la_SOURCES)
 DIST_SOURCES = $(libgstalsa_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -531,6 +583,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -557,12 +610,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstalsa.la: $(libgstalsa_la_OBJECTS) $(libgstalsa_la_DEPENDENCIES) $(EXTRA_libgstalsa_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstalsa_la_LINK) -rpath $(plugindir) $(libgstalsa_la_OBJECTS) $(libgstalsa_la_LIBADD) $(LIBS)
 
@@ -640,26 +696,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -671,15 +716,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -688,6 +729,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -832,19 +888,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/alsa/gstalsa.c b/ext/alsa/gstalsa.c
index 13b0fae..0828110 100644
--- a/ext/alsa/gstalsa.c
+++ b/ext/alsa/gstalsa.c
@@ -12,7 +12,7 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #include "gstalsa.h"
diff --git a/ext/alsa/gstalsa.h b/ext/alsa/gstalsa.h
index ff8791b..b9000de 100644
--- a/ext/alsa/gstalsa.h
+++ b/ext/alsa/gstalsa.h
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/alsa/gstalsadeviceprobe.c b/ext/alsa/gstalsadeviceprobe.c
index 74c10e9..2f678e5 100644
--- a/ext/alsa/gstalsadeviceprobe.c
+++ b/ext/alsa/gstalsadeviceprobe.c
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
diff --git a/ext/alsa/gstalsadeviceprobe.h b/ext/alsa/gstalsadeviceprobe.h
index 75f2cd6..20bf117 100644
--- a/ext/alsa/gstalsadeviceprobe.h
+++ b/ext/alsa/gstalsadeviceprobe.h
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ALSA_DEVICE_PROBE_H__
diff --git a/ext/alsa/gstalsaplugin.c b/ext/alsa/gstalsaplugin.c
index e703a85..8596276 100644
--- a/ext/alsa/gstalsaplugin.c
+++ b/ext/alsa/gstalsaplugin.c
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c
index eb3314b..19dbd8b 100644
--- a/ext/alsa/gstalsasink.c
+++ b/ext/alsa/gstalsasink.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/alsa/gstalsasink.h b/ext/alsa/gstalsasink.h
index 9fced09..8c4c1b0 100644
--- a/ext/alsa/gstalsasink.h
+++ b/ext/alsa/gstalsasink.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -24,7 +24,7 @@
 #define __GST_ALSASINK_H__
 
 #include <gst/gst.h>
-#include <gst/audio/gstaudiosink.h>
+#include <gst/audio/audio.h>
 #include <alsa/asoundlib.h>
 
 G_BEGIN_DECLS
diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c
index 9e2b4ae..fa4b555 100644
--- a/ext/alsa/gstalsasrc.c
+++ b/ext/alsa/gstalsasrc.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -224,7 +224,6 @@
 gst_alsasrc_change_state (GstElement * element, GstStateChange transition)
 {
   GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
-  GstAudioBaseSrc *src = GST_AUDIO_BASE_SRC (element);
   GstAlsaSrc *alsa = GST_ALSA_SRC (element);
   GstClock *clk;
 
@@ -238,15 +237,20 @@
       break;
 
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
-      clk = src->clock;
       alsa->driver_timestamps = FALSE;
-      if (GST_IS_SYSTEM_CLOCK (clk)) {
-        gint clocktype;
-        g_object_get (clk, "clock-type", &clocktype, NULL);
-        if (clocktype == GST_CLOCK_TYPE_MONOTONIC) {
-          GST_INFO ("Using driver timestamps !");
-          alsa->driver_timestamps = TRUE;
+
+      clk = gst_element_get_clock (element);
+      if (clk != NULL) {
+        if (GST_IS_SYSTEM_CLOCK (clk)) {
+          gint clocktype;
+          g_object_get (clk, "clock-type", &clocktype, NULL);
+          if (clocktype == GST_CLOCK_TYPE_MONOTONIC) {
+            GST_INFO ("Using driver timestamps !");
+            alsa->driver_timestamps = TRUE;
+          }
         }
+
+        gst_object_unref (clk);
       }
       break;
   }
@@ -354,15 +358,41 @@
   if (rrate != alsa->rate)
     goto rate_match;
 
+#ifndef GST_DISABLE_GST_DEBUG
+  /* get and dump some limits */
+  {
+    guint min, max;
+
+    snd_pcm_hw_params_get_buffer_time_min (params, &min, NULL);
+    snd_pcm_hw_params_get_buffer_time_max (params, &max, NULL);
+
+    GST_DEBUG_OBJECT (alsa, "buffer time %u, min %u, max %u",
+        alsa->buffer_time, min, max);
+
+    snd_pcm_hw_params_get_period_time_min (params, &min, NULL);
+    snd_pcm_hw_params_get_period_time_max (params, &max, NULL);
+
+    GST_DEBUG_OBJECT (alsa, "period time %u, min %u, max %u",
+        alsa->period_time, min, max);
+
+    snd_pcm_hw_params_get_periods_min (params, &min, NULL);
+    snd_pcm_hw_params_get_periods_max (params, &max, NULL);
+
+    GST_DEBUG_OBJECT (alsa, "periods min %u, max %u", min, max);
+  }
+#endif
+
   if (alsa->buffer_time != -1) {
     /* set the buffer time */
     CHECK (snd_pcm_hw_params_set_buffer_time_near (alsa->handle, params,
             &alsa->buffer_time, NULL), buffer_time);
+    GST_DEBUG_OBJECT (alsa, "buffer time %u", alsa->buffer_time);
   }
   if (alsa->period_time != -1) {
     /* set the period time */
     CHECK (snd_pcm_hw_params_set_period_time_near (alsa->handle, params,
             &alsa->period_time, NULL), period_time);
+    GST_DEBUG_OBJECT (alsa, "period time %u", alsa->period_time);
   }
 
   /* write the parameters to device */
@@ -737,6 +767,22 @@
   spec->segsize = alsa->period_size * alsa->bpf;
   spec->segtotal = alsa->buffer_size / alsa->period_size;
 
+  {
+    snd_output_t *out_buf = NULL;
+    char *msg = NULL;
+
+    snd_output_buffer_open (&out_buf);
+    snd_pcm_dump_hw_setup (alsa->handle, out_buf);
+    snd_output_buffer_string (out_buf, &msg);
+    GST_DEBUG_OBJECT (alsa, "Hardware setup: \n%s", msg);
+    snd_output_close (out_buf);
+    snd_output_buffer_open (&out_buf);
+    snd_pcm_dump_sw_setup (alsa->handle, out_buf);
+    snd_output_buffer_string (out_buf, &msg);
+    GST_DEBUG_OBJECT (alsa, "Software setup: \n%s", msg);
+    snd_output_close (out_buf);
+  }
+
   return TRUE;
 
   /* ERRORS */
@@ -936,7 +982,8 @@
     GST_ELEMENT_ERROR (asrc, RESOURCE, READ,
         (_("Error recording from audio device. "
                 "The device has been disconnected.")), (NULL));
-    goto read_error;
+    GST_ALSA_SRC_UNLOCK (asrc);
+    return (guint) - 1;
   }
 }
 
diff --git a/ext/alsa/gstalsasrc.h b/ext/alsa/gstalsasrc.h
index f08f680..57e2701 100644
--- a/ext/alsa/gstalsasrc.h
+++ b/ext/alsa/gstalsasrc.h
@@ -15,15 +15,15 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
 #ifndef __GST_ALSASRC_H__
 #define __GST_ALSASRC_H__
 
-#include <gst/audio/gstaudiosrc.h>
+#include <gst/audio/audio.h>
 #include "gstalsa.h"
 
 G_BEGIN_DECLS
diff --git a/ext/cdparanoia/Makefile.in b/ext/cdparanoia/Makefile.in
index a06c864..f69c08a 100644
--- a/ext/cdparanoia/Makefile.in
+++ b/ext/cdparanoia/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/cdparanoia
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -139,10 +165,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstcdparanoia_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) \
 	$(libgstcdparanoia_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstcdparanoia_la_SOURCES)
 DIST_SOURCES = $(libgstcdparanoia_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -521,6 +573,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -547,12 +600,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstcdparanoia.la: $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_DEPENDENCIES) $(EXTRA_libgstcdparanoia_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstcdparanoia_la_LINK) -rpath $(plugindir) $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_LIBADD) $(LIBS)
 
@@ -598,26 +654,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -629,15 +674,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -646,6 +687,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -790,19 +846,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/cdparanoia/gstcdparanoiasrc.c b/ext/cdparanoia/gstcdparanoiasrc.c
index 66a75b2..a2721d2 100644
--- a/ext/cdparanoia/gstcdparanoiasrc.c
+++ b/ext/cdparanoia/gstcdparanoiasrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/cdparanoia/gstcdparanoiasrc.h b/ext/cdparanoia/gstcdparanoiasrc.h
index 8879454..0183e92 100644
--- a/ext/cdparanoia/gstcdparanoiasrc.h
+++ b/ext/cdparanoia/gstcdparanoiasrc.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CD_PARANOIA_SRC_H__
diff --git a/ext/libvisual/Makefile.in b/ext/libvisual/Makefile.in
index 7fb1184..80c2bd1 100644
--- a/ext/libvisual/Makefile.in
+++ b/ext/libvisual/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libvisual
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -140,10 +166,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstlibvisual_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) \
 	$(libgstlibvisual_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -156,20 +195,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstlibvisual_la_SOURCES)
 DIST_SOURCES = $(libgstlibvisual_la_SOURCES)
 am__can_run_installinfo = \
@@ -178,6 +213,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -516,6 +568,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -542,12 +595,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstlibvisual.la: $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_DEPENDENCIES) $(EXTRA_libgstlibvisual_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstlibvisual_la_LINK) -rpath $(plugindir) $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_LIBADD) $(LIBS)
 
@@ -609,26 +665,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -640,15 +685,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -657,6 +698,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -801,19 +857,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/libvisual/gstaudiovisualizer.c b/ext/libvisual/gstaudiovisualizer.c
index 78aefad..65f0502 100644
--- a/ext/libvisual/gstaudiovisualizer.c
+++ b/ext/libvisual/gstaudiovisualizer.c
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstaudiovisualizer
@@ -87,6 +87,12 @@
 static GstStateChangeReturn gst_audio_visualizer_change_state (GstElement *
     element, GstStateChange transition);
 
+static gboolean gst_audio_visualizer_do_bufferpool (GstAudioVisualizer * scope,
+    GstCaps * outcaps);
+
+static gboolean
+default_decide_allocation (GstAudioVisualizer * scope, GstQuery * query);
+
 /* shading functions */
 
 #define GST_TYPE_AUDIO_VISUALIZER_SHADER (gst_audio_visualizer_shader_get_type())
@@ -120,8 +126,8 @@
   if (G_UNLIKELY (shader_type == 0)) {
     /* TODO: rename when exporting it as a library */
     shader_type =
-        g_enum_register_static ("GstAudioVisualizerShader-BaseExtVisual",
-        shaders);
+        g_enum_register_static
+        ("GstAudioVisualizerShader-BaseExtLibvisual", shaders);
   }
   return shader_type;
 }
@@ -484,6 +490,20 @@
 
 /* base class */
 
+#define GST_AUDIO_VISUALIZER_GET_PRIVATE(obj)  \
+    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_VISUALIZER, GstAudioVisualizerPrivate))
+
+struct _GstAudioVisualizerPrivate
+{
+  gboolean negotiated;
+
+  GstBufferPool *pool;
+  gboolean pool_active;
+  GstAllocator *allocator;
+  GstAllocationParams params;
+  GstQuery *query;
+};
+
 GType
 gst_audio_visualizer_get_type (void)
 {
@@ -505,7 +525,7 @@
 
     /* TODO: rename when exporting it as a library */
     _type = g_type_register_static (GST_TYPE_ELEMENT,
-        "GstAudioVisualizer-BaseExtVisual", &audio_visualizer_info,
+        "GstAudioVisualizer-BaseExtLibvisual", &audio_visualizer_info,
         G_TYPE_FLAG_ABSTRACT);
     g_once_init_leave (&audio_visualizer_type, _type);
   }
@@ -518,10 +538,13 @@
   GObjectClass *gobject_class = (GObjectClass *) klass;
   GstElementClass *element_class = (GstElementClass *) klass;
 
+  g_type_class_add_private (klass, sizeof (GstAudioVisualizerPrivate));
+
   parent_class = g_type_class_peek_parent (klass);
 
-  GST_DEBUG_CATEGORY_INIT (audio_visualizer_debug, "audiobasevisualizer",
-      0, "scope audio visualisation base class");
+  GST_DEBUG_CATEGORY_INIT (audio_visualizer_debug,
+      "baseaudiovisualizer-libvisual", 0,
+      "scope audio visualisation base class");
 
   gobject_class->set_property = gst_audio_visualizer_set_property;
   gobject_class->get_property = gst_audio_visualizer_get_property;
@@ -530,6 +553,8 @@
   element_class->change_state =
       GST_DEBUG_FUNCPTR (gst_audio_visualizer_change_state);
 
+  klass->decide_allocation = GST_DEBUG_FUNCPTR (default_decide_allocation);
+
   g_object_class_install_property (gobject_class, PROP_SHADER,
       g_param_spec_enum ("shader", "shader type",
           "Shader function to apply on each frame",
@@ -548,6 +573,8 @@
 {
   GstPadTemplate *pad_template;
 
+  scope->priv = GST_AUDIO_VISUALIZER_GET_PRIVATE (scope);
+
   /* create the sink and src pads */
   pad_template =
       gst_element_class_get_pad_template (GST_ELEMENT_CLASS (g_class), "sink");
@@ -670,7 +697,6 @@
 gst_audio_visualizer_sink_setcaps (GstAudioVisualizer * scope, GstCaps * caps)
 {
   GstAudioInfo info;
-  gboolean res = TRUE;
 
   if (!gst_audio_info_from_caps (&info, caps))
     goto wrong_caps;
@@ -680,15 +706,22 @@
   GST_DEBUG_OBJECT (scope, "audio: channels %d, rate %d",
       GST_AUDIO_INFO_CHANNELS (&info), GST_AUDIO_INFO_RATE (&info));
 
-done:
-  return res;
+  if (!gst_audio_visualizer_src_negotiate (scope)) {
+    goto not_negotiated;
+  }
+
+  return TRUE;
 
   /* Errors */
 wrong_caps:
   {
     GST_WARNING_OBJECT (scope, "could not parse caps");
-    res = FALSE;
-    goto done;
+    return FALSE;
+  }
+not_negotiated:
+  {
+    GST_WARNING_OBJECT (scope, "failed to negotiate");
+    return FALSE;
   }
 }
 
@@ -730,7 +763,10 @@
   GST_DEBUG_OBJECT (scope, "blocks: spf %u, req_spf %u",
       scope->spf, scope->req_spf);
 
-  res = gst_pad_set_caps (scope->srcpad, caps);
+  gst_pad_set_caps (scope->srcpad, caps);
+
+  /* find a pool for the negotiated caps now */
+  res = gst_audio_visualizer_do_bufferpool (scope, caps);
 
   return res;
 
@@ -748,10 +784,7 @@
   GstCaps *othercaps, *target;
   GstStructure *structure;
   GstCaps *templ;
-  GstQuery *query;
-  GstBufferPool *pool;
-  GstStructure *config;
-  guint size, min, max;
+  gboolean ret;
 
   templ = gst_pad_get_pad_template_caps (scope->srcpad);
 
@@ -782,24 +815,155 @@
 
   GST_DEBUG_OBJECT (scope, "final caps are %" GST_PTR_FORMAT, target);
 
-  gst_audio_visualizer_src_setcaps (scope, target);
+  ret = gst_audio_visualizer_src_setcaps (scope, target);
 
-  /* try to get a bufferpool now */
+  return ret;
+
+no_format:
+  {
+    gst_caps_unref (target);
+    return FALSE;
+  }
+}
+
+/* takes ownership of the pool, allocator and query */
+static gboolean
+gst_audio_visualizer_set_allocation (GstAudioVisualizer * scope,
+    GstBufferPool * pool, GstAllocator * allocator,
+    GstAllocationParams * params, GstQuery * query)
+{
+  GstAllocator *oldalloc;
+  GstBufferPool *oldpool;
+  GstQuery *oldquery;
+  GstAudioVisualizerPrivate *priv = scope->priv;
+
+  GST_OBJECT_LOCK (scope);
+  oldpool = priv->pool;
+  priv->pool = pool;
+  priv->pool_active = FALSE;
+
+  oldalloc = priv->allocator;
+  priv->allocator = allocator;
+
+  oldquery = priv->query;
+  priv->query = query;
+
+  if (params)
+    priv->params = *params;
+  else
+    gst_allocation_params_init (&priv->params);
+  GST_OBJECT_UNLOCK (scope);
+
+  if (oldpool) {
+    GST_DEBUG_OBJECT (scope, "deactivating old pool %p", oldpool);
+    gst_buffer_pool_set_active (oldpool, FALSE);
+    gst_object_unref (oldpool);
+  }
+  if (oldalloc) {
+    gst_object_unref (oldalloc);
+  }
+  if (oldquery) {
+    gst_query_unref (oldquery);
+  }
+  return TRUE;
+}
+
+static gboolean
+gst_audio_visualizer_do_bufferpool (GstAudioVisualizer * scope,
+    GstCaps * outcaps)
+{
+  GstQuery *query;
+  gboolean result = TRUE;
+  GstBufferPool *pool = NULL;
+  GstAudioVisualizerClass *klass;
+  GstAllocator *allocator;
+  GstAllocationParams params;
+
+  /* not passthrough, we need to allocate */
   /* find a pool for the negotiated caps now */
-  query = gst_query_new_allocation (target, TRUE);
+  GST_DEBUG_OBJECT (scope, "doing allocation query");
+  query = gst_query_new_allocation (outcaps, TRUE);
 
   if (!gst_pad_peer_query (scope->srcpad, query)) {
     /* not a problem, we use the query defaults */
     GST_DEBUG_OBJECT (scope, "allocation query failed");
   }
 
+  klass = GST_AUDIO_VISUALIZER_GET_CLASS (scope);
+
+  GST_DEBUG_OBJECT (scope, "calling decide_allocation");
+  g_assert (klass->decide_allocation != NULL);
+  result = klass->decide_allocation (scope, query);
+
+  GST_DEBUG_OBJECT (scope, "ALLOCATION (%d) params: %" GST_PTR_FORMAT, result,
+      query);
+
+  if (!result)
+    goto no_decide_allocation;
+
+  /* we got configuration from our peer or the decide_allocation method,
+   * parse them */
+  if (gst_query_get_n_allocation_params (query) > 0) {
+    gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+  } else {
+    allocator = NULL;
+    gst_allocation_params_init (&params);
+  }
+
+  if (gst_query_get_n_allocation_pools (query) > 0)
+    gst_query_parse_nth_allocation_pool (query, 0, &pool, NULL, NULL, NULL);
+
+  /* now store */
+  result =
+      gst_audio_visualizer_set_allocation (scope, pool, allocator, &params,
+      query);
+
+  return result;
+
+  /* Errors */
+no_decide_allocation:
+  {
+    GST_WARNING_OBJECT (scope, "Subclass failed to decide allocation");
+    gst_query_unref (query);
+
+    return result;
+  }
+}
+
+static gboolean
+default_decide_allocation (GstAudioVisualizer * scope, GstQuery * query)
+{
+  GstCaps *outcaps;
+  GstBufferPool *pool;
+  guint size, min, max;
+  GstAllocator *allocator;
+  GstAllocationParams params;
+  GstStructure *config;
+  gboolean update_allocator;
+  gboolean update_pool;
+
+  gst_query_parse_allocation (query, &outcaps, NULL);
+
+  /* we got configuration from our peer or the decide_allocation method,
+   * parse them */
+  if (gst_query_get_n_allocation_params (query) > 0) {
+    /* try the allocator */
+    gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+    update_allocator = TRUE;
+  } else {
+    allocator = NULL;
+    gst_allocation_params_init (&params);
+    update_allocator = FALSE;
+  }
+
   if (gst_query_get_n_allocation_pools (query) > 0) {
-    /* we got configuration from our peer, parse them */
     gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+    update_pool = TRUE;
   } else {
     pool = NULL;
-    size = 0;
+    size = GST_VIDEO_INFO_SIZE (&scope->vinfo);
     min = max = 0;
+    update_pool = FALSE;
   }
 
   if (pool == NULL) {
@@ -808,45 +972,57 @@
   }
 
   config = gst_buffer_pool_get_config (pool);
+  gst_buffer_pool_config_set_params (config, outcaps, size, min, max);
+  gst_buffer_pool_config_set_allocator (config, allocator, &params);
   gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META);
-  gst_buffer_pool_config_set_params (config, target, size, min, max);
   gst_buffer_pool_set_config (pool, config);
 
-  if (scope->pool) {
-    gst_buffer_pool_set_active (scope->pool, FALSE);
-    gst_object_unref (scope->pool);
-  }
-  scope->pool = pool;
+  if (update_allocator)
+    gst_query_set_nth_allocation_param (query, 0, allocator, &params);
+  else
+    gst_query_add_allocation_param (query, allocator, &params);
 
-  /* and activate */
-  gst_buffer_pool_set_active (pool, TRUE);
+  if (allocator)
+    gst_object_unref (allocator);
 
-  gst_caps_unref (target);
+  if (update_pool)
+    gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
+  else
+    gst_query_add_allocation_pool (query, pool, size, min, max);
+
+  if (pool)
+    gst_object_unref (pool);
 
   return TRUE;
-
-no_format:
-  {
-    GST_ERROR_OBJECT (scope, "no format");
-    gst_caps_unref (target);
-    return FALSE;
-  }
 }
 
-/* make sure we are negotiated */
 static GstFlowReturn
-gst_audio_visualizer_ensure_negotiated (GstAudioVisualizer * scope)
+default_prepare_output_buffer (GstAudioVisualizer * scope, GstBuffer ** outbuf)
 {
-  gboolean reconfigure;
+  GstAudioVisualizerPrivate *priv;
 
-  reconfigure = gst_pad_check_reconfigure (scope->srcpad);
+  priv = scope->priv;
 
-  /* we don't know an output format yet, pick one */
-  if (reconfigure || !gst_pad_has_current_caps (scope->srcpad)) {
-    if (!gst_audio_visualizer_src_negotiate (scope))
-      return GST_FLOW_NOT_NEGOTIATED;
+  g_assert (priv->pool != NULL);
+
+  /* we can't reuse the input buffer */
+  if (!priv->pool_active) {
+    GST_DEBUG_OBJECT (scope, "setting pool %p active", priv->pool);
+    if (!gst_buffer_pool_set_active (priv->pool, TRUE))
+      goto activate_failed;
+    priv->pool_active = TRUE;
   }
-  return GST_FLOW_OK;
+  GST_DEBUG_OBJECT (scope, "using pool alloc");
+
+  return gst_buffer_pool_acquire_buffer (priv->pool, outbuf, NULL);
+
+  /* ERRORS */
+activate_failed:
+  {
+    GST_ELEMENT_ERROR (scope, RESOURCE, SETTINGS,
+        ("failed to activate bufferpool"), ("failed to activate bufferpool"));
+    return GST_FLOW_ERROR;
+  }
 }
 
 static GstFlowReturn
@@ -873,17 +1049,18 @@
   }
 
   /* Make sure have an output format */
-  ret = gst_audio_visualizer_ensure_negotiated (scope);
-  if (ret != GST_FLOW_OK) {
-    gst_buffer_unref (buffer);
-    goto beach;
+  if (gst_pad_check_reconfigure (scope->srcpad)) {
+    if (!gst_audio_visualizer_src_negotiate (scope)) {
+      gst_pad_mark_reconfigure (scope->srcpad);
+      goto not_negotiated;
+    }
   }
+
   channels = GST_AUDIO_INFO_CHANNELS (&scope->ainfo);
   rate = GST_AUDIO_INFO_RATE (&scope->ainfo);
   bps = GST_AUDIO_INFO_BPS (&scope->ainfo);
 
   if (bps == 0) {
-    GST_ERROR_OBJECT (scope, "no BPS set");
     ret = GST_FLOW_NOT_NEGOTIATED;
     goto beach;
   }
@@ -907,7 +1084,7 @@
     GstVideoFrame outframe;
 
     /* get timestamp of the current adapter content */
-    ts = gst_adapter_prev_timestamp (scope->adapter, &dist);
+    ts = gst_adapter_prev_pts (scope->adapter, &dist);
     if (GST_CLOCK_TIME_IS_VALID (ts)) {
       /* convert bytes to time */
       dist /= bps;
@@ -936,7 +1113,7 @@
     }
 
     g_mutex_unlock (&scope->config_lock);
-    ret = gst_buffer_pool_acquire_buffer (scope->pool, &outbuf, NULL);
+    ret = default_prepare_output_buffer (scope, &outbuf);
     g_mutex_lock (&scope->config_lock);
     /* recheck as the value could have changed */
     sbpf = scope->req_spf * channels * sizeof (gint16);
@@ -946,7 +1123,8 @@
       break;
 
     /* sync controlled properties */
-    gst_object_sync_values (GST_OBJECT (scope), ts);
+    if (GST_CLOCK_TIME_IS_VALID (ts))
+      gst_object_sync_values (GST_OBJECT (scope), ts);
 
     GST_BUFFER_TIMESTAMP (outbuf) = ts;
     GST_BUFFER_DURATION (outbuf) = scope->frame_duration;
@@ -975,7 +1153,6 @@
     /* call class->render() vmethod */
     if (klass->render) {
       if (!klass->render (scope, inbuf, &outframe)) {
-        GST_ERROR_OBJECT (scope, "render failed");
         ret = GST_FLOW_ERROR;
       } else {
         /* run various post processing (shading and geometric transformation) */
@@ -1017,6 +1194,13 @@
 
 beach:
   return ret;
+
+  /* ERRORS */
+not_negotiated:
+  {
+    GST_DEBUG_OBJECT (scope, "Failed to renegotiate");
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
 }
 
 static gboolean
@@ -1201,10 +1385,7 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
-      if (scope->pool) {
-        gst_buffer_pool_set_active (scope->pool, FALSE);
-        gst_object_replace ((GstObject **) & scope->pool, NULL);
-      }
+      gst_audio_visualizer_set_allocation (scope, NULL, NULL, NULL, NULL);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
       break;
diff --git a/ext/libvisual/gstaudiovisualizer.h b/ext/libvisual/gstaudiovisualizer.h
index e850007..7f8f8d8 100644
--- a/ext/libvisual/gstaudiovisualizer.h
+++ b/ext/libvisual/gstaudiovisualizer.h
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_VISUALIZER_H__
@@ -32,10 +32,12 @@
 #define GST_TYPE_AUDIO_VISUALIZER            (gst_audio_visualizer_get_type())
 #define GST_AUDIO_VISUALIZER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizer))
 #define GST_AUDIO_VISUALIZER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
+#define GST_AUDIO_VISUALIZER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
 #define GST_IS_SYNAESTHESIA(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_VISUALIZER))
 #define GST_IS_SYNAESTHESIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_VISUALIZER))
 typedef struct _GstAudioVisualizer GstAudioVisualizer;
 typedef struct _GstAudioVisualizerClass GstAudioVisualizerClass;
+typedef struct _GstAudioVisualizerPrivate GstAudioVisualizerPrivate;
 
 typedef void (*GstAudioVisualizerShaderFunc)(GstAudioVisualizer *scope, const GstVideoFrame *s, GstVideoFrame *d);
 
@@ -74,7 +76,6 @@
   /* pads */
   GstPad *srcpad, *sinkpad;
 
-  GstBufferPool *pool;
   GstAdapter *adapter;
   GstBuffer *inbuf;
   GstBuffer *tempbuf;
@@ -102,6 +103,9 @@
   GstClockTime earliest_time;
 
   GstSegment segment;
+
+  /* <private> */
+  GstAudioVisualizerPrivate *priv;
 };
 
 struct _GstAudioVisualizerClass
@@ -113,6 +117,8 @@
 
   /* virtual function for rendering a frame */
   gboolean (*render) (GstAudioVisualizer * scope, GstBuffer * audio, GstVideoFrame * video);
+
+  gboolean (*decide_allocation)   (GstAudioVisualizer * scope, GstQuery *query);
 };
 
 GType gst_audio_visualizer_get_type (void);
diff --git a/ext/libvisual/plugin.c b/ext/libvisual/plugin.c
index c2975d1..7c2aad5 100644
--- a/ext/libvisual/plugin.c
+++ b/ext/libvisual/plugin.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/libvisual/visual.c b/ext/libvisual/visual.c
index c928b8d..3d660ca 100644
--- a/ext/libvisual/visual.c
+++ b/ext/libvisual/visual.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/libvisual/visual.h b/ext/libvisual/visual.h
index 97f7354..5d8b51c 100644
--- a/ext/libvisual/visual.h
+++ b/ext/libvisual/visual.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VISUAL_H__
diff --git a/ext/ogg/Makefile.am b/ext/ogg/Makefile.am
index 2fa9a30..9fd326c 100644
--- a/ext/ogg/Makefile.am
+++ b/ext/ogg/Makefile.am
@@ -19,10 +19,17 @@
 	dirac_parse.h \
 	vorbis_parse.h
 
-libgstogg_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(OGG_CFLAGS)
+libgstogg_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(OGG_CFLAGS) \
+	-Dschro_video_format_set_std_video_format=ogg_schro_video_format_set_std_video_format \
+	-Dschro_video_format_set_std_frame_rate=ogg_schro_video_format_set_std_frame_rate \
+	-Dschro_video_format_set_std_aspect_ratio=ogg_schro_video_format_set_std_aspect_ratio \
+	-Dschro_video_format_set_std_signal_range=ogg_schro_video_format_set_std_signal_range \
+	-Dschro_video_format_set_std_colour_spec=ogg_schro_video_format_set_std_colour_spec
+
 libgstogg_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/riff/libgstriff-$(GST_API_VERSION).la \
 	$(top_builddir)/gst-libs/gst/tag/libgsttag-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(OGG_LIBS)
diff --git a/ext/ogg/Makefile.in b/ext/ogg/Makefile.in
index 671556f..cb2fadb 100644
--- a/ext/ogg/Makefile.in
+++ b/ext/ogg/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/ogg
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -132,6 +158,7 @@
 am__DEPENDENCIES_1 =
 libgstogg_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/riff/libgstriff-$(GST_API_VERSION).la \
 	$(top_builddir)/gst-libs/gst/tag/libgsttag-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 am_libgstogg_la_OBJECTS = libgstogg_la-gstogg.lo \
@@ -143,10 +170,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstogg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstogg_la_CFLAGS) $(CFLAGS) \
 	$(libgstogg_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -159,20 +199,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstogg_la_SOURCES)
 DIST_SOURCES = $(libgstogg_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,6 +217,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -494,10 +547,17 @@
 	dirac_parse.h \
 	vorbis_parse.h
 
-libgstogg_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(OGG_CFLAGS)
+libgstogg_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(OGG_CFLAGS) \
+	-Dschro_video_format_set_std_video_format=ogg_schro_video_format_set_std_video_format \
+	-Dschro_video_format_set_std_frame_rate=ogg_schro_video_format_set_std_frame_rate \
+	-Dschro_video_format_set_std_aspect_ratio=ogg_schro_video_format_set_std_aspect_ratio \
+	-Dschro_video_format_set_std_signal_range=ogg_schro_video_format_set_std_signal_range \
+	-Dschro_video_format_set_std_colour_spec=ogg_schro_video_format_set_std_colour_spec
+
 libgstogg_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/riff/libgstriff-$(GST_API_VERSION).la \
 	$(top_builddir)/gst-libs/gst/tag/libgsttag-$(GST_API_VERSION).la \
+	$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-$(GST_API_VERSION).la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(OGG_LIBS)
@@ -538,6 +598,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -564,12 +625,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstogg.la: $(libgstogg_la_OBJECTS) $(libgstogg_la_DEPENDENCIES) $(EXTRA_libgstogg_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstogg_la_LINK) -rpath $(plugindir) $(libgstogg_la_OBJECTS) $(libgstogg_la_LIBADD) $(LIBS)
 
@@ -679,26 +743,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -710,15 +763,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -727,6 +776,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -871,19 +935,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/ext/ogg/dirac_parse.c b/ext/ogg/dirac_parse.c
index 3a3193d..0c5c66c 100644
--- a/ext/ogg/dirac_parse.c
+++ b/ext/ogg/dirac_parse.c
@@ -21,22 +21,22 @@
 static unsigned int schro_unpack_decode_uint (Unpack * unpack);
 
 
-void schro_video_format_set_std_video_format (DiracSequenceHeader * format,
+static void schro_video_format_set_std_video_format (DiracSequenceHeader *
+    format, int index);
+static void schro_video_format_set_std_frame_rate (DiracSequenceHeader * format,
     int index);
-void schro_video_format_set_std_frame_rate (DiracSequenceHeader * format,
-    int index);
-void schro_video_format_set_std_aspect_ratio (DiracSequenceHeader * format,
-    int index);
-void schro_video_format_set_std_signal_range (DiracSequenceHeader * format,
-    int index);
-void schro_video_format_set_std_colour_spec (DiracSequenceHeader * format,
-    int index);
+static void schro_video_format_set_std_aspect_ratio (DiracSequenceHeader *
+    format, int index);
+static void schro_video_format_set_std_signal_range (DiracSequenceHeader *
+    format, int index);
+static void schro_video_format_set_std_colour_spec (DiracSequenceHeader *
+    format, int index);
 
 
 
 
 int
-dirac_sequence_header_parse (DiracSequenceHeader * header,
+gst_dirac_sequence_header_parse (DiracSequenceHeader * header,
     unsigned char *data, int n_bytes)
 {
   int bit;
@@ -165,7 +165,7 @@
 
 /* standard stuff */
 
-static DiracSequenceHeader schro_video_formats[] = {
+static const DiracSequenceHeader schro_video_formats[] = {
   {0, 0, 0, 0,
         0,                      /* custom */
         640, 480, SCHRO_CHROMA_420,
@@ -304,7 +304,7 @@
       3, 0, 0},
 };
 
-void
+static void
 schro_video_format_set_std_video_format (DiracSequenceHeader * format,
     int index)
 {
@@ -323,7 +323,7 @@
   int denominator;
 };
 
-static SchroFrameRate schro_frame_rates[] = {
+static const SchroFrameRate schro_frame_rates[] = {
   {0, 0},
   {24000, 1001},
   {24, 1},
@@ -337,7 +337,7 @@
   {25, 2}
 };
 
-void
+static void
 schro_video_format_set_std_frame_rate (DiracSequenceHeader * format, int index)
 {
   if (index < 1 || index >= ARRAY_SIZE (schro_frame_rates)) {
@@ -365,7 +365,7 @@
   {4, 3}
 };
 
-void
+static void
 schro_video_format_set_std_aspect_ratio (DiracSequenceHeader * format,
     int index)
 {
@@ -395,7 +395,7 @@
   {256, 3504, 2048, 3584}
 };
 
-void
+static void
 schro_video_format_set_std_signal_range (DiracSequenceHeader * format, int i)
 {
   if (i < 1 || i >= ARRAY_SIZE (schro_signal_ranges)) {
@@ -439,7 +439,7 @@
       SCHRO_TRANSFER_CHAR_TV_GAMMA}
 };
 
-void
+static void
 schro_video_format_set_std_colour_spec (DiracSequenceHeader * format, int i)
 {
   if (i < 0 || i >= ARRAY_SIZE (schro_colour_specs)) {
diff --git a/ext/ogg/dirac_parse.h b/ext/ogg/dirac_parse.h
index 9dc4ffe..0ee14fc 100644
--- a/ext/ogg/dirac_parse.h
+++ b/ext/ogg/dirac_parse.h
@@ -2,6 +2,8 @@
 #ifndef __DIRAC_PARSE_H__
 #define __DIRAC_PARSE_H__
 
+#include <glib.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -166,8 +168,8 @@
   int unused2;
 };  
 
-
-int dirac_sequence_header_parse (DiracSequenceHeader *header,
+G_GNUC_INTERNAL
+int gst_dirac_sequence_header_parse (DiracSequenceHeader *header,
     unsigned char *data, int length);
 
 #ifdef __cplusplus
diff --git a/ext/ogg/gstogg.c b/ext/ogg/gstogg.c
index 8f9c5c0..ec73943 100644
--- a/ext/ogg/gstogg.c
+++ b/ext/ogg/gstogg.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/ogg/gstogg.h b/ext/ogg/gstogg.h
index 6f1393c..9aaac7a 100644
--- a/ext/ogg/gstogg.h
+++ b/ext/ogg/gstogg.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OGG_H__
diff --git a/ext/ogg/gstoggaviparse.c b/ext/ogg/gstoggaviparse.c
index c5dc8ae..c96a2df 100644
--- a/ext/ogg/gstoggaviparse.c
+++ b/ext/ogg/gstoggaviparse.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index 8370830..e86809c 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -147,7 +147,7 @@
     GstOggPad * pad, GstFlowReturn ret);
 static void gst_ogg_demux_sync_streams (GstOggDemux * ogg);
 
-GstCaps *gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg,
+static GstCaps *gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg,
     GstCaps * caps, GList * headers);
 static gboolean gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event);
 static gboolean gst_ogg_demux_perform_seek_push (GstOggDemux * ogg,
@@ -416,6 +416,10 @@
       res = gst_ogg_demux_perform_seek (ogg, event);
       gst_event_unref (event);
       break;
+    case GST_EVENT_RECONFIGURE:
+      GST_OGG_PAD (pad)->last_ret = GST_FLOW_OK;
+      res = gst_pad_event_default (pad, parent, event);
+      break;
     default:
       res = gst_pad_event_default (pad, parent, event);
       break;
@@ -538,9 +542,11 @@
     }
     offset = 0;
     trim = 0;
+    delta_unit = !gst_ogg_stream_packet_is_key_frame (&pad->map, packet);
   } else {
     offset = 0;
     trim = 0;
+    delta_unit = !gst_ogg_stream_packet_is_key_frame (&pad->map, packet);
   }
 
   /* get timing info for the packet */
@@ -576,7 +582,7 @@
           pad->current_granule);
     } else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
       pad->current_granule += duration;
-      if (gst_ogg_stream_packet_is_key_frame (&pad->map, packet)) {
+      if (!delta_unit) {
         pad->keyframe_granule = pad->current_granule;
       }
       GST_DEBUG_OBJECT (ogg, "interpolating granule %" G_GUINT64_FORMAT,
@@ -665,7 +671,13 @@
 
   /* don't push the header packets when we are asked to skip them */
   if (!packet->b_o_s || push_headers) {
-    ret = gst_pad_push (GST_PAD_CAST (pad), buf);
+    if (pad->last_ret == GST_FLOW_OK) {
+      ret = gst_pad_push (GST_PAD_CAST (pad), buf);
+    } else {
+      GST_DEBUG_OBJECT (ogg, "not pushing buffer on error pad");
+      ret = pad->last_ret;
+      gst_buffer_unref (buf);
+    }
     buf = NULL;
 
     /* combine flows */
@@ -877,7 +889,7 @@
 
   granule = gst_ogg_stream_granulepos_to_granule (&pad->map,
       packet->granulepos);
-  if (granule != -1) {
+  if (granule >= 0) {
     GST_DEBUG_OBJECT (ogg, "%p has granulepos %" G_GINT64_FORMAT, pad, granule);
     pad->current_granule = granule;
   } else if (granule != -1) {
@@ -2498,7 +2510,7 @@
   return TRUE;
 }
 
-GstCaps *
+static GstCaps *
 gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg, GstCaps * caps,
     GList * headers)
 {
@@ -2533,8 +2545,7 @@
     headers = headers->next;
   }
 
-  gst_structure_set_value (structure, "streamheader", &array);
-  g_value_unset (&array);
+  gst_structure_take_value (structure, "streamheader", &array);
   GST_LOG_OBJECT (ogg, "here are the newly set caps: %" GST_PTR_FORMAT, caps);
 
   return caps;
diff --git a/ext/ogg/gstoggdemux.h b/ext/ogg/gstoggdemux.h
index 6553bc6..307128f 100644
--- a/ext/ogg/gstoggdemux.h
+++ b/ext/ogg/gstoggdemux.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OGG_DEMUX_H__
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c
index 51b8cc1..f1952e9 100644
--- a/ext/ogg/gstoggmux.c
+++ b/ext/ogg/gstoggmux.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -106,7 +106,7 @@
     GST_PAD_REQUEST,
     GST_STATIC_CAPS ("video/x-theora; "
         "application/x-ogm-video; video/x-dirac; "
-        "video/x-smoke; video/x-vp8; ")
+        "video/x-smoke; video/x-vp8; video/x-daala")
     );
 
 static GstStaticPadTemplate audio_sink_factory =
@@ -573,6 +573,9 @@
       mux->last_ts = run_time;
   }
 
+  GST_LOG_OBJECT (mux->srcpad, "pushing %p, last_ts=%" GST_TIME_FORMAT,
+      buffer, GST_TIME_ARGS (mux->last_ts));
+
   return gst_pad_push (mux->srcpad, buffer);
 }
 
@@ -877,6 +880,11 @@
       gst_ogg_stream_granule_to_granulepos (&pad->map, granule,
       pad->keyframe_granule);
 
+  GST_LOG_OBJECT (pad->collect.pad,
+      GST_GP_FORMAT " decorated buffer %p (granulepos time %" GST_TIME_FORMAT
+      ")", GST_BUFFER_OFFSET_END (buf), buf,
+      GST_TIME_ARGS (GST_BUFFER_OFFSET (buf)));
+
   return buf;
 
   /* ERRORS */
@@ -958,6 +966,9 @@
              * at least) do not send headers packets, as other muxers don't
              * expect/need them. */
             caps = gst_pad_get_current_caps (GST_PAD_CAST (data->pad));
+            GST_DEBUG_OBJECT (data->pad, "checking caps: %" GST_PTR_FORMAT,
+                caps);
+
             pad->have_type =
                 gst_ogg_stream_setup_map_from_caps_headers (&pad->map, caps);
 
@@ -966,21 +977,22 @@
               pad->have_type = gst_ogg_stream_setup_map (&pad->map, &packet);
             }
             if (!pad->have_type) {
-              GST_ERROR_OBJECT (pad, "mapper didn't recognise input stream "
-                  "(pad caps: %" GST_PTR_FORMAT ")", caps);
+              GST_ERROR_OBJECT (data->pad,
+                  "mapper didn't recognise input stream " "(pad caps: %"
+                  GST_PTR_FORMAT ")", caps);
             } else {
-              GST_DEBUG_OBJECT (pad, "caps detected: %" GST_PTR_FORMAT,
+              GST_DEBUG_OBJECT (data->pad, "caps detected: %" GST_PTR_FORMAT,
                   pad->map.caps);
 
               if (pad->map.is_sparse) {
-                GST_DEBUG_OBJECT (pad, "Pad is sparse, marking as such");
+                GST_DEBUG_OBJECT (data->pad, "Pad is sparse, marking as such");
                 gst_collect_pads_set_waiting (ogg_mux->collect,
                     (GstCollectData *) pad, FALSE);
               }
 
               if (pad->map.is_video && ogg_mux->delta_pad == NULL) {
                 ogg_mux->delta_pad = pad;
-                GST_INFO_OBJECT (pad, "selected delta pad");
+                GST_INFO_OBJECT (data->pad, "selected delta pad");
               }
             }
             if (caps)
@@ -1031,8 +1043,8 @@
     }
 
     /* we should have a buffer now, see if it is the best pad to
-     * pull on */
-    if (pad->buffer) {
+     * pull on. Our best pad can't be eos */
+    if (pad->buffer && !pad->eos) {
       if (gst_ogg_mux_compare_pads (ogg_mux, bestpad, pad) > 0) {
         GST_LOG_OBJECT (data->pad,
             "new best pad, with buffer %" GST_PTR_FORMAT, pad->buffer);
@@ -1051,6 +1063,7 @@
   GList *res = NULL;
   GstStructure *structure;
   GstCaps *caps;
+  const GValue *streamheader;
   GstPad *thepad;
 
   thepad = pad->collect.pad;
@@ -1058,46 +1071,46 @@
   GST_LOG_OBJECT (thepad, "getting headers");
 
   caps = gst_pad_get_current_caps (thepad);
-  if (caps != NULL) {
-    const GValue *streamheader;
-
-    structure = gst_caps_get_structure (caps, 0);
-    streamheader = gst_structure_get_value (structure, "streamheader");
-    if (streamheader != NULL) {
-      GST_LOG_OBJECT (thepad, "got header");
-      if (G_VALUE_TYPE (streamheader) == GST_TYPE_ARRAY) {
-        GArray *bufarr = g_value_peek_pointer (streamheader);
-        gint i;
-
-        GST_LOG_OBJECT (thepad, "got fixed list");
-
-        for (i = 0; i < bufarr->len; i++) {
-          GValue *bufval = &g_array_index (bufarr, GValue, i);
-
-          GST_LOG_OBJECT (thepad, "item %d", i);
-          if (G_VALUE_TYPE (bufval) == GST_TYPE_BUFFER) {
-            GstBuffer *buf = g_value_peek_pointer (bufval);
-
-            GST_LOG_OBJECT (thepad, "adding item %d to header list", i);
-
-            gst_buffer_ref (buf);
-            res = g_list_append (res, buf);
-          }
-        }
-      } else {
-        GST_LOG_OBJECT (thepad, "streamheader is not fixed list");
-      }
-
-    } else if (gst_structure_has_name (structure, "video/x-dirac")) {
-      res = g_list_append (res, pad->buffer);
-      pad->buffer = NULL;
-    } else {
-      GST_LOG_OBJECT (thepad, "caps don't have streamheader");
-    }
-    gst_caps_unref (caps);
-  } else {
-    GST_LOG_OBJECT (thepad, "got empty caps as negotiated format");
+  if (caps == NULL) {
+    GST_INFO_OBJECT (thepad, "got empty caps as negotiated format");
+    return NULL;
   }
+
+  structure = gst_caps_get_structure (caps, 0);
+  streamheader = gst_structure_get_value (structure, "streamheader");
+  if (streamheader != NULL) {
+    GST_LOG_OBJECT (thepad, "got header");
+    if (G_VALUE_TYPE (streamheader) == GST_TYPE_ARRAY) {
+      GArray *bufarr = g_value_peek_pointer (streamheader);
+      gint i;
+
+      GST_LOG_OBJECT (thepad, "got fixed list");
+
+      for (i = 0; i < bufarr->len; i++) {
+        GValue *bufval = &g_array_index (bufarr, GValue, i);
+
+        GST_LOG_OBJECT (thepad, "item %d", i);
+        if (G_VALUE_TYPE (bufval) == GST_TYPE_BUFFER) {
+          GstBuffer *buf = g_value_peek_pointer (bufval);
+
+          GST_LOG_OBJECT (thepad, "adding item %d to header list", i);
+
+          gst_buffer_ref (buf);
+          res = g_list_append (res, buf);
+        }
+      }
+    } else {
+      GST_LOG_OBJECT (thepad, "streamheader is not fixed list");
+    }
+
+  } else if (gst_structure_has_name (structure, "video/x-dirac")) {
+    res = g_list_append (res, pad->buffer);
+    pad->buffer = NULL;
+  } else {
+    GST_LOG_OBJECT (thepad, "caps don't have streamheader");
+  }
+  gst_caps_unref (caps);
+
   return res;
 }
 
@@ -1117,7 +1130,6 @@
 
   while (walk) {
     GstBuffer *buf = GST_BUFFER (walk->data);
-    GstBuffer *copy;
     GValue value = { 0 };
 
     walk = walk->next;
@@ -1128,14 +1140,11 @@
     GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
 
     g_value_init (&value, GST_TYPE_BUFFER);
-    copy = gst_buffer_copy (buf);
-    gst_value_set_buffer (&value, copy);
-    gst_buffer_unref (copy);
+    gst_value_set_buffer (&value, buf);
     gst_value_array_append_value (&array, &value);
     g_value_unset (&value);
   }
-  gst_structure_set_value (structure, "streamheader", &array);
-  g_value_unset (&array);
+  gst_structure_take_value (structure, "streamheader", &array);
 
   return caps;
 }
@@ -1362,16 +1371,13 @@
     GstBuffer *buf;
     ogg_packet packet;
     GstPad *thepad;
-    GstCaps *caps;
-    GstStructure *structure;
     GstBuffer *hbuf;
     GstMapInfo map;
+    GstCaps *caps;
+    const gchar *mime_type = "";
 
     pad = (GstOggPadData *) walk->data;
     thepad = pad->collect.pad;
-    caps = gst_pad_get_current_caps (thepad);
-    structure = gst_caps_get_structure (caps, 0);
-
     walk = walk->next;
 
     pad->packetno = 0;
@@ -1393,6 +1399,13 @@
       continue;
     }
 
+    if ((caps = gst_pad_get_current_caps (thepad))) {
+      GstStructure *structure = gst_caps_get_structure (caps, 0);
+      mime_type = gst_structure_get_name (structure);
+    } else {
+      GST_INFO_OBJECT (thepad, "got empty caps as negotiated format");
+    }
+
     /* create a packet from the buffer */
     gst_buffer_map (buf, &map, GST_MAP_READ);
     packet.packet = map.data;
@@ -1412,8 +1425,7 @@
 
     hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
 
-    GST_LOG_OBJECT (mux, "swapped out page with mime type %s",
-        gst_structure_get_name (structure));
+    GST_LOG_OBJECT (mux, "swapped out page with mime type '%s'", mime_type);
 
     /* quick hack: put video pages at the front.
      * Ideally, we would have a settable enum for which Ogg
@@ -1422,14 +1434,15 @@
      * one's BOS into the first page, followed by an audio stream's BOS, and
      * only then followed by the remaining video and audio streams?) */
     if (pad->map.is_video) {
-      GST_DEBUG_OBJECT (thepad, "putting %s page at the front",
-          gst_structure_get_name (structure));
+      GST_DEBUG_OBJECT (thepad, "putting %s page at the front", mime_type);
       hbufs = g_list_prepend (hbufs, hbuf);
     } else {
       hbufs = g_list_append (hbufs, hbuf);
     }
 
-    gst_caps_unref (caps);
+    if (caps) {
+      gst_caps_unref (caps);
+    }
   }
 
   /* The Skeleton BOS goes first - even before the video that went first before */
@@ -1530,12 +1543,21 @@
   if (caps) {
     if (!gst_caps_is_fixed (caps))
       caps = gst_caps_fixate (caps);
-    if (caps) {
-      caps = gst_ogg_mux_set_header_on_caps (caps, hbufs);
-      gst_pad_set_caps (mux->srcpad, caps);
-      gst_caps_unref (caps);
-    }
   }
+  if (!caps)
+    caps = gst_caps_new_empty_simple ("application/ogg");
+
+  caps = gst_ogg_mux_set_header_on_caps (caps, hbufs);
+  gst_pad_set_caps (mux->srcpad, caps);
+  gst_caps_unref (caps);
+
+  /* Send segment event */
+  {
+    GstSegment segment;
+    gst_segment_init (&segment, GST_FORMAT_TIME);
+    gst_pad_push_event (mux->srcpad, gst_event_new_segment (&segment));
+  }
+
   /* and send the buffers */
   while (hbufs != NULL) {
     GstBuffer *buf = GST_BUFFER (hbufs->data);
@@ -1655,6 +1677,7 @@
       GST_LOG_OBJECT (ogg_mux->pulling->collect.pad, "updated times, next ts %"
           GST_TIME_FORMAT, GST_TIME_ARGS (ogg_mux->next_ts));
     } else {
+      GST_LOG_OBJECT (ogg_mux->srcpad, "sending EOS");
       /* no pad to pull on, send EOS */
       gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ());
       return GST_FLOW_FLUSHING;
@@ -1917,17 +1940,12 @@
 static void
 gst_ogg_mux_send_start_events (GstOggMux * ogg_mux, GstCollectPads * pads)
 {
-  GstSegment segment;
   gchar s_id[32];
 
   /* stream-start (FIXME: create id based on input ids) */
   g_snprintf (s_id, sizeof (s_id), "oggmux-%08x", g_random_int ());
   gst_pad_push_event (ogg_mux->srcpad, gst_event_new_stream_start (s_id));
 
-  /* segment */
-  gst_segment_init (&segment, GST_FORMAT_BYTES);
-  gst_pad_push_event (ogg_mux->srcpad, gst_event_new_segment (&segment));
-
   /* we'll send caps later, need to collect all headers first */
 }
 
@@ -1969,6 +1987,7 @@
   ret = gst_ogg_mux_process_best_pad (ogg_mux, best);
 
   if (best->eos && all_pads_eos (pads)) {
+    GST_LOG_OBJECT (ogg_mux->srcpad, "sending EOS");
     gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ());
     return GST_FLOW_EOS;
   }
@@ -2071,6 +2090,7 @@
     ogg_stream_clear (&oggpad->map.stream);
 
     while ((buf = g_queue_pop_head (oggpad->pagebuffers)) != NULL) {
+      GST_LOG ("flushing buffer : %p", buf);
       gst_buffer_unref (buf);
     }
     g_queue_free (oggpad->pagebuffers);
diff --git a/ext/ogg/gstoggmux.h b/ext/ogg/gstoggmux.h
index cad7076..dc1a445 100644
--- a/ext/ogg/gstoggmux.h
+++ b/ext/ogg/gstoggmux.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OGG_MUX_H__
diff --git a/ext/ogg/gstoggparse.c b/ext/ogg/gstoggparse.c
index 3c1926e..76f53ab 100644
--- a/ext/ogg/gstoggparse.c
+++ b/ext/ogg/gstoggparse.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* This ogg parser is essentially a subset of the ogg demuxer - rather than
@@ -585,12 +585,10 @@
             caps = gst_caps_make_writable (caps);
 
             structure = gst_caps_get_structure (caps, 0);
-            gst_structure_set_value (structure, "streamheader", &array);
+            gst_structure_take_value (structure, "streamheader", &array);
 
             gst_pad_set_caps (ogg->srcpad, caps);
 
-            g_value_unset (&array);
-
             if (ogg->caps)
               gst_caps_unref (ogg->caps);
             ogg->caps = caps;
diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c
index fe28f2e..0459851 100644
--- a/ext/ogg/gstoggstream.c
+++ b/ext/ogg/gstoggstream.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -27,6 +27,7 @@
 #include "vorbis_parse.h"
 
 #include <gst/riff/riff-media.h>
+#include <gst/pbutils/pbutils.h>
 
 #include <stdlib.h>
 #include <string.h>
@@ -499,6 +500,9 @@
     if (!pad->taglist)
       pad->taglist = gst_tag_list_new_empty ();
 
+    gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
+        GST_TAG_VIDEO_CODEC, "Theora", NULL);
+
     if (pad->bitrate)
       gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
           GST_TAG_BITRATE, (guint) pad->bitrate, NULL);
@@ -513,7 +517,7 @@
   int ret;
   DiracSequenceHeader header;
 
-  ret = dirac_sequence_header_parse (&header, packet->packet + 13,
+  ret = gst_dirac_sequence_header_parse (&header, packet->packet + 13,
       packet->bytes - 13);
   if (ret == 0) {
     GST_DEBUG ("Failed to parse Dirac sequence header");
@@ -732,6 +736,9 @@
   if (packet->bytes >= 7 && memcmp (packet->packet, "OVP80\2 ", 7) == 0) {
     tag_list_from_vorbiscomment_packet (packet,
         (const guint8 *) "OVP80\2 ", 7, &pad->taglist);
+
+    gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
+        GST_TAG_VIDEO_CODEC, "VP8", NULL);
   }
 }
 
@@ -778,7 +785,7 @@
   if (pad->granulerate_n == 0)
     return FALSE;
 
-  parse_vorbis_header_packet (pad, packet);
+  gst_parse_vorbis_header_packet (pad, packet);
 
   pad->caps = gst_caps_new_simple ("audio/x-vorbis",
       "rate", G_TYPE_INT, pad->granulerate_n, "channels", G_TYPE_INT, chans,
@@ -794,7 +801,7 @@
     return FALSE;
 
   if (packet->packet[0] == 5) {
-    parse_vorbis_setup_packet (pad, packet);
+    gst_parse_vorbis_setup_packet (pad, packet);
   }
 
   return TRUE;
@@ -814,7 +821,8 @@
       pad->taglist = gst_tag_list_new_empty ();
 
     gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
-        GST_TAG_ENCODER_VERSION, pad->version, NULL);
+        GST_TAG_ENCODER_VERSION, pad->version,
+        GST_TAG_AUDIO_CODEC, "Vorbis", NULL);
 
     if (pad->bitrate_nominal > 0)
       gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
@@ -904,6 +912,16 @@
     if (!pad->taglist)
       pad->taglist = gst_tag_list_new_empty ();
 
+    if (pad->is_video) {
+      gst_pb_utils_add_codec_description_to_tag_list (pad->taglist,
+          GST_TAG_VIDEO_CODEC, pad->caps);
+    } else if (!pad->is_sparse && !pad->is_ogm_text && !pad->is_ogm) {
+      gst_pb_utils_add_codec_description_to_tag_list (pad->taglist,
+          GST_TAG_AUDIO_CODEC, pad->caps);
+    } else {
+      GST_FIXME ("not adding codec tag, not sure about codec type");
+    }
+
     if (pad->bitrate)
       gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
           GST_TAG_BITRATE, (guint) pad->bitrate, NULL);
@@ -1025,6 +1043,9 @@
   if (packet->bytes > 4 && ((packet->packet[0] & 0x7F) == 0x4)) {
     tag_list_from_vorbiscomment_packet (packet,
         packet->packet, 4, &pad->taglist);
+
+    gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
+        GST_TAG_AUDIO_CODEC, "FLAC", NULL);
   }
 }
 
@@ -1846,6 +1867,11 @@
     case 0x81:
       tag_list_from_vorbiscomment_packet (packet,
           (const guint8 *) "\201kate\0\0\0\0", 9, &list);
+
+      if (list != NULL) {
+        gst_tag_list_add (list, GST_TAG_MERGE_REPLACE,
+            GST_TAG_SUBTITLE_CODEC, "Kate", NULL);
+      }
       break;
     default:
       break;
@@ -1981,9 +2007,132 @@
   if (packet->bytes >= 8 && memcmp (packet->packet, "OpusTags", 8) == 0) {
     tag_list_from_vorbiscomment_packet (packet,
         (const guint8 *) "OpusTags", 8, &pad->taglist);
+
+    gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
+        GST_TAG_AUDIO_CODEC, "Opus", NULL);
   }
 }
 
+/* daala */
+
+static gboolean
+setup_daala_mapper (GstOggStream * pad, ogg_packet * packet)
+{
+  guint8 *data = packet->packet;
+  guint w, h, par_d, par_n;
+  guint8 vmaj, vmin, vrev;
+  guint frame_duration;
+
+  vmaj = data[6];
+  vmin = data[7];
+  vrev = data[8];
+
+  GST_LOG ("daala %d.%d.%d", vmaj, vmin, vrev);
+
+  w = GST_READ_UINT32_LE (data + 9);
+  h = GST_READ_UINT32_LE (data + 13);
+
+  par_n = GST_READ_UINT32_LE (data + 17);
+  par_d = GST_READ_UINT32_LE (data + 21);
+
+  pad->granulerate_n = GST_READ_UINT32_LE (data + 25);
+  pad->granulerate_d = GST_READ_UINT32_LE (data + 29);
+  frame_duration = GST_READ_UINT32_LE (data + 33);
+
+  GST_LOG ("fps = %d/%d, dur %d, PAR = %u/%u, width = %u, height = %u",
+      pad->granulerate_n, pad->granulerate_d, frame_duration, par_n, par_d, w,
+      h);
+
+  pad->granuleshift = GST_READ_UINT8 (data + 37);
+  GST_LOG ("granshift: %d", pad->granuleshift);
+
+  pad->is_video = TRUE;
+  pad->n_header_packets = 3;
+  pad->frame_size = 1;
+
+  if (pad->granulerate_n == 0 || pad->granulerate_d == 0) {
+    GST_WARNING ("frame rate %d/%d", pad->granulerate_n, pad->granulerate_d);
+    return FALSE;
+  }
+
+  pad->caps = gst_caps_new_empty_simple ("video/x-daala");
+
+  if (w > 0 && h > 0) {
+    gst_caps_set_simple (pad->caps, "width", G_TYPE_INT, w, "height",
+        G_TYPE_INT, h, NULL);
+  }
+
+  /* PAR of 0:N, N:0 and 0:0 is allowed and maps to 1:1 */
+  if (par_n == 0 || par_d == 0)
+    par_n = par_d = 1;
+
+  /* only add framerate now so caps look prettier, with width/height first */
+  gst_caps_set_simple (pad->caps, "framerate", GST_TYPE_FRACTION,
+      pad->granulerate_n, pad->granulerate_d, "pixel-aspect-ratio",
+      GST_TYPE_FRACTION, par_n, par_d, NULL);
+
+  return TRUE;
+}
+
+static gint64
+granulepos_to_granule_daala (GstOggStream * pad, gint64 granulepos)
+{
+  gint64 keyindex, keyoffset;
+
+  if (pad->granuleshift != 0) {
+    keyindex = granulepos >> pad->granuleshift;
+    keyoffset = granulepos - (keyindex << pad->granuleshift);
+    return keyindex + keyoffset;
+  } else {
+    return granulepos;
+  }
+}
+
+static gboolean
+is_granulepos_keyframe_daala (GstOggStream * pad, gint64 granulepos)
+{
+  gint64 frame_mask;
+
+  if (granulepos == (gint64) - 1)
+    return FALSE;
+
+  frame_mask = (1 << pad->granuleshift) - 1;
+
+  return ((granulepos & frame_mask) == 0);
+}
+
+static gboolean
+is_packet_keyframe_daala (GstOggStream * pad, ogg_packet * packet)
+{
+  if (packet->bytes == 0)
+    return FALSE;
+  return (packet->packet[0] & 0x40);
+}
+
+static gboolean
+is_header_daala (GstOggStream * pad, ogg_packet * packet)
+{
+  return (packet->bytes > 0 && (packet->packet[0] & 0x80) == 0x80);
+}
+
+static void
+extract_tags_daala (GstOggStream * pad, ogg_packet * packet)
+{
+  if (packet->bytes > 0 && packet->packet[0] == 0x81) {
+    tag_list_from_vorbiscomment_packet (packet,
+        (const guint8 *) "\201daala", 5, &pad->taglist);
+
+    if (!pad->taglist)
+      pad->taglist = gst_tag_list_new_empty ();
+
+    gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
+        GST_TAG_VIDEO_CODEC, "Daala", NULL);
+
+    if (pad->bitrate)
+      gst_tag_list_add (pad->taglist, GST_TAG_MERGE_REPLACE,
+          GST_TAG_BITRATE, (guint) pad->bitrate, NULL);
+  }
+}
 
 /* *INDENT-OFF* */
 /* indent hates our freedoms */
@@ -2220,7 +2369,21 @@
     packet_duration_ogm,
     NULL,
     extract_tags_ogm
-  }
+  },
+  {
+    "\200daala", 6, 42,
+    "video/x-daala",
+    setup_daala_mapper,
+    granulepos_to_granule_daala,
+    granule_to_granulepos_default,
+    is_granulepos_keyframe_daala,
+    is_packet_keyframe_daala,
+    is_header_daala,
+    packet_duration_constant,
+    NULL,
+    extract_tags_daala
+  },
+ 
 };
 /* *INDENT-ON* */
 
diff --git a/ext/ogg/gstoggstream.h b/ext/ogg/gstoggstream.h
index 19ecb17..7d2c2ca 100644
--- a/ext/ogg/gstoggstream.h
+++ b/ext/ogg/gstoggstream.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_OGG_STREAM_H__
diff --git a/ext/ogg/gstogmparse.c b/ext/ogg/gstogmparse.c
index 565fdfe..a08c5df 100644
--- a/ext/ogg/gstogmparse.c
+++ b/ext/ogg/gstogmparse.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/ogg/vorbis_parse.c b/ext/ogg/vorbis_parse.c
index 844f18b..2d85e93 100644
--- a/ext/ogg/vorbis_parse.c
+++ b/ext/ogg/vorbis_parse.c
@@ -76,7 +76,7 @@
 
 
 void
-parse_vorbis_header_packet (GstOggStream * pad, ogg_packet * packet)
+gst_parse_vorbis_header_packet (GstOggStream * pad, ogg_packet * packet)
 {
   /*
    * on the first (b_o_s) packet, determine the long and short sizes,
@@ -98,7 +98,7 @@
 }
 
 void
-parse_vorbis_setup_packet (GstOggStream * pad, ogg_packet * op)
+gst_parse_vorbis_setup_packet (GstOggStream * pad, ogg_packet * op)
 {
   /*
    * the code pages, a whole bunch of other fairly useless stuff, AND,
diff --git a/ext/ogg/vorbis_parse.h b/ext/ogg/vorbis_parse.h
index 9a8781b..927a92a 100644
--- a/ext/ogg/vorbis_parse.h
+++ b/ext/ogg/vorbis_parse.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VORBIS_PARSE_H__
@@ -24,7 +24,9 @@
 
 #include <gst/gst.h>
 
-void parse_vorbis_header_packet (GstOggStream * pad, ogg_packet * packet);
-void parse_vorbis_setup_packet (GstOggStream * pad, ogg_packet * op);
+G_GNUC_INTERNAL
+void gst_parse_vorbis_header_packet (GstOggStream * pad, ogg_packet * packet);
+G_GNUC_INTERNAL
+void gst_parse_vorbis_setup_packet (GstOggStream * pad, ogg_packet * op);
 
 #endif /* __GST_VORBIS_PARSE_H__ */
diff --git a/ext/pango/Makefile.in b/ext/pango/Makefile.in
index ed9aba2..73de38b 100644
--- a/ext/pango/Makefile.in
+++ b/ext/pango/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/pango
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -142,10 +168,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstpango_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstpango_la_CFLAGS) $(CFLAGS) \
 	$(libgstpango_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -158,20 +197,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstpango_la_SOURCES)
 DIST_SOURCES = $(libgstpango_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +215,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -536,6 +588,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -562,12 +615,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstpango.la: $(libgstpango_la_OBJECTS) $(libgstpango_la_DEPENDENCIES) $(EXTRA_libgstpango_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstpango_la_LINK) -rpath $(plugindir) $(libgstpango_la_OBJECTS) $(libgstpango_la_LIBADD) $(LIBS)
 
@@ -645,26 +701,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -676,15 +721,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -693,6 +734,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -837,19 +893,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c
index 79d6d7a..ad6a05b 100644
--- a/ext/pango/gstbasetextoverlay.c
+++ b/ext/pango/gstbasetextoverlay.c
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -121,48 +121,6 @@
 #define MINIMUM_OUTLINE_OFFSET 1.0
 #define DEFAULT_SCALE_BASIS    640
 
-#define COMP_Y(ret, r, g, b) \
-{ \
-   ret = (int) (((19595 * r) >> 16) + ((38470 * g) >> 16) + ((7471 * b) >> 16)); \
-   ret = CLAMP (ret, 0, 255); \
-}
-
-#define COMP_U(ret, r, g, b) \
-{ \
-   ret = (int) (-((11059 * r) >> 16) - ((21709 * g) >> 16) + ((32768 * b) >> 16) + 128); \
-   ret = CLAMP (ret, 0, 255); \
-}
-
-#define COMP_V(ret, r, g, b) \
-{ \
-   ret = (int) (((32768 * r) >> 16) - ((27439 * g) >> 16) - ((5329 * b) >> 16) + 128); \
-   ret = CLAMP (ret, 0, 255); \
-}
-
-#define BLEND(ret, alpha, v0, v1) \
-{ \
-	ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \
-}
-
-#define OVER(ret, alphaA, Ca, alphaB, Cb, alphaNew)	\
-{ \
-    gint _tmp; \
-    _tmp = (Ca * alphaA + Cb * alphaB * (255 - alphaA) / 255) / alphaNew; \
-    ret = CLAMP (_tmp, 0, 255); \
-}
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-# define CAIRO_ARGB_A 3
-# define CAIRO_ARGB_R 2
-# define CAIRO_ARGB_G 1
-# define CAIRO_ARGB_B 0
-#else
-# define CAIRO_ARGB_A 0
-# define CAIRO_ARGB_R 1
-# define CAIRO_ARGB_G 2
-# define CAIRO_ARGB_B 3
-#endif
-
 enum
 {
   PROP_0,
@@ -189,12 +147,7 @@
   PROP_LAST
 };
 
-/* FIXME: video-blend.c doesn't support formats with more than 8 bit per
- * component (which get unpacked into ARGB64 or AYUV64) yet, such as:
- *  v210, v216, UYVP, GRAY16_LE, GRAY16_BE */
-#define VIDEO_FORMATS "{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, \
-    I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, \
-    NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }"
+#define VIDEO_FORMATS GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS
 
 static GstStaticPadTemplate src_template_factory =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -1545,6 +1498,34 @@
   }
 }
 
+static void
+gst_base_text_overlay_shade_IYU1 (GstBaseTextOverlay * overlay,
+    GstVideoFrame * frame, gint x0, gint x1, gint y0, gint y1)
+{
+  gint y, x, stride, shading_val, tmp;
+  guint8 *p;
+
+  shading_val = overlay->shading_value;
+  stride = GST_VIDEO_FRAME_PLANE_STRIDE (frame, 0);
+
+  /* IYU1: packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...) */
+  for (y = y0; y < y1; ++y) {
+    p = GST_VIDEO_FRAME_PLANE_DATA (frame, 0);
+    /* move to Y0 or Y1 (we pretend the chroma is the last of the 3 bytes) */
+    /* FIXME: we're not pixel-exact here if x0 is an odd number, but it's
+     * unlikely anyone will notice.. */
+    p += (y * stride) + ((x0 / 2) * 3) + 1;
+    for (x = x0; x < x1; x += 2) {
+      tmp = *p + shading_val;
+      *p++ = CLAMP (tmp, 0, 255);
+      tmp = *p + shading_val;
+      *p++ = CLAMP (tmp, 0, 255);
+      /* skip chroma */
+      p++;
+    }
+  }
+}
+
 #define ARGB_SHADE_FUNCTION(name, OFFSET)	\
 static inline void \
 gst_base_text_overlay_shade_##name (GstBaseTextOverlay * overlay, GstVideoFrame * dest, \
@@ -1630,6 +1611,7 @@
     case GST_VIDEO_FORMAT_YUV9:
     case GST_VIDEO_FORMAT_YVU9:
     case GST_VIDEO_FORMAT_GRAY8:
+    case GST_VIDEO_FORMAT_A420:
       gst_base_text_overlay_shade_planar_Y (overlay, frame, x0, x1, y0, y1);
       break;
     case GST_VIDEO_FORMAT_AYUV:
@@ -1666,6 +1648,9 @@
     case GST_VIDEO_FORMAT_RGB:
       gst_base_text_overlay_shade_rgb24 (overlay, frame, x0, x1, y0, y1);
       break;
+    case GST_VIDEO_FORMAT_IYU1:
+      gst_base_text_overlay_shade_IYU1 (overlay, frame, x0, x1, y0, y1);
+      break;
     default:
       GST_FIXME_OBJECT (overlay, "implement background shading for format %s",
           gst_video_format_to_string (GST_VIDEO_FRAME_FORMAT (frame)));
diff --git a/ext/pango/gstclockoverlay.c b/ext/pango/gstclockoverlay.c
index dad5d8f..8fb1ecf 100644
--- a/ext/pango/gstclockoverlay.c
+++ b/ext/pango/gstclockoverlay.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/pango/gstclockoverlay.h b/ext/pango/gstclockoverlay.h
index 09ca2d3..b3f4a43 100644
--- a/ext/pango/gstclockoverlay.h
+++ b/ext/pango/gstclockoverlay.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c
index 9c5e8a3..9e3f9de 100644
--- a/ext/pango/gsttextoverlay.c
+++ b/ext/pango/gsttextoverlay.c
@@ -19,8 +19,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h
index c1dab86..917e46b 100644
--- a/ext/pango/gsttextoverlay.h
+++ b/ext/pango/gsttextoverlay.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/pango/gsttextrender.c b/ext/pango/gsttextrender.c
index f224051..853e7e3 100644
--- a/ext/pango/gsttextrender.c
+++ b/ext/pango/gsttextrender.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/pango/gsttimeoverlay.c b/ext/pango/gsttimeoverlay.c
index b88e89c..ffd6124 100644
--- a/ext/pango/gsttimeoverlay.c
+++ b/ext/pango/gsttimeoverlay.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/pango/gsttimeoverlay.h b/ext/pango/gsttimeoverlay.h
index dbce8ff..3e37709 100644
--- a/ext/pango/gsttimeoverlay.h
+++ b/ext/pango/gsttimeoverlay.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/theora/Makefile.in b/ext/theora/Makefile.in
index 0c97315..f1b8dea 100644
--- a/ext/theora/Makefile.in
+++ b/ext/theora/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/theora
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -142,10 +168,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsttheora_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgsttheora_la_CFLAGS) $(CFLAGS) \
 	$(libgsttheora_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -158,20 +197,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgsttheora_la_SOURCES)
 DIST_SOURCES = $(libgsttheora_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +215,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -527,6 +579,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -553,12 +606,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsttheora.la: $(libgsttheora_la_OBJECTS) $(libgsttheora_la_DEPENDENCIES) $(EXTRA_libgsttheora_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsttheora_la_LINK) -rpath $(plugindir) $(libgsttheora_la_OBJECTS) $(libgsttheora_la_LIBADD) $(LIBS)
 
@@ -628,26 +684,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -659,15 +704,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -676,6 +717,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -820,19 +876,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/theora/gsttheora.c b/ext/theora/gsttheora.c
index bd63bbc..48096c5 100644
--- a/ext/theora/gsttheora.c
+++ b/ext/theora/gsttheora.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index 23445a7..30f1db4 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -273,11 +273,13 @@
 
   av = gst_adapter_available (adapter);
 
-  data = gst_adapter_map (adapter, 1);
-  /* check for keyframe; must not be header packet */
-  if (!(data[0] & 0x80) && (data[0] & 0x40) == 0)
-    GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame);
-  gst_adapter_unmap (adapter);
+  if (av > 0) {
+    data = gst_adapter_map (adapter, 1);
+    /* check for keyframe; must not be header packet */
+    if (!(data[0] & 0x80) && (data[0] & 0x40) == 0)
+      GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame);
+    gst_adapter_unmap (adapter);
+  }
 
   /* and pass along all */
   gst_video_decoder_add_to_frame (decoder, av);
@@ -395,7 +397,12 @@
   GstFlowReturn ret = GST_FLOW_OK;
   GstVideoCodecState *state;
   GstVideoFormat fmt;
-  GstVideoInfo *info = &dec->input_state->info;
+  GstVideoInfo *info;
+
+  if (!dec->input_state)
+    return GST_FLOW_NOT_NEGOTIATED;
+
+  info = &dec->input_state->info;
 
   GST_DEBUG_OBJECT (dec, "fps %d/%d, PAR %d/%d",
       dec->info.fps_numerator, dec->info.fps_denominator,
@@ -782,6 +789,8 @@
   if (packet.bytes && packet.packet[0] & 0x80) {
     if (dec->have_header) {
       GST_WARNING_OBJECT (GST_OBJECT (dec), "Ignoring header");
+      GST_VIDEO_CODEC_FRAME_FLAG_SET (frame,
+          GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY);
       result = GST_CUSTOM_FLOW_DROP;
       goto done;
     }
diff --git a/ext/theora/gsttheoradec.h b/ext/theora/gsttheoradec.h
index 50e757a..1ca5583 100644
--- a/ext/theora/gsttheoradec.h
+++ b/ext/theora/gsttheoradec.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_THEORADEC_H__
diff --git a/ext/theora/gsttheoraenc.c b/ext/theora/gsttheoraenc.c
index 52b5447..37ca24b 100644
--- a/ext/theora/gsttheoraenc.c
+++ b/ext/theora/gsttheoraenc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -58,8 +58,6 @@
 #include "config.h"
 #endif
 
-#include "gsttheoraenc.h"
-
 #include <string.h>
 #include <stdlib.h>             /* free */
 
@@ -67,6 +65,8 @@
 #include <gst/video/video.h>
 #include <gst/video/gstvideometa.h>
 
+#include "gsttheoraenc.h"
+
 #define GST_CAT_DEFAULT theoraenc_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
@@ -668,25 +668,13 @@
 
   for (walk = buffers; walk; walk = walk->next) {
     buffer = walk->data;
-
-    /* mark buffer */
-    GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_HEADER);
-
-    /* Copy buffer, because we can't use the original -
-     * it creates a circular refcount with the caps<->buffers */
-    buffer = gst_buffer_copy (buffer);
-
     g_value_init (&value, GST_TYPE_BUFFER);
     gst_value_set_buffer (&value, buffer);
     gst_value_array_append_value (&array, &value);
     g_value_unset (&value);
-
-    /* Unref our copy */
-    gst_buffer_unref (buffer);
   }
 
-  gst_structure_set_value (structure, "streamheader", &array);
-  g_value_unset (&array);
+  gst_structure_take_value (structure, "streamheader", &array);
 
   return caps;
 }
@@ -853,6 +841,7 @@
   GST_BUFFER_OFFSET_END (outbuf) = 0;
   GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_HEADER);
 
   GST_DEBUG ("created header packet buffer, %u bytes",
       (guint) gst_buffer_get_size (outbuf));
@@ -960,12 +949,16 @@
 
   {
     th_ycbcr_buffer ycbcr;
-    gint res;
+    gint res, keyframe_interval;
     GstVideoFrame vframe;
 
     if (force_keyframe) {
-      theora_enc_reset (enc);
-      theora_enc_reset_ts (enc, running_time, frame->presentation_frame_number);
+      /* if we want a keyframe, temporarily reset the max keyframe interval
+       * to 1, which will cause libtheora to emit one. There is no API to
+       * request a keyframe at the moment. */
+      keyframe_interval = 1;
+      th_encode_ctl (enc->encoder, TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE,
+          &keyframe_interval, sizeof (keyframe_interval));
     }
 
     if (enc->multipass_cache_fd
@@ -996,6 +989,16 @@
 
     ret = GST_FLOW_OK;
     while (th_encode_packetout (enc->encoder, 0, &op)) {
+      /* Reset the max keyframe interval to its original state, and reset
+       * the flag so we don't create more keyframes if we loop */
+      if (force_keyframe) {
+        keyframe_interval =
+            enc->keyframe_auto ? enc->keyframe_force : enc->keyframe_freq;
+        th_encode_ctl (enc->encoder, TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE,
+            &keyframe_interval, sizeof (keyframe_interval));
+        force_keyframe = FALSE;
+      }
+
       ret = theora_push_packet (enc, &op);
       if (ret != GST_FLOW_OK)
         goto beach;
diff --git a/ext/theora/gsttheoraenc.h b/ext/theora/gsttheoraenc.h
index 3053e1e..29b4b01 100644
--- a/ext/theora/gsttheoraenc.h
+++ b/ext/theora/gsttheoraenc.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_THEORAENC_H__
diff --git a/ext/theora/gsttheoraparse.c b/ext/theora/gsttheoraparse.c
index efa19ab..b1d0727 100644
--- a/ext/theora/gsttheoraparse.c
+++ b/ext/theora/gsttheoraparse.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -285,8 +285,7 @@
     g_value_unset (&value);
   }
 
-  gst_structure_set_value (structure, "streamheader", &array);
-  g_value_unset (&array);
+  gst_structure_take_value (structure, "streamheader", &array);
 }
 
 /* two tasks to do here: set the streamheader on the caps, and use libtheora to
diff --git a/ext/theora/gsttheoraparse.h b/ext/theora/gsttheoraparse.h
index 8314287..9ab1448 100644
--- a/ext/theora/gsttheoraparse.h
+++ b/ext/theora/gsttheoraparse.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/vorbis/Makefile.in b/ext/vorbis/Makefile.in
index 670512b..eb60749 100644
--- a/ext/vorbis/Makefile.in
+++ b/ext/vorbis/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,14 +83,13 @@
 @USE_VORBIS_TRUE@am__append_1 = libgstvorbis.la
 @USE_IVORBIS_TRUE@am__append_2 = libgstivorbisdec.la
 subdir = ext/vorbis
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -146,6 +172,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstivorbisdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) \
@@ -172,6 +199,18 @@
 	$(CCLD) $(libgstvorbis_la_CFLAGS) $(CFLAGS) \
 	$(libgstvorbis_la_LDFLAGS) $(LDFLAGS) -o $@
 @USE_VORBIS_TRUE@am_libgstvorbis_la_rpath = -rpath $(plugindir)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -184,20 +223,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstivorbisdec_la_SOURCES) $(libgstvorbis_la_SOURCES)
 DIST_SOURCES = $(am__libgstivorbisdec_la_SOURCES_DIST) \
 	$(am__libgstvorbis_la_SOURCES_DIST)
@@ -207,6 +242,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -575,6 +627,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -601,14 +654,18 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstivorbisdec.la: $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_DEPENDENCIES) $(EXTRA_libgstivorbisdec_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstivorbisdec_la_LINK) $(am_libgstivorbisdec_la_rpath) $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_LIBADD) $(LIBS)
+
 libgstvorbis.la: $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_DEPENDENCIES) $(EXTRA_libgstvorbis_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvorbis_la_LINK) $(am_libgstvorbis_la_rpath) $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_LIBADD) $(LIBS)
 
@@ -734,26 +791,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -765,15 +811,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -782,6 +824,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -926,19 +983,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/ext/vorbis/gstivorbisdec.c b/ext/vorbis/gstivorbisdec.c
index 095a06e..ef500dd 100644
--- a/ext/vorbis/gstivorbisdec.c
+++ b/ext/vorbis/gstivorbisdec.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/vorbis/gstvorbis.c b/ext/vorbis/gstvorbis.c
index 7356865..67254a8 100644
--- a/ext/vorbis/gstvorbis.c
+++ b/ext/vorbis/gstvorbis.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/vorbis/gstvorbiscommon.c b/ext/vorbis/gstvorbiscommon.c
index 8134881..f575b99 100644
--- a/ext/vorbis/gstvorbiscommon.c
+++ b/ext/vorbis/gstvorbiscommon.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/ext/vorbis/gstvorbiscommon.h b/ext/vorbis/gstvorbiscommon.h
index 64386a9..e703cfd 100644
--- a/ext/vorbis/gstvorbiscommon.h
+++ b/ext/vorbis/gstvorbiscommon.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VORBIS_COMMON_H__
diff --git a/ext/vorbis/gstvorbisdec.c b/ext/vorbis/gstvorbisdec.c
index a062261..7273d2c 100644
--- a/ext/vorbis/gstvorbisdec.c
+++ b/ext/vorbis/gstvorbisdec.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -200,7 +200,7 @@
   vd->info = info;
   /* select a copy_samples function, this way we can have specialized versions
    * for mono/stereo and avoid the depth switch in tremor case */
-  vd->copy_samples = get_copy_sample_func (info.channels);
+  vd->copy_samples = gst_vorbis_get_copy_sample_func (info.channels);
 
   return GST_FLOW_OK;
 }
diff --git a/ext/vorbis/gstvorbisdec.h b/ext/vorbis/gstvorbisdec.h
index f205597..78d275f 100644
--- a/ext/vorbis/gstvorbisdec.h
+++ b/ext/vorbis/gstvorbisdec.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/vorbis/gstvorbisdeclib.c b/ext/vorbis/gstvorbisdeclib.c
index a28ba37..cf18958 100644
--- a/ext/vorbis/gstvorbisdeclib.c
+++ b/ext/vorbis/gstvorbisdeclib.c
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -82,7 +82,7 @@
 }
 
 CopySampleFunc
-get_copy_sample_func (gint channels)
+gst_vorbis_get_copy_sample_func (gint channels)
 {
   CopySampleFunc f = NULL;
 
@@ -173,7 +173,7 @@
 }
 
 CopySampleFunc
-get_copy_sample_func (gint channels)
+gst_vorbis_get_copy_sample_func (gint channels)
 {
   CopySampleFunc f = NULL;
 
diff --git a/ext/vorbis/gstvorbisdeclib.h b/ext/vorbis/gstvorbisdeclib.h
index 8f69bda..7f711a7 100644
--- a/ext/vorbis/gstvorbisdeclib.h
+++ b/ext/vorbis/gstvorbisdeclib.h
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VORBIS_DEC_LIB_H__
@@ -61,6 +61,8 @@
 /* we need a different type name here */
 #define GstVorbisDec GstIVorbisDec
 #define GstVorbisDecClass GstIVorbisDecClass
+#define gst_vorbis_dec_get_type gst_ivorbis_dec_get_type
+#define gst_vorbis_get_copy_sample_func gst_ivorbis_get_copy_sample_func
 
 #endif /* TREMOR */
 
@@ -186,6 +188,6 @@
 typedef void (*CopySampleFunc)(vorbis_sample_t *out, vorbis_sample_t **in,
                            guint samples, gint channels);
 
-CopySampleFunc get_copy_sample_func (gint channels);
+CopySampleFunc gst_vorbis_get_copy_sample_func (gint channels);
 
 #endif /* __GST_VORBIS_DEC_LIB_H__ */
diff --git a/ext/vorbis/gstvorbisenc.c b/ext/vorbis/gstvorbisenc.c
index f30afb8..a8db098 100644
--- a/ext/vorbis/gstvorbisenc.c
+++ b/ext/vorbis/gstvorbisenc.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -569,6 +569,7 @@
   GST_BUFFER_OFFSET_END (outbuf) = 0;
   GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_HEADER);
 
   GST_DEBUG ("created header packet buffer, %" G_GSIZE_FORMAT " bytes",
       gst_buffer_get_size (outbuf));
@@ -638,24 +639,15 @@
   va_start (va, buf);
   /* put buffers in a fixed list */
   while (buf) {
-    g_assert (gst_buffer_is_writable (buf));
-
-    /* mark buffer */
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
-
     g_value_init (&value, GST_TYPE_BUFFER);
-    buf = gst_buffer_copy (buf);
-    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
     gst_value_set_buffer (&value, buf);
-    gst_buffer_unref (buf);
     gst_value_array_append_value (&array, &value);
     g_value_unset (&value);
 
     buf = va_arg (va, GstBuffer *);
   }
 
-  gst_structure_set_value (structure, field, &array);
-  g_value_unset (&array);
+  gst_structure_take_value (structure, field, &array);
 
   return caps;
 }
diff --git a/ext/vorbis/gstvorbisenc.h b/ext/vorbis/gstvorbisenc.h
index 18d1e55..d80260e 100644
--- a/ext/vorbis/gstvorbisenc.h
+++ b/ext/vorbis/gstvorbisenc.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/vorbis/gstvorbisparse.c b/ext/vorbis/gstvorbisparse.c
index ee593ca..eff07b8 100644
--- a/ext/vorbis/gstvorbisparse.c
+++ b/ext/vorbis/gstvorbisparse.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -164,9 +164,8 @@
   g_value_init (&value, GST_TYPE_BUFFER);
   gst_value_set_buffer (&value, buf3);
   gst_value_array_append_value (&array, &value);
-  gst_structure_set_value (structure, "streamheader", &array);
+  gst_structure_take_value (structure, "streamheader", &array);
   g_value_unset (&value);
-  g_value_unset (&array);
 }
 
 static void
diff --git a/ext/vorbis/gstvorbisparse.h b/ext/vorbis/gstvorbisparse.h
index 46183ea..78eac24 100644
--- a/ext/vorbis/gstvorbisparse.h
+++ b/ext/vorbis/gstvorbisparse.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/ext/vorbis/gstvorbistag.c b/ext/vorbis/gstvorbistag.c
index b2cf561..fa7af7a 100644
--- a/ext/vorbis/gstvorbistag.c
+++ b/ext/vorbis/gstvorbistag.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/ext/vorbis/gstvorbistag.h b/ext/vorbis/gstvorbistag.h
index 9a44300..0b957c9 100644
--- a/ext/vorbis/gstvorbistag.h
+++ b/ext/vorbis/gstvorbistag.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index fe39831..0f82985 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,12 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,21 +123,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -119,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -483,22 +536,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -513,57 +569,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -579,12 +590,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -596,15 +602,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -613,6 +615,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -773,22 +790,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst-libs/gst/Makefile.am b/gst-libs/gst/Makefile.am
index 514a0b8..f7bb92e 100644
--- a/gst-libs/gst/Makefile.am
+++ b/gst-libs/gst/Makefile.am
@@ -8,7 +8,8 @@
 	audio \
 	pbutils \
 	riff \
-	app
+	app \
+	allocators
 
 noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
 
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index 03d0fd1..132bd70 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,14 +80,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -99,21 +125,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -122,9 +155,29 @@
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -454,7 +507,8 @@
 	audio \
 	pbutils \
 	riff \
-	app
+	app \
+	allocators
 
 noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
 INDEPENDENT_SUBDIRS = \
@@ -501,22 +555,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -531,57 +588,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -597,12 +609,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -614,15 +621,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -631,6 +634,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -791,22 +809,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # dependencies:
diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
new file mode 100644
index 0000000..c550ab0
--- /dev/null
+++ b/gst-libs/gst/allocators/Makefile.am
@@ -0,0 +1,77 @@
+lib_LTLIBRARIES = libgstallocators-@GST_API_VERSION@.la
+
+libgstallocators_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/allocators
+
+libgstallocators_@GST_API_VERSION@_include_HEADERS = \
+	allocators.h \
+	gstdmabuf.h
+
+noinst_HEADERS =
+
+libgstallocators_@GST_API_VERSION@_la_SOURCES = \
+	gstdmabuf.c 
+
+libgstallocators_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
+libgstallocators_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstallocators_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+
+if HAVE_INTROSPECTION
+BUILT_GIRSOURCES = GstAllocators-@GST_API_VERSION@.gir
+
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstallocators_@GST_API_VERSION@_include_HEADERS))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstallocators_@GST_API_VERSION@_la_SOURCES))
+gir_cincludes=$(patsubst %,--c-include='gst/allocators/%',$(libgstallocators_@GST_API_VERSION@_include_HEADERS))
+
+GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@GST_API_VERSION@.la
+	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		$(INTROSPECTION_SCANNER) -v --namespace GstAllocators \
+		--nsversion=@GST_API_VERSION@ \
+		--strip-prefix=Gst \
+		--warn-all \
+		--c-include "gst/allocators/allocators.h" \
+		-I$(top_srcdir)/gst-libs \
+		-I$(top_builddir)/gst-libs \
+		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+		--library=libgstallocators-@GST_API_VERSION@.la \
+		--include=Gst-@GST_API_VERSION@ \
+		--libtool="$(top_builddir)/libtool" \
+		--pkg gstreamer-@GST_API_VERSION@ \
+		--pkg-export gstreamer-allocators-@GST_API_VERSION@ \
+		--output $@ \
+		$(gir_headers) \
+		$(gir_sources)
+
+# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
+# install anything - we need to install inside our prefix.
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(BUILT_GIRSOURCES)
+
+typelibsdir = $(libdir)/girepository-1.0/
+
+typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+
+%.typelib: %.gir $(INTROSPECTION_COMPILER)
+	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+		$(INTROSPECTION_COMPILER) \
+		--includedir=$(srcdir) \
+		--includedir=$(builddir) \
+		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+
+CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+endif
+
+Android.mk: Makefile.am
+	androgenizer -:PROJECT libgstallocators -:SHARED libgstallocators-@GST_API_VERSION@ \
+	 -:TAGS eng debug \
+         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
+	 -:SOURCES $(libgstallocators_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstallocators_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstallocators_@GST_API_VERSION@_la_LIBADD) \
+	           -ldl \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/allocators \
+	 -:HEADERS $(libgstallocatorsinclude_HEADERS) \
+	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
+	> $@
diff --git a/gst-libs/gst/allocators/Makefile.in b/gst-libs/gst/allocators/Makefile.in
new file mode 100644
index 0000000..5fd5c17
--- /dev/null
+++ b/gst-libs/gst/allocators/Makefile.in
@@ -0,0 +1,932 @@
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = gst-libs/gst/allocators
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstallocators_@GST_API_VERSION@_include_HEADERS) \
+	$(noinst_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
+	$(top_srcdir)/common/m4/as-auto-alt.m4 \
+	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
+	$(top_srcdir)/common/m4/as-libtool.m4 \
+	$(top_srcdir)/common/m4/as-scrub-include.m4 \
+	$(top_srcdir)/common/m4/as-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/gst-arch.m4 \
+	$(top_srcdir)/common/m4/gst-args.m4 \
+	$(top_srcdir)/common/m4/gst-check.m4 \
+	$(top_srcdir)/common/m4/gst-default.m4 \
+	$(top_srcdir)/common/m4/gst-error.m4 \
+	$(top_srcdir)/common/m4/gst-feature.m4 \
+	$(top_srcdir)/common/m4/gst-function.m4 \
+	$(top_srcdir)/common/m4/gst-gettext.m4 \
+	$(top_srcdir)/common/m4/gst-glib2.m4 \
+	$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+	$(top_srcdir)/common/m4/gst-platform.m4 \
+	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
+	$(top_srcdir)/common/m4/gst-plugindir.m4 \
+	$(top_srcdir)/common/m4/gst-x11.m4 \
+	$(top_srcdir)/common/m4/gst.m4 \
+	$(top_srcdir)/common/m4/gtk-doc.m4 \
+	$(top_srcdir)/common/m4/introspection.m4 \
+	$(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
+	$(top_srcdir)/m4/freetype2.m4 $(top_srcdir)/m4/gettext.m4 \
+	$(top_srcdir)/m4/gst-alsa.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
+	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lrint.m4 \
+	$(top_srcdir)/m4/lrintf.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/po.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vorbis.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
+	"$(DESTDIR)$(typelibsdir)" \
+	"$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libgstallocators_@GST_API_VERSION@_la_DEPENDENCIES =  \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am_libgstallocators_@GST_API_VERSION@_la_OBJECTS =  \
+	libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo
+libgstallocators_@GST_API_VERSION@_la_OBJECTS =  \
+	$(am_libgstallocators_@GST_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libgstallocators_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
+	--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) \
+	$(CFLAGS) $(libgstallocators_@GST_API_VERSION@_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libgstallocators_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(libgstallocators_@GST_API_VERSION@_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+DATA = $(gir_DATA) $(typelibs_DATA)
+HEADERS = $(libgstallocators_@GST_API_VERSION@_include_HEADERS) \
+	$(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUDIORESAMPLE_FORMAT_AUTO = @AUDIORESAMPLE_FORMAT_AUTO@
+AUDIORESAMPLE_FORMAT_FLOAT = @AUDIORESAMPLE_FORMAT_FLOAT@
+AUDIORESAMPLE_FORMAT_INT = @AUDIORESAMPLE_FORMAT_INT@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CDPARANOIA_CFLAGS = @CDPARANOIA_CFLAGS@
+CDPARANOIA_LIBS = @CDPARANOIA_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
+DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
+DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
+DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
+DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
+EXEEXT = @EXEEXT@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+FT2_CFLAGS = @FT2_CFLAGS@
+FT2_CONFIG = @FT2_CONFIG@
+FT2_LIBS = @FT2_LIBS@
+GCOV = @GCOV@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LIBS = @GCOV_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GLIB_REQ = @GLIB_REQ@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+GST_AGE = @GST_AGE@
+GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
+GST_API_VERSION = @GST_API_VERSION@
+GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
+GST_BASE_LIBS = @GST_BASE_LIBS@
+GST_CFLAGS = @GST_CFLAGS@
+GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
+GST_CHECK_LIBS = @GST_CHECK_LIBS@
+GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
+GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
+GST_CURRENT = @GST_CURRENT@
+GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_INSTALL_PLUGINS_HELPER = @GST_INSTALL_PLUGINS_HELPER@
+GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
+GST_LIBS = @GST_LIBS@
+GST_LIBVERSION = @GST_LIBVERSION@
+GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
+GST_LICENSE = @GST_LICENSE@
+GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
+GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
+GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
+GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
+GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@
+GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
+GST_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_QUARTZ_CFLAGS = @GTK_QUARTZ_CFLAGS@
+GTK_QUARTZ_LIBS = @GTK_QUARTZ_LIBS@
+GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
+GTK_X11_LIBS = @GTK_X11_LIBS@
+HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
+HAVE_X = @HAVE_X@
+HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
+IVORBIS_LIBS = @IVORBIS_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVISUAL_CFLAGS = @LIBVISUAL_CFLAGS@
+LIBVISUAL_LIBS = @LIBVISUAL_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALEDIR = @LOCALEDIR@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+ORCC = @ORCC@
+ORCC_FLAGS = @ORCC_FLAGS@
+ORC_CFLAGS = @ORC_CFLAGS@
+ORC_LIBS = @ORC_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
+PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
+PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
+PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
+PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
+PANGO_CFLAGS = @PANGO_CFLAGS@
+PANGO_LIBS = @PANGO_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POSUB = @POSUB@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QT4_MOC = @QT4_MOC@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+THEORA_CFLAGS = @THEORA_CFLAGS@
+THEORA_LIBS = @THEORA_LIBS@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VORBISENC_LIBS = @VORBISENC_LIBS@
+VORBISFILE_LIBS = @VORBISFILE_LIBS@
+VORBIS_CFLAGS = @VORBIS_CFLAGS@
+VORBIS_LIBS = @VORBIS_LIBS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMKMF = @XMKMF@
+XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_LIBS = @XVIDEO_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+lib_LTLIBRARIES = libgstallocators-@GST_API_VERSION@.la
+libgstallocators_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/allocators
+libgstallocators_@GST_API_VERSION@_include_HEADERS = \
+	allocators.h \
+	gstdmabuf.h
+
+noinst_HEADERS = 
+libgstallocators_@GST_API_VERSION@_la_SOURCES = \
+	gstdmabuf.c 
+
+libgstallocators_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
+libgstallocators_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstallocators_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstAllocators-@GST_API_VERSION@.gir
+@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstallocators_@GST_API_VERSION@_include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstallocators_@GST_API_VERSION@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/allocators/%',$(libgstallocators_@GST_API_VERSION@_include_HEADERS))
+
+# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
+# install anything - we need to install inside our prefix.
+@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
+@HAVE_INTROSPECTION_TRUE@gir_DATA = $(BUILT_GIRSOURCES)
+@HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0/
+@HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@HAVE_INTROSPECTION_TRUE@CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/allocators/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu gst-libs/gst/allocators/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
+libgstallocators-@GST_API_VERSION@.la: $(libgstallocators_@GST_API_VERSION@_la_OBJECTS) $(libgstallocators_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstallocators_@GST_API_VERSION@_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstallocators_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstallocators_@GST_API_VERSION@_la_OBJECTS) $(libgstallocators_@GST_API_VERSION@_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo: gstdmabuf.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo -MD -MP -MF $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Tpo -c -o libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo `test -f 'gstdmabuf.c' || echo '$(srcdir)/'`gstdmabuf.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Tpo $(DEPDIR)/libgstallocators_@GST_API_VERSION@_la-gstdmabuf.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdmabuf.c' object='libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstallocators_@GST_API_VERSION@_la-gstdmabuf.lo `test -f 'gstdmabuf.c' || echo '$(srcdir)/'`gstdmabuf.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-girDATA: $(gir_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
+	done
+
+uninstall-girDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
+install-typelibsDATA: $(typelibs_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibsdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibsdir)" || exit $$?; \
+	done
+
+uninstall-typelibsDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-libgstallocators_@GST_API_VERSION@_includeHEADERS: $(libgstallocators_@GST_API_VERSION@_include_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(libgstallocators_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstallocators_@GST_API_VERSION@_includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)" || exit $$?; \
+	done
+
+uninstall-libgstallocators_@GST_API_VERSION@_includeHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(libgstallocators_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstallocators_@GST_API_VERSION@_includedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstallocators_@GST_API_VERSION@_includedir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-girDATA \
+	install-libgstallocators_@GST_API_VERSION@_includeHEADERS \
+	install-typelibsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
+	uninstall-libgstallocators_@GST_API_VERSION@_includeHEADERS \
+	uninstall-typelibsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-girDATA \
+	install-html install-html-am install-info install-info-am \
+	install-libLTLIBRARIES \
+	install-libgstallocators_@GST_API_VERSION@_includeHEADERS \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip install-typelibsDATA installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am uninstall-girDATA \
+	uninstall-libLTLIBRARIES \
+	uninstall-libgstallocators_@GST_API_VERSION@_includeHEADERS \
+	uninstall-typelibsDATA
+
+
+@HAVE_INTROSPECTION_TRUE@GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@GST_API_VERSION@.la
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstAllocators \
+@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--warn-all \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/allocators/allocators.h" \
+@HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
+@HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
+@HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--library=libgstallocators-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-allocators-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--output $@ \
+@HAVE_INTROSPECTION_TRUE@		$(gir_headers) \
+@HAVE_INTROSPECTION_TRUE@		$(gir_sources)
+
+@HAVE_INTROSPECTION_TRUE@%.typelib: %.gir $(INTROSPECTION_COMPILER)
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+@HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_COMPILER) \
+@HAVE_INTROSPECTION_TRUE@		--includedir=$(srcdir) \
+@HAVE_INTROSPECTION_TRUE@		--includedir=$(builddir) \
+@HAVE_INTROSPECTION_TRUE@		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+
+Android.mk: Makefile.am
+	androgenizer -:PROJECT libgstallocators -:SHARED libgstallocators-@GST_API_VERSION@ \
+	 -:TAGS eng debug \
+         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
+	 -:SOURCES $(libgstallocators_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(libgstallocators_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstallocators_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstallocators_@GST_API_VERSION@_la_LIBADD) \
+	           -ldl \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/allocators \
+	 -:HEADERS $(libgstallocatorsinclude_HEADERS) \
+	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
+	> $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gst-libs/gst/allocators/allocators.h b/gst-libs/gst/allocators/allocators.h
new file mode 100644
index 0000000..c12beff
--- /dev/null
+++ b/gst-libs/gst/allocators/allocators.h
@@ -0,0 +1,28 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * allocators.h: single include header for gst-allocators library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_ALLOCATORS_H__
+#define __GST_ALLOCATORS_H__
+
+#include <gst/allocators/gstdmabuf.h>
+
+#endif /* __GST_ALLOCATORS_H__ */
+
diff --git a/gst-libs/gst/allocators/gstdmabuf.c b/gst-libs/gst/allocators/gstdmabuf.c
new file mode 100644
index 0000000..4a95f47
--- /dev/null
+++ b/gst-libs/gst/allocators/gstdmabuf.c
@@ -0,0 +1,353 @@
+/* GStreamer dmabuf allocator
+ * Copyright (C) 2013 Linaro SA
+ * Author: Benjamin Gaignard <benjamin.gaignard@linaro.org> for Linaro.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for mordetails.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstdmabuf.h"
+
+/**
+ * SECTION:gstdmabuf
+ * @short_description: Memory wrapper for Linux dmabuf memory
+ * @see_also: #GstMemory
+ *
+ * Since: 1.2
+ */
+
+#ifdef HAVE_MMAP
+#include <sys/mman.h>
+#include <unistd.h>
+
+/*
+ * GstDmaBufMemory
+ * @fd: the file descriptor associated this memory
+ * @data: mmapped address
+ * @mmapping_flags: mmapping flags
+ * @mmap_count: mmapping counter
+ * @lock: a mutex to make mmapping thread safe
+ */
+typedef struct
+{
+  GstMemory mem;
+
+  gint fd;
+  gpointer data;
+  gint mmapping_flags;
+  gint mmap_count;
+  gsize mmap_size;
+  GMutex lock;
+} GstDmaBufMemory;
+
+#define ALLOCATOR_NAME "dmabuf"
+
+GST_DEBUG_CATEGORY_STATIC (dmabuf_debug);
+#define GST_CAT_DEFAULT dmabuf_debug
+
+static void
+gst_dmabuf_allocator_free (GstAllocator * allocator, GstMemory * gmem)
+{
+  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
+
+  if (mem->data) {
+    g_warning (G_STRLOC ":%s: Freeing memory %p still mapped", G_STRFUNC, mem);
+    munmap ((void *) mem->data, mem->mmap_size);
+  }
+  close (mem->fd);
+  g_mutex_clear (&mem->lock);
+  g_slice_free (GstDmaBufMemory, mem);
+  GST_DEBUG ("%p: freed", mem);
+}
+
+static gpointer
+gst_dmabuf_mem_map (GstMemory * gmem, gsize maxsize, GstMapFlags flags)
+{
+  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
+  gint prot;
+  gpointer ret = NULL;
+
+  g_mutex_lock (&mem->lock);
+
+  prot = flags & GST_MAP_READ ? PROT_READ : 0;
+  prot |= flags & GST_MAP_WRITE ? PROT_WRITE : 0;
+
+  /* do not mmap twice the buffer */
+  if (mem->data) {
+    /* only return address if mapping flags are a subset
+     * of the previous flags */
+    if ((mem->mmapping_flags & prot) && (mem->mmap_size >= maxsize))
+      ret = mem->data;
+
+    goto out;
+  }
+
+  if (mem->fd != -1) {
+    mem->data = mmap (0, maxsize, prot, MAP_SHARED, mem->fd, 0);
+    if (mem->data == MAP_FAILED) {
+      mem->data = NULL;
+      GST_ERROR ("%p: fd %d: mmap failed: %s", mem, mem->fd,
+          g_strerror (errno));
+      goto out;
+    }
+  }
+
+  GST_DEBUG ("%p: fd %d: mapped %p", mem, mem->fd, mem->data);
+
+  if (mem->data) {
+    mem->mmapping_flags = prot;
+    mem->mmap_size = maxsize;
+    mem->mmap_count++;
+    ret = mem->data;
+  }
+
+out:
+  g_mutex_unlock (&mem->lock);
+  return ret;
+}
+
+static void
+gst_dmabuf_mem_unmap (GstMemory * gmem)
+{
+  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
+  g_mutex_lock (&mem->lock);
+
+  if (mem->data && !(--mem->mmap_count)) {
+    munmap ((void *) mem->data, mem->mmap_size);
+    mem->data = NULL;
+    mem->mmap_size = 0;
+    mem->mmapping_flags = 0;
+    GST_DEBUG ("%p: fd %d unmapped", mem, mem->fd);
+  }
+  g_mutex_unlock (&mem->lock);
+}
+
+static GstMemory *
+gst_dmabuf_mem_share (GstMemory * gmem, gssize offset, gssize size)
+{
+  GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
+  GstDmaBufMemory *sub;
+  GstMemory *parent;
+
+  GST_DEBUG ("%p: share %" G_GSSIZE_FORMAT " %" G_GSIZE_FORMAT, mem, offset,
+      size);
+
+  /* find the real parent */
+  if ((parent = mem->mem.parent) == NULL)
+    parent = (GstMemory *) mem;
+
+  if (size == -1)
+    size = gmem->maxsize - offset;
+
+  sub = g_slice_new0 (GstDmaBufMemory);
+  /* the shared memory is always readonly */
+  gst_memory_init (GST_MEMORY_CAST (sub), GST_MINI_OBJECT_FLAGS (parent) |
+      GST_MINI_OBJECT_FLAG_LOCK_READONLY, mem->mem.allocator, parent,
+      mem->mem.maxsize, mem->mem.align, mem->mem.offset + offset, size);
+
+  sub->fd = dup (mem->fd);
+  g_mutex_init (&sub->lock);
+
+  return GST_MEMORY_CAST (sub);
+}
+
+typedef struct
+{
+  GstAllocator parent;
+} GstDmaBufAllocator;
+
+typedef struct
+{
+  GstAllocatorClass parent_class;
+} GstDmaBufAllocatorClass;
+
+GType dmabuf_mem_allocator_get_type (void);
+G_DEFINE_TYPE (GstDmaBufAllocator, dmabuf_mem_allocator, GST_TYPE_ALLOCATOR);
+
+#define GST_TYPE_DMABUF_ALLOCATOR   (dmabuf_mem_allocator_get_type())
+#define GST_IS_DMABUF_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DMABUF_ALLOCATOR))
+
+static void
+dmabuf_mem_allocator_class_init (GstDmaBufAllocatorClass * klass)
+{
+  GstAllocatorClass *allocator_class;
+
+  allocator_class = (GstAllocatorClass *) klass;
+
+  allocator_class->alloc = NULL;
+  allocator_class->free = gst_dmabuf_allocator_free;
+}
+
+static void
+dmabuf_mem_allocator_init (GstDmaBufAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  alloc->mem_type = ALLOCATOR_NAME;
+  alloc->mem_map = gst_dmabuf_mem_map;
+  alloc->mem_unmap = gst_dmabuf_mem_unmap;
+  alloc->mem_share = gst_dmabuf_mem_share;
+  /* Use the default, fallback copy function */
+
+  GST_OBJECT_FLAG_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
+}
+
+static void
+gst_dmabuf_mem_init (void)
+{
+  GstAllocator *allocator =
+      g_object_new (dmabuf_mem_allocator_get_type (), NULL);
+  gst_allocator_register (ALLOCATOR_NAME, allocator);
+
+  GST_DEBUG_CATEGORY_INIT (dmabuf_debug, "dmabuf", 0, "dmabuf memory");
+}
+
+/**
+ * gst_dmabuf_allocator_obtain:
+ *
+ * Return a dmabuf allocator.
+ *
+ * Returns: (transfer full): a dmabuf allocator, or NULL if the allocator
+ *    isn't available. Use gst_object_unref() to release the allocator after
+ *    usage
+ *
+ * Since: 1.2
+ */
+GstAllocator *
+gst_dmabuf_allocator_obtain (void)
+{
+  static GOnce dmabuf_allocator_once = G_ONCE_INIT;
+  GstAllocator *allocator;
+
+  g_once (&dmabuf_allocator_once, (GThreadFunc) gst_dmabuf_mem_init, NULL);
+
+  allocator = gst_allocator_find (ALLOCATOR_NAME);
+  if (!allocator)
+    GST_WARNING ("No allocator named %s found", ALLOCATOR_NAME);
+  return allocator;
+}
+
+/**
+ * gst_dmabuf_allocator_alloc:
+ * @allocator: (allow-none): allocator to be used for this memory
+ * @fd: dmabuf file descriptor
+ * @size: memory size
+ *
+ * Return a %GstMemory that wraps a dmabuf file descriptor.
+ *
+ * Returns: (transfer full): a GstMemory based on @allocator.
+ * When the buffer will be released dmabuf allocator will close the @fd.
+ * The memory is only mmapped on gst_buffer_mmap() request.
+ *
+ * Since: 1.2
+ */
+GstMemory *
+gst_dmabuf_allocator_alloc (GstAllocator * allocator, gint fd, gsize size)
+{
+  GstDmaBufMemory *mem;
+
+  if (!allocator) {
+    allocator = gst_dmabuf_allocator_obtain ();
+  }
+
+  if (!GST_IS_DMABUF_ALLOCATOR (allocator)) {
+    GST_WARNING ("it isn't the correct allocator for dmabuf");
+    return NULL;
+  }
+
+  GST_DEBUG ("alloc from allocator %p", allocator);
+
+  mem = g_slice_new0 (GstDmaBufMemory);
+
+  gst_memory_init (GST_MEMORY_CAST (mem), 0, allocator, NULL, size, 0, 0, size);
+
+  mem->fd = fd;
+  g_mutex_init (&mem->lock);
+
+  GST_DEBUG ("%p: fd: %d size %" G_GSIZE_FORMAT, mem, mem->fd,
+      mem->mem.maxsize);
+
+  return (GstMemory *) mem;
+}
+
+/**
+ * gst_dmabuf_memory_get_fd:
+ * @mem: the memory to get the file descriptor
+ *
+ * Return the file descriptor associated with @mem.
+ *
+ * Returns: the file descriptor associated with the memory, or -1
+ *
+ * Since: 1.2
+ */
+gint
+gst_dmabuf_memory_get_fd (GstMemory * mem)
+{
+  GstDmaBufMemory *dbmem = (GstDmaBufMemory *) mem;
+
+  g_return_val_if_fail (gst_is_dmabuf_memory (mem), -1);
+
+  return dbmem->fd;
+}
+
+/**
+ * gst_is_dmabuf_memory:
+ * @mem: the memory to be check
+ *
+ * Check if @mem is dmabuf memory.
+ *
+ * Returns: %TRUE if @mem is dmabuf memory, otherwise %FALSE
+ *
+ * Since: 1.2
+ */
+gboolean
+gst_is_dmabuf_memory (GstMemory * mem)
+{
+  g_return_val_if_fail (mem != NULL, FALSE);
+
+  return g_strcmp0 (mem->allocator->mem_type, ALLOCATOR_NAME) == 0;
+}
+
+#else /* !HAVE_MMAP */
+
+GstAllocator *
+gst_dmabuf_allocator_obtain (void)
+{
+  return NULL;
+}
+
+GstMemory *
+gst_dmabuf_allocator_alloc (GstAllocator * allocator, gint fd, gsize size)
+{
+  return NULL;
+}
+
+gint
+gst_dmabuf_memory_get_fd (GstMemory * mem)
+{
+  return -1;
+}
+
+gboolean
+gst_is_dmabuf_memory (GstMemory * mem)
+{
+  return FALSE;
+}
+
+#endif /* HAVE_MMAP */
diff --git a/gst-libs/gst/allocators/gstdmabuf.h b/gst-libs/gst/allocators/gstdmabuf.h
new file mode 100644
index 0000000..1db233c
--- /dev/null
+++ b/gst-libs/gst/allocators/gstdmabuf.h
@@ -0,0 +1,34 @@
+/* GStreamer dmabuf allocator
+ * Copyright (C) 2013 Linaro SA
+ * Author: Benjamin Gaignard <benjamin.gaignard@linaro.org> for Linaro.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_DMABUF_H__
+#define __GST_DMABUF_H__
+
+#include <gst/gst.h>
+
+GstAllocator * gst_dmabuf_allocator_obtain (void);
+
+GstMemory    * gst_dmabuf_allocator_alloc (GstAllocator * allocator, gint fd, gsize size);
+
+gint           gst_dmabuf_memory_get_fd (GstMemory * mem);
+
+gboolean       gst_is_dmabuf_memory (GstMemory * mem);
+
+#endif /* __GST_DMABUF_H__ */
diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
index dbce9cf..e89057a 100644
--- a/gst-libs/gst/app/Makefile.am
+++ b/gst-libs/gst/app/Makefile.am
@@ -22,6 +22,7 @@
 
 libgstapp_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/app
 libgstapp_@GST_API_VERSION@include_HEADERS = \
+	app.h \
 	gstappsrc.h \
 	gstappsink.h
 
@@ -35,16 +36,15 @@
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstapp_@GST_API_VERSION@include_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstapp_@GST_API_VERSION@_la_SOURCES))
 gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstapp_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/app/%',$(libgstapp_@GST_API_VERSION@include_HEADERS))
 
 GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstApp \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/app/app.h" \
 		-I$(top_srcdir)/gst-libs \
 		-I$(top_builddir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/app/Makefile.in b/gst-libs/gst/app/Makefile.in
index cdd98c3..af6f3d1 100644
--- a/gst-libs/gst/app/Makefile.in
+++ b/gst-libs/gst/app/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -26,23 +25,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -62,9 +89,10 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(libgstapp_@GST_API_VERSION@include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gst-glib-gen.mak
+DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstapp_@GST_API_VERSION@include_HEADERS)
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/app
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -72,7 +100,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -155,10 +182,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstapp_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstapp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstapp_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -171,20 +211,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES) \
 	$(nodist_libgstapp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES)
@@ -195,8 +231,7 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstapp_@GST_API_VERSION@include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -507,6 +542,7 @@
 libgstapp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 libgstapp_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/app
 libgstapp_@GST_API_VERSION@include_HEADERS = \
+	app.h \
 	gstappsrc.h \
 	gstappsink.h
 
@@ -518,7 +554,6 @@
 @HAVE_INTROSPECTION_TRUE@	$(libgstapp_@GST_API_VERSION@_la_SOURCES)) \
 @HAVE_INTROSPECTION_TRUE@	$(patsubst %,$(builddir)/%, \
 @HAVE_INTROSPECTION_TRUE@	$(nodist_libgstapp_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/app/%',$(libgstapp_@GST_API_VERSION@include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -562,6 +597,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -588,12 +624,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstapp-@GST_API_VERSION@.la: $(libgstapp_@GST_API_VERSION@_la_OBJECTS) $(libgstapp_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstapp_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstapp_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstapp_@GST_API_VERSION@_la_OBJECTS) $(libgstapp_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -717,58 +756,12 @@
 	@list='$(libgstapp_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstapp_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstapp_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ctags CTAGS:
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+cscope cscopelist:
 
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -849,8 +842,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -918,10 +910,10 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-girDATA \
 	install-html install-html-am install-info install-info-am \
@@ -932,7 +924,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstapp_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
@@ -976,12 +968,12 @@
 
 @HAVE_INTROSPECTION_TRUE@GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstApp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/app/app.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/app/app.h b/gst-libs/gst/app/app.h
new file mode 100644
index 0000000..e83dfc7
--- /dev/null
+++ b/gst-libs/gst/app/app.h
@@ -0,0 +1,28 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstapp.h: single include header for gst-app library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_APP_H__
+#define __GST_APP_H__
+
+#include <gst/app/gstappsrc.h>
+#include <gst/app/gstappsink.h>
+
+#endif /* __GST_APP_H__ */
diff --git a/gst-libs/gst/app/gstappsink.c b/gst-libs/gst/app/gstappsink.c
index fe915d0..be6237f 100644
--- a/gst-libs/gst/app/gstappsink.c
+++ b/gst-libs/gst/app/gstappsink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstappsink
@@ -196,7 +196,7 @@
 
   g_object_class_install_property (gobject_class, PROP_EMIT_SIGNALS,
       g_param_spec_boolean ("emit-signals", "Emit signals",
-          "Emit new-preroll, new-buffer and new-buffer-list signals",
+          "Emit new-preroll and new-sample signals",
           DEFAULT_PROP_EMIT_SIGNALS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
diff --git a/gst-libs/gst/app/gstappsink.h b/gst-libs/gst/app/gstappsink.h
index c1161f0..e7b91fd 100644
--- a/gst-libs/gst/app/gstappsink.h
+++ b/gst-libs/gst/app/gstappsink.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_APP_SINK_H_
diff --git a/gst-libs/gst/app/gstappsrc.c b/gst-libs/gst/app/gstappsrc.c
index 0f41080..e8aa4f0 100644
--- a/gst-libs/gst/app/gstappsrc.c
+++ b/gst-libs/gst/app/gstappsrc.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstappsrc
@@ -746,6 +746,7 @@
   priv->flushing = TRUE;
   priv->started = FALSE;
   gst_app_src_flush_queued (appsrc);
+  g_cond_broadcast (&priv->cond);
   g_mutex_unlock (&priv->mutex);
 
   return TRUE;
@@ -1008,15 +1009,16 @@
     if (!g_queue_is_empty (priv->queue)) {
       guint buf_size;
 
-      *buf = g_queue_pop_head (priv->queue);
-      buf_size = gst_buffer_get_size (*buf);
-
-      GST_DEBUG_OBJECT (appsrc, "we have buffer %p of size %u", *buf, buf_size);
       if (priv->new_caps) {
         gst_app_src_do_negotiate (bsrc);
         priv->new_caps = FALSE;
       }
 
+      *buf = g_queue_pop_head (priv->queue);
+      buf_size = gst_buffer_get_size (*buf);
+
+      GST_DEBUG_OBJECT (appsrc, "we have buffer %p of size %u", *buf, buf_size);
+
       priv->queued_bytes -= buf_size;
 
       /* only update the offset when in random_access mode */
diff --git a/gst-libs/gst/app/gstappsrc.h b/gst-libs/gst/app/gstappsrc.h
index 417a56d..1194f37 100644
--- a/gst-libs/gst/app/gstappsrc.h
+++ b/gst-libs/gst/app/gstappsrc.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_APP_SRC_H_
diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index 077dd53..0e67b9b 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
@@ -82,25 +82,27 @@
 gir_headers+=$(patsubst %,$(builddir)/%, $(built_headers))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstaudio_@GST_API_VERSION@_la_SOURCES))
 gir_sources+=$(patsubst %,$(builddir)/%, $(built_sources))
-gir_cincludes=$(patsubst %,--c-include='gst/audio/%',$(libgstaudio_@GST_API_VERSION@include_HEADERS))
-gir_cincludes+=$(patsubst %,--c-include='gst/audio/%',$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS))
 
 GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstAudio \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
 		--strip-prefix=Gst \
 		-I$(top_srcdir)/gst-libs \
 		-I$(top_builddir)/gst-libs \
-		$(gir_cincludes) \
+		--c-include "gst/audio/audio.h" \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-		--library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+		--add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
 		--library=libgstaudio-@GST_API_VERSION@.la \
+		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
+		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
+		--library-path="$(top_builddir)/gst-libs/gst/tag/" \
 		--include=Gst-@GST_API_VERSION@ \
 		--include=GstBase-@GST_API_VERSION@ \
+		--include=GstTag-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
 		--pkg gstreamer-@GST_API_VERSION@ \
 		--pkg gstreamer-base-@GST_API_VERSION@ \
@@ -124,6 +126,7 @@
 		$(INTROSPECTION_COMPILER) \
 		--includedir=$(srcdir) \
 		--includedir=$(builddir) \
+		--includedir="$(top_builddir)/gst-libs/gst/tag/" \
 		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
 		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
diff --git a/gst-libs/gst/audio/Makefile.in b/gst-libs/gst/audio/Makefile.in
index 23b2ef1..5150e0c 100644
--- a/gst-libs/gst/audio/Makefile.in
+++ b/gst-libs/gst/audio/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -48,23 +47,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,10 +111,10 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(libgstaudio_@GST_API_VERSION@include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gst-glib-gen.mak \
-	$(top_srcdir)/common/orc.mak TODO
+DIST_COMMON = $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/common/gst-glib-gen.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
+	$(libgstaudio_@GST_API_VERSION@include_HEADERS) TODO
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/audio
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -95,7 +122,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -199,10 +225,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudio_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudio_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -215,20 +254,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaudio_@GST_API_VERSION@_la_SOURCES) \
 	$(nodist_libgstaudio_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstaudio_@GST_API_VERSION@_la_SOURCES)
@@ -240,8 +275,7 @@
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstaudio_@GST_API_VERSION@include_HEADERS) \
 	$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -623,10 +657,6 @@
 @HAVE_INTROSPECTION_TRUE@	$(libgstaudio_@GST_API_VERSION@_la_SOURCES)) \
 @HAVE_INTROSPECTION_TRUE@	$(patsubst %,$(builddir)/%, \
 @HAVE_INTROSPECTION_TRUE@	$(built_sources))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/audio/%',$(libgstaudio_@GST_API_VERSION@include_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@	$(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/audio/%',$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -670,6 +700,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -696,12 +727,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudio-@GST_API_VERSION@.la: $(libgstaudio_@GST_API_VERSION@_la_OBJECTS) $(libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudio_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstaudio_@GST_API_VERSION@_la_OBJECTS) $(libgstaudio_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -974,58 +1008,12 @@
 	@list='$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstaudio_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ctags CTAGS:
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+cscope cscopelist:
 
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1109,8 +1097,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -1180,10 +1167,10 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool clean-local ctags dist-hook \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
+	ctags-am dist-hook distclean distclean-compile \
+	distclean-generic distclean-libtool distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-girDATA install-html install-html-am \
@@ -1196,7 +1183,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstaudio_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstaudio_@GST_API_VERSION@includeHEADERS \
@@ -1277,20 +1264,24 @@
 
 @HAVE_INTROSPECTION_TRUE@GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstAudio \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/audio/audio.h" \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
 @HAVE_INTROSPECTION_TRUE@		--library=libgstaudio-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--library-path="$(top_builddir)/gst-libs/gst/tag/" \
 @HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--include=GstBase-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--include=GstTag-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
 @HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-base-@GST_API_VERSION@ \
@@ -1305,6 +1296,7 @@
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_COMPILER) \
 @HAVE_INTROSPECTION_TRUE@		--includedir=$(srcdir) \
 @HAVE_INTROSPECTION_TRUE@		--includedir=$(builddir) \
+@HAVE_INTROSPECTION_TRUE@		--includedir="$(top_builddir)/gst-libs/gst/tag/" \
 @HAVE_INTROSPECTION_TRUE@		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
diff --git a/gst-libs/gst/audio/audio-channels.c b/gst-libs/gst/audio/audio-channels.c
index c823c10..2f6f7a5 100644
--- a/gst-libs/gst/audio/audio-channels.c
+++ b/gst-libs/gst/audio/audio-channels.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstaudio
diff --git a/gst-libs/gst/audio/audio-channels.h b/gst-libs/gst/audio/audio-channels.h
index 7885140..932494c 100644
--- a/gst-libs/gst/audio/audio-channels.h
+++ b/gst-libs/gst/audio/audio-channels.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_CHANNELS_H__
diff --git a/gst-libs/gst/audio/audio-format.c b/gst-libs/gst/audio/audio-format.c
index 927bce5..25628dd 100644
--- a/gst-libs/gst/audio/audio-format.c
+++ b/gst-libs/gst/audio/audio-format.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/audio/audio-format.h b/gst-libs/gst/audio/audio-format.h
index e515d11..dbe6ded 100644
--- a/gst-libs/gst/audio/audio-format.h
+++ b/gst-libs/gst/audio/audio-format.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
@@ -273,9 +273,31 @@
 void           gst_audio_format_fill_silence     (const GstAudioFormatInfo *info,
                                                   gpointer dest, gsize length);
 
+/**
+ * GST_AUDIO_RATE_RANGE:
+ *
+ * Maximum range of allowed sample rates, for use in template caps strings.
+ */
 #define GST_AUDIO_RATE_RANGE "(int) [ 1, max ]"
+/**
+ * GST_AUDIO_CHANNELS_RANGE:
+ *
+ * Maximum range of allowed channels, for use in template caps strings.
+ */
 #define GST_AUDIO_CHANNELS_RANGE "(int) [ 1, max ]"
 
+/**
+ * GST_AUDIO_NE:
+ * @s: format string without endianness marker
+ *
+ * Turns audio format string @s into the format string for native endianness.
+ */
+/**
+ * GST_AUDIO_OE:
+ * @s: format string without endianness marker
+ *
+ * Turns audio format string @s into the format string for other endianness.
+ */
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 # define GST_AUDIO_NE(s) G_STRINGIFY(s)"LE"
 # define GST_AUDIO_OE(s) G_STRINGIFY(s)"BE"
@@ -284,6 +306,11 @@
 # define GST_AUDIO_OE(s) G_STRINGIFY(s)"LE"
 #endif
 
+/**
+ * GST_AUDIO_FORMATS_ALL:
+ *
+ * List of all audio formats, for use in template caps strings.
+ */
 #define GST_AUDIO_FORMATS_ALL " { S8, U8, " \
     "S16LE, S16BE, U16LE, U16BE, " \
     "S24_32LE, S24_32BE, U24_32LE, U24_32BE, " \
diff --git a/gst-libs/gst/audio/audio-info.c b/gst-libs/gst/audio/audio-info.c
index 916b496..2cae7e1 100644
--- a/gst-libs/gst/audio/audio-info.c
+++ b/gst-libs/gst/audio/audio-info.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstaudio
@@ -119,6 +119,7 @@
 
   g_return_if_fail (info != NULL);
   g_return_if_fail (format != GST_AUDIO_FORMAT_UNKNOWN);
+  g_return_if_fail (channels <= 64 || position == NULL);
 
   finfo = gst_audio_format_get_info (format);
 
@@ -233,7 +234,8 @@
       goto invalid_channel_mask;
   }
 
-  gst_audio_info_set_format (info, format, rate, channels, position);
+  gst_audio_info_set_format (info, format, rate, channels,
+      (channels > 64) ? NULL : position);
 
   return TRUE;
 
@@ -454,7 +456,47 @@
       break;
   }
 done:
-  GST_DEBUG ("ret=%d result %" G_GINT64_FORMAT, res, *dest_val);
+
+  GST_DEBUG ("ret=%d result %" G_GINT64_FORMAT, res, res ? *dest_val : -1);
 
   return res;
 }
+
+/**
+ * gst_audio_info_is_equal:
+ * @info: a #GstAudioInfo
+ * @other: a #GstAudioInfo
+ *
+ * Compares two #GstAudioInfo and returns whether they are equal or not
+ *
+ * Returns: %TRUE if @info and @other are equal, else %FALSE.
+ *
+ * Since: 1.2
+ *
+ */
+gboolean
+gst_audio_info_is_equal (const GstAudioInfo * info, const GstAudioInfo * other)
+{
+  if (info == other)
+    return TRUE;
+  if (info->finfo == NULL || other->finfo == NULL)
+    return FALSE;
+  if (GST_AUDIO_INFO_FORMAT (info) != GST_AUDIO_INFO_FORMAT (other))
+    return FALSE;
+  if (GST_AUDIO_INFO_FLAGS (info) != GST_AUDIO_INFO_FLAGS (other))
+    return FALSE;
+  if (GST_AUDIO_INFO_LAYOUT (info) != GST_AUDIO_INFO_LAYOUT (other))
+    return FALSE;
+  if (GST_AUDIO_INFO_RATE (info) != GST_AUDIO_INFO_RATE (other))
+    return FALSE;
+  if (GST_AUDIO_INFO_CHANNELS (info) != GST_AUDIO_INFO_CHANNELS (other))
+    return FALSE;
+  if (GST_AUDIO_INFO_CHANNELS (info) > 64)
+    return TRUE;
+  if (memcmp (info->position, other->position,
+          GST_AUDIO_INFO_CHANNELS (info) * sizeof (GstAudioChannelPosition)) !=
+      0)
+    return FALSE;
+
+  return TRUE;
+}
diff --git a/gst-libs/gst/audio/audio-info.h b/gst-libs/gst/audio/audio-info.h
index a124f32..41b9f2f 100644
--- a/gst-libs/gst/audio/audio-info.h
+++ b/gst-libs/gst/audio/audio-info.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_INFO_H__
@@ -128,6 +128,9 @@
                                            GstFormat src_fmt, gint64 src_val,
                                            GstFormat dest_fmt, gint64 * dest_val);
 
+gboolean       gst_audio_info_is_equal    (const GstAudioInfo *info,
+                                           const GstAudioInfo *other);
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_INFO_H__ */
diff --git a/gst-libs/gst/audio/audio.c b/gst-libs/gst/audio/audio.c
index d6935cd..a8047df 100644
--- a/gst-libs/gst/audio/audio.c
+++ b/gst-libs/gst/audio/audio.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstaudio
diff --git a/gst-libs/gst/audio/audio.h b/gst-libs/gst/audio/audio.h
index e97fc1a..d7a63c7 100644
--- a/gst-libs/gst/audio/audio.h
+++ b/gst-libs/gst/audio/audio.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_AUDIO_H__
@@ -62,4 +62,18 @@
 
 G_END_DECLS
 
+#include <gst/audio/gstaudioringbuffer.h>
+#include <gst/audio/gstaudioclock.h>
+#include <gst/audio/gstaudiofilter.h>
+#include <gst/audio/gstaudiocdsrc.h>
+#include <gst/audio/gstaudiodecoder.h>
+#include <gst/audio/gstaudioencoder.h>
+#include <gst/audio/gstaudiobasesink.h>
+#include <gst/audio/gstaudiobasesrc.h>
+#include <gst/audio/gstaudiometa.h>
+#include <gst/audio/gstaudiosink.h>
+#include <gst/audio/gstaudiosrc.h>
+#include <gst/audio/streamvolume.h>
+#include <gst/audio/gstaudioiec61937.h>
+
 #endif /* __GST_AUDIO_AUDIO_H__ */
diff --git a/gst-libs/gst/audio/gstaudiobasesink.c b/gst-libs/gst/audio/gstaudiobasesink.c
index d40c241..4062fd5 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.c
+++ b/gst-libs/gst/audio/gstaudiobasesink.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -34,6 +34,7 @@
 
 #include <string.h>
 
+#include <gst/audio/audio.h>
 #include "gstaudiobasesink.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_audio_base_sink_debug);
@@ -703,9 +704,9 @@
 GstClockTime
 gst_audio_base_sink_get_alignment_threshold (GstAudioBaseSink * sink)
 {
-  gint64 result;
+  GstClockTime result;
 
-  g_return_val_if_fail (GST_IS_AUDIO_BASE_SINK (sink), -1);
+  g_return_val_if_fail (GST_IS_AUDIO_BASE_SINK (sink), GST_CLOCK_TIME_NONE);
 
   GST_OBJECT_LOCK (sink);
   result = sink->priv->alignment_threshold;
diff --git a/gst-libs/gst/audio/gstaudiobasesink.h b/gst-libs/gst/audio/gstaudiobasesink.h
index d3e65e3..e6e0977 100644
--- a/gst-libs/gst/audio/gstaudiobasesink.h
+++ b/gst-libs/gst/audio/gstaudiobasesink.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* a base class for audio sinks.
diff --git a/gst-libs/gst/audio/gstaudiobasesrc.c b/gst-libs/gst/audio/gstaudiobasesrc.c
index efe4f20..621c405 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.c
+++ b/gst-libs/gst/audio/gstaudiobasesrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -38,6 +38,7 @@
 
 #include <string.h>
 
+#include <gst/audio/audio.h>
 #include "gstaudiobasesrc.h"
 
 #include "gst/gst-i18n-plugin.h"
@@ -129,7 +130,8 @@
 
 static GstStateChangeReturn gst_audio_base_src_change_state (GstElement *
     element, GstStateChange transition);
-
+static gboolean gst_audio_base_src_post_message (GstElement * element,
+    GstMessage * message);
 static GstClock *gst_audio_base_src_provide_clock (GstElement * elem);
 static GstClockTime gst_audio_base_src_get_time (GstClock * clock,
     GstAudioBaseSrc * src);
@@ -214,6 +216,8 @@
       GST_DEBUG_FUNCPTR (gst_audio_base_src_change_state);
   gstelement_class->provide_clock =
       GST_DEBUG_FUNCPTR (gst_audio_base_src_provide_clock);
+  gstelement_class->post_message =
+      GST_DEBUG_FUNCPTR (gst_audio_base_src_post_message);
 
   gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_audio_base_src_setcaps);
   gstbasesrc_class->event = GST_DEBUG_FUNCPTR (gst_audio_base_src_event);
@@ -764,6 +768,7 @@
   GstClockTime rb_timestamp = GST_CLOCK_TIME_NONE;
   GstClock *clock;
   gboolean first;
+  gboolean first_sample = src->next_sample == -1;
 
   ringbuffer = src->ringbuffer;
   spec = &ringbuffer->spec;
@@ -822,6 +827,10 @@
     if (read == samples)
       break;
 
+    if (g_atomic_int_get (&ringbuffer->state) ==
+        GST_AUDIO_RING_BUFFER_STATE_ERROR)
+      goto got_error;
+
     /* else something interrupted us and we wait for playing again. */
     GST_DEBUG_OBJECT (src, "wait playing");
     if (gst_base_src_wait_playing (bsrc) != GST_FLOW_OK)
@@ -860,7 +869,7 @@
   if (!(clock = GST_ELEMENT_CLOCK (src)))
     goto no_sync;
 
-  if (clock != src->clock) {
+  if (!GST_CLOCK_TIME_IS_VALID (rb_timestamp) && clock != src->clock) {
     /* we are slaved, check how to handle this */
     switch (src->priv->slave_method) {
       case GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE:
@@ -936,7 +945,7 @@
          *    the first time we are ran.
          */
         if ((segment_skew >= ringbuffer->spec.segtotal) ||
-            (last_read_segment == 0)) {
+            (last_read_segment == 0) || first_sample) {
           gint new_read_segment;
           gint segment_diff;
           guint64 new_sample;
@@ -1056,10 +1065,18 @@
   }
 stopped:
   {
+    gst_buffer_unmap (buf, &info);
     gst_buffer_unref (buf);
     GST_DEBUG_OBJECT (src, "ringbuffer stopped");
     return GST_FLOW_FLUSHING;
   }
+got_error:
+  {
+    gst_buffer_unmap (buf, &info);
+    gst_buffer_unref (buf);
+    GST_DEBUG_OBJECT (src, "ringbuffer was in error state, bailing out");
+    return GST_FLOW_ERROR;
+  }
 }
 
 /**
@@ -1177,3 +1194,30 @@
   }
 
 }
+
+static gboolean
+gst_audio_base_src_post_message (GstElement * element, GstMessage * message)
+{
+  GstAudioBaseSrc *src = GST_AUDIO_BASE_SRC (element);
+  gboolean ret;
+
+  if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR) {
+    GstAudioRingBuffer *ringbuffer;
+
+    GST_INFO_OBJECT (element, "subclass posted error");
+
+    ringbuffer = gst_object_ref (src->ringbuffer);
+
+    /* post message first before signalling the error to the ringbuffer, to
+     * make sure it ends up on the bus before the generic basesrc internal
+     * flow error message */
+    ret = GST_ELEMENT_CLASS (parent_class)->post_message (element, message);
+
+    g_atomic_int_set (&ringbuffer->state, GST_AUDIO_RING_BUFFER_STATE_ERROR);
+    GST_AUDIO_RING_BUFFER_SIGNAL (ringbuffer);
+    gst_object_unref (ringbuffer);
+  } else {
+    ret = GST_ELEMENT_CLASS (parent_class)->post_message (element, message);
+  }
+  return ret;
+}
diff --git a/gst-libs/gst/audio/gstaudiobasesrc.h b/gst-libs/gst/audio/gstaudiobasesrc.h
index 37be70e..c949a50 100644
--- a/gst-libs/gst/audio/gstaudiobasesrc.h
+++ b/gst-libs/gst/audio/gstaudiobasesrc.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* a base class for audio sources.
diff --git a/gst-libs/gst/audio/gstaudiocdsrc.c b/gst-libs/gst/audio/gstaudiocdsrc.c
index b698e96..716ea0a 100644
--- a/gst-libs/gst/audio/gstaudiocdsrc.c
+++ b/gst-libs/gst/audio/gstaudiocdsrc.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO:
diff --git a/gst-libs/gst/audio/gstaudiocdsrc.h b/gst-libs/gst/audio/gstaudiocdsrc.h
index 88c9628..1cadd89 100644
--- a/gst-libs/gst/audio/gstaudiocdsrc.h
+++ b/gst-libs/gst/audio/gstaudiocdsrc.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_CD_SRC_H__
diff --git a/gst-libs/gst/audio/gstaudioclock.c b/gst-libs/gst/audio/gstaudioclock.c
index eadb766..a996b2d 100644
--- a/gst-libs/gst/audio/gstaudioclock.c
+++ b/gst-libs/gst/audio/gstaudioclock.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/audio/gstaudioclock.h b/gst-libs/gst/audio/gstaudioclock.h
index 5709187..50792df 100644
--- a/gst-libs/gst/audio/gstaudioclock.h
+++ b/gst-libs/gst/audio/gstaudioclock.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_CLOCK_H__
diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
index 999bc77..c3e4af8 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.c
+++ b/gst-libs/gst/audio/gstaudiodecoder.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -534,6 +534,29 @@
 }
 
 static gboolean
+gst_audio_decoder_push_event (GstAudioDecoder * dec, GstEvent * event)
+{
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_SEGMENT:{
+      GstSegment seg;
+
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      gst_event_copy_segment (event, &seg);
+
+      GST_DEBUG_OBJECT (dec, "starting segment %" GST_SEGMENT_FORMAT, &seg);
+
+      dec->output_segment = seg;
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+      break;
+    }
+    default:
+      break;
+  }
+
+  return gst_pad_push_event (dec->srcpad, event);
+}
+
+static gboolean
 gst_audio_decoder_negotiate_default (GstAudioDecoder * dec)
 {
   GstAudioDecoderClass *klass;
@@ -552,7 +575,30 @@
 
   GST_DEBUG_OBJECT (dec, "setting src caps %" GST_PTR_FORMAT, caps);
 
-  res = gst_pad_set_caps (dec->srcpad, caps);
+  if (dec->priv->pending_events) {
+    GList *pending_events, *l;
+    gboolean set_caps = FALSE;
+
+    pending_events = dec->priv->pending_events;
+    dec->priv->pending_events = NULL;
+
+    GST_DEBUG_OBJECT (dec, "Pushing pending events");
+    for (l = pending_events; l; l = l->next) {
+      GstEvent *event = GST_EVENT (l->data);
+
+      if (GST_EVENT_TYPE (event) > GST_EVENT_CAPS && !set_caps) {
+        res = gst_pad_set_caps (dec->srcpad, caps);
+        set_caps = TRUE;
+      }
+      gst_audio_decoder_push_event (dec, l->data);
+    }
+    g_list_free (pending_events);
+    if (!set_caps) {
+      res = gst_pad_set_caps (dec->srcpad, caps);
+    }
+  } else {
+    res = gst_pad_set_caps (dec->srcpad, caps);
+  }
 
   if (!res)
     goto done;
@@ -917,29 +963,6 @@
   return ret;
 }
 
-static gboolean
-gst_audio_decoder_push_event (GstAudioDecoder * dec, GstEvent * event)
-{
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_SEGMENT:{
-      GstSegment seg;
-
-      GST_AUDIO_DECODER_STREAM_LOCK (dec);
-      gst_event_copy_segment (event, &seg);
-
-      GST_DEBUG_OBJECT (dec, "starting segment %" GST_SEGMENT_FORMAT, &seg);
-
-      dec->output_segment = seg;
-      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
-      break;
-    }
-    default:
-      break;
-  }
-
-  return gst_pad_push_event (dec->srcpad, event);
-}
-
 static void
 send_pending_events (GstAudioDecoder * dec)
 {
@@ -1010,7 +1033,10 @@
           (GST_AUDIO_INFO_IS_VALID (&ctx->info)
               && gst_pad_check_reconfigure (dec->srcpad)))) {
     if (!gst_audio_decoder_negotiate (dec)) {
-      ret = GST_FLOW_NOT_NEGOTIATED;
+      if (GST_PAD_IS_FLUSHING (dec->srcpad))
+        ret = GST_FLOW_FLUSHING;
+      else
+        ret = GST_FLOW_NOT_NEGOTIATED;
       goto exit;
     }
   }
@@ -1244,7 +1270,7 @@
         len = av;
       }
       /* track upstream ts, but do not get stuck if nothing new upstream */
-      ts = gst_adapter_prev_timestamp (priv->adapter, &distance);
+      ts = gst_adapter_prev_pts (priv->adapter, &distance);
       if (ts != priv->prev_ts || distance <= priv->prev_distance) {
         priv->prev_ts = ts;
         priv->prev_distance = distance;
@@ -1503,13 +1529,20 @@
   timestamp = GST_CLOCK_TIME_NONE;
   while (priv->queued) {
     GstBuffer *buf = GST_BUFFER_CAST (priv->queued->data);
+    GstClockTime duration;
+
+    duration = GST_BUFFER_DURATION (buf);
 
     /* duration should always be valid for raw audio */
-    g_assert (GST_BUFFER_DURATION_IS_VALID (buf));
+    g_assert (GST_CLOCK_TIME_IS_VALID (duration));
 
     /* interpolate (backward) if needed */
-    if (G_LIKELY (timestamp != -1))
-      timestamp -= GST_BUFFER_DURATION (buf);
+    if (G_LIKELY (timestamp != -1)) {
+      if (timestamp > duration)
+        timestamp -= duration;
+      else
+        timestamp = 0;
+    }
 
     if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
       GST_LOG_OBJECT (dec, "applying reverse interpolated ts %"
@@ -1665,6 +1698,13 @@
   gboolean ret;
 
   switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_STREAM_START:
+      GST_AUDIO_DECODER_STREAM_LOCK (dec);
+      gst_audio_decoder_drain (dec);
+      GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+      ret = gst_audio_decoder_push_event (dec, event);
+      break;
     case GST_EVENT_SEGMENT:
     {
       GstSegment seg;
@@ -2948,15 +2988,25 @@
   if (G_UNLIKELY (dec->priv->ctx.output_format_changed ||
           (GST_AUDIO_INFO_IS_VALID (&dec->priv->ctx.info)
               && gst_pad_check_reconfigure (dec->srcpad)))) {
-    if (!gst_audio_decoder_negotiate (dec))
-      goto done;
+    if (!gst_audio_decoder_negotiate (dec)) {
+      GST_INFO_OBJECT (dec, "Failed to negotiate, fallback allocation");
+      goto fallback;
+    }
   }
 
   buffer =
       gst_buffer_new_allocate (dec->priv->ctx.allocator, size,
       &dec->priv->ctx.params);
+  if (!buffer) {
+    GST_INFO_OBJECT (dec, "couldn't allocate output buffer");
+    goto fallback;
+  }
 
-done:
+  GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+  return buffer;
+fallback:
+  buffer = gst_buffer_new_allocate (NULL, size, NULL);
   GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
 
   return buffer;
diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h
index 27e1fab..1ae488f 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.h
+++ b/gst-libs/gst/audio/gstaudiodecoder.h
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef _GST_AUDIO_DECODER_H_
 #define _GST_AUDIO_DECODER_H_
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
index 1a2e50c..bc78b6b 100644
--- a/gst-libs/gst/audio/gstaudioencoder.c
+++ b/gst-libs/gst/audio/gstaudioencoder.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -62,9 +62,10 @@
  *     </para></listitem>
  *     <listitem><para>
  *       If codec processing results in encoded data, subclass should call
- *       @gst_audio_encoder_finish_frame to have encoded data pushed
- *       downstream.  Alternatively, it might also call to indicate dropped
- *       (non-encoded) samples.
+ *       gst_audio_encoder_finish_frame() to have encoded data pushed
+ *       downstream. Alternatively, it might also call
+ *       gst_audio_encoder_finish_frame() (with a NULL buffer and some number of
+ *       dropped samples) to indicate dropped (non-encoded) samples.
  *     </para></listitem>
  *     <listitem><para>
  *       Just prior to actually pushing a buffer downstream,
@@ -140,7 +141,7 @@
  *   </para></listitem>
  *   <listitem><para>
  *      Accept data in @handle_frame and provide encoded results to
- *      @gst_audio_encoder_finish_frame.
+ *      gst_audio_encoder_finish_frame().
  *   </para></listitem>
  * </itemizedlist>
  *
@@ -626,7 +627,10 @@
   if (G_UNLIKELY (ctx->output_caps_changed
           || gst_pad_check_reconfigure (enc->srcpad))) {
     if (!gst_audio_encoder_negotiate (enc)) {
-      ret = GST_FLOW_NOT_NEGOTIATED;
+      if (GST_PAD_IS_FLUSHING (enc->srcpad))
+        ret = GST_FLOW_FLUSHING;
+      else
+        ret = GST_FLOW_NOT_NEGOTIATED;
       goto exit;
     }
   }
@@ -679,7 +683,7 @@
     if (!enc->priv->perfect_ts) {
       guint64 ts, distance;
 
-      ts = gst_adapter_prev_timestamp (priv->adapter, &distance);
+      ts = gst_adapter_prev_pts (priv->adapter, &distance);
       g_assert (distance % ctx->info.bpf == 0);
       distance /= ctx->info.bpf;
       GST_LOG_OBJECT (enc, "%" G_GUINT64_FORMAT " samples past prev_ts %"
@@ -1099,7 +1103,6 @@
   }
 
   /* clip to segment */
-  /* NOTE: slightly painful linking -laudio only for this one ... */
   buffer = gst_audio_buffer_clip (buffer, &enc->input_segment, ctx->info.rate,
       ctx->info.bpf);
   if (G_UNLIKELY (!buffer)) {
@@ -1218,25 +1221,6 @@
 }
 
 static gboolean
-audio_info_is_equal (GstAudioInfo * from, GstAudioInfo * to)
-{
-  if (from == to)
-    return TRUE;
-  if (from->finfo == NULL || to->finfo == NULL)
-    return FALSE;
-  if (GST_AUDIO_INFO_FORMAT (from) != GST_AUDIO_INFO_FORMAT (to))
-    return FALSE;
-  if (GST_AUDIO_INFO_RATE (from) != GST_AUDIO_INFO_RATE (to))
-    return FALSE;
-  if (GST_AUDIO_INFO_CHANNELS (from) != GST_AUDIO_INFO_CHANNELS (to))
-    return FALSE;
-  if (GST_AUDIO_INFO_CHANNELS (from) > 64)
-    return TRUE;
-  return (memcmp (from->position, to->position,
-          GST_AUDIO_INFO_CHANNELS (from) * sizeof (to->position[0])) == 0);
-}
-
-static gboolean
 gst_audio_encoder_sink_setcaps (GstAudioEncoder * enc, GstCaps * caps)
 {
   GstAudioEncoderClass *klass;
@@ -1268,7 +1252,7 @@
   if (!gst_audio_info_from_caps (&state, caps))
     goto refuse_caps;
 
-  if (enc->priv->ctx.input_caps && audio_info_is_equal (&state, &ctx->info))
+  if (enc->priv->ctx.input_caps && gst_audio_info_is_equal (&state, &ctx->info))
     goto same_caps;
 
   /* adjust ts tracking to new sample rate */
@@ -2053,6 +2037,7 @@
   g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
 
   enc->priv->ctx.frame_samples_min = num;
+  GST_LOG_OBJECT (enc, "set to %d", num);
 }
 
 /**
@@ -2086,6 +2071,7 @@
   g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
 
   enc->priv->ctx.frame_samples_max = num;
+  GST_LOG_OBJECT (enc, "set to %d", num);
 }
 
 /**
@@ -2116,6 +2102,7 @@
   g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
 
   enc->priv->ctx.frame_max = num;
+  GST_LOG_OBJECT (enc, "set to %d", num);
 }
 
 /**
@@ -2145,6 +2132,7 @@
   g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
 
   enc->priv->ctx.lookahead = num;
+  GST_LOG_OBJECT (enc, "set to %d", num);
 }
 
 /**
@@ -2179,6 +2167,9 @@
   enc->priv->ctx.min_latency = min;
   enc->priv->ctx.max_latency = max;
   GST_OBJECT_UNLOCK (enc);
+
+  GST_LOG_OBJECT (enc, "set to %" GST_TIME_FORMAT "-%" GST_TIME_FORMAT,
+      GST_TIME_ARGS (min), GST_TIME_ARGS (max));
 }
 
 /**
@@ -2378,6 +2369,8 @@
   GST_OBJECT_LOCK (enc);
   enc->priv->tolerance = tolerance;
   GST_OBJECT_UNLOCK (enc);
+
+  GST_LOG_OBJECT (enc, "set to %" GST_TIME_FORMAT, GST_TIME_ARGS (tolerance));
 }
 
 /**
@@ -2551,7 +2544,31 @@
 
   GST_DEBUG_OBJECT (enc, "Setting srcpad caps %" GST_PTR_FORMAT, caps);
 
-  res = gst_pad_set_caps (enc->srcpad, caps);
+  if (enc->priv->pending_events) {
+    GList *pending_events, *l;
+    gboolean set_caps = FALSE;
+
+    pending_events = enc->priv->pending_events;
+    enc->priv->pending_events = NULL;
+
+    GST_DEBUG_OBJECT (enc, "Pushing pending events");
+    for (l = pending_events; l; l = l->next) {
+      GstEvent *event = GST_EVENT (l->data);
+
+      if (GST_EVENT_TYPE (event) > GST_EVENT_CAPS && !set_caps) {
+        res = gst_pad_set_caps (enc->srcpad, caps);
+        set_caps = TRUE;
+      }
+      gst_audio_encoder_push_event (enc, l->data);
+    }
+    g_list_free (pending_events);
+    if (!set_caps) {
+      res = gst_pad_set_caps (enc->srcpad, caps);
+    }
+  } else {
+    res = gst_pad_set_caps (enc->srcpad, caps);
+  }
+
   if (!res)
     goto done;
   enc->priv->ctx.output_caps_changed = FALSE;
@@ -2693,15 +2710,26 @@
 
   if (G_UNLIKELY (enc->priv->ctx.output_caps_changed || (enc->priv->ctx.caps
               && gst_pad_check_reconfigure (enc->srcpad)))) {
-    if (!gst_audio_encoder_negotiate (enc))
-      goto done;
+    if (!gst_audio_encoder_negotiate (enc)) {
+      GST_INFO_OBJECT (enc, "Failed to negotiate, fallback allocation");
+      goto fallback;
+    }
   }
 
   buffer =
       gst_buffer_new_allocate (enc->priv->ctx.allocator, size,
       &enc->priv->ctx.params);
+  if (!buffer) {
+    GST_INFO_OBJECT (enc, "couldn't allocate output buffer");
+    goto fallback;
+  }
 
-done:
+  GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+  return buffer;
+
+fallback:
+  buffer = gst_buffer_new_allocate (NULL, size, NULL);
   GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
 
   return buffer;
diff --git a/gst-libs/gst/audio/gstaudioencoder.h b/gst-libs/gst/audio/gstaudioencoder.h
index e4973af..846fce2 100644
--- a/gst-libs/gst/audio/gstaudioencoder.h
+++ b/gst-libs/gst/audio/gstaudioencoder.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_ENCODER_H__
diff --git a/gst-libs/gst/audio/gstaudiofilter.c b/gst-libs/gst/audio/gstaudiofilter.c
index 3e60c4a..71aed1b 100644
--- a/gst-libs/gst/audio/gstaudiofilter.c
+++ b/gst-libs/gst/audio/gstaudiofilter.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/audio/gstaudiofilter.h b/gst-libs/gst/audio/gstaudiofilter.h
index 0e5f925..3e0c5a3 100644
--- a/gst-libs/gst/audio/gstaudiofilter.h
+++ b/gst-libs/gst/audio/gstaudiofilter.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst-libs/gst/audio/gstaudioiec61937.c b/gst-libs/gst/audio/gstaudioiec61937.c
index cdd9805..b1ad046 100644
--- a/gst-libs/gst/audio/gstaudioiec61937.c
+++ b/gst-libs/gst/audio/gstaudioiec61937.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -33,11 +33,14 @@
 #endif
 
 #include <string.h>
+
+#include <gst/audio/audio.h>
 #include "gstaudioiec61937.h"
 
 #define IEC61937_HEADER_SIZE      8
 #define IEC61937_PAYLOAD_SIZE_AC3 (1536 * 4)
 #define IEC61937_PAYLOAD_SIZE_EAC3 (6144 * 4)
+#define IEC61937_PAYLOAD_SIZE_AAC (1024 * 4)
 
 static gint
 caps_get_int_field (const GstCaps * caps, const gchar * field)
@@ -121,6 +124,12 @@
       return frames * 4;
     }
 
+    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC:
+    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC:
+    {
+      return IEC61937_PAYLOAD_SIZE_AAC;
+    }
+
     default:
       return 0;
   }
@@ -285,6 +294,41 @@
       break;
     }
 
+    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC:
+      /* HACK. disguising MPEG4 AAC as MPEG2 AAC seems to work. */
+      /* TODO: set the right Pc,Pd for MPEG4 in accordance with IEC61937-6 */
+    case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC:
+    {
+      int num_rd_blks;
+
+      g_return_val_if_fail (src_n >= 7, FALSE);
+      num_rd_blks = (src[6] & 0x03) + 1;
+
+      /* Pc: bit 13-15 - stream number (0)
+       *     bit 11-12 - reserved (0)
+       *     bit  8-10 - reserved? (0) */
+      dst[four] = 0;
+      /* Pc: bit    7  - error bit (0)
+       *     bit  5-6  - reserved (0)
+       *     bit  0-4  - data type (07 = MPEG2 AAC ADTS
+       *                            19 = MPEG2 AAC ADTS half-rate LSF
+       *                            51 = MPEG2 AAC ADTS quater-rate LSF */
+      if (num_rd_blks == 1)
+        dst[five] = 0x07;
+      else if (num_rd_blks == 2)
+        dst[five] = 0x13;
+      else if (num_rd_blks == 4)
+        dst[five] = 0x33;
+      else
+        g_return_val_if_reached (FALSE);
+
+      /* Pd: bit 15-0  - frame size in bits */
+      tmp = GST_ROUND_UP_2 (src_n) * 8;
+      dst[six] = (guint8) (tmp >> 8);
+      dst[seven] = (guint8) (tmp & 0xff);
+      break;
+    }
+
     default:
       return FALSE;
   }
diff --git a/gst-libs/gst/audio/gstaudioiec61937.h b/gst-libs/gst/audio/gstaudioiec61937.h
index 1cdc646..7c766fd 100644
--- a/gst-libs/gst/audio/gstaudioiec61937.h
+++ b/gst-libs/gst/audio/gstaudioiec61937.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_IEC61937_H__
diff --git a/gst-libs/gst/audio/gstaudiometa.c b/gst-libs/gst/audio/gstaudiometa.c
index 5d6ccf0..f18e069 100644
--- a/gst-libs/gst/audio/gstaudiometa.c
+++ b/gst-libs/gst/audio/gstaudiometa.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/gst-libs/gst/audio/gstaudiometa.h b/gst-libs/gst/audio/gstaudiometa.h
index 822972b..a9ffd46 100644
--- a/gst-libs/gst/audio/gstaudiometa.h
+++ b/gst-libs/gst/audio/gstaudiometa.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_META_H__
diff --git a/gst-libs/gst/audio/gstaudiopack-dist.c b/gst-libs/gst/audio/gstaudiopack-dist.c
index abf2aad..f7ae993 100644
--- a/gst-libs/gst/audio/gstaudiopack-dist.c
+++ b/gst-libs/gst/audio/gstaudiopack-dist.c
@@ -223,7 +223,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -261,7 +265,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -304,6 +312,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 56, 11, 4, 4, 12, 1, 1, 14, 4, 0, 0,
+        0, 128, 14, 4, 24, 0, 0, 0, 20, 2, 20, 4, 150, 32, 4, 154,
+        33, 32, 124, 33, 33, 17, 132, 0, 33, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u8");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8);
@@ -322,6 +340,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -422,6 +441,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 56, 11, 4, 4, 12, 1, 1, 14, 4, 24, 0,
+        0, 0, 20, 2, 20, 4, 150, 32, 4, 154, 33, 32, 124, 0, 33, 16,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s8");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
@@ -437,6 +466,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -468,7 +498,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -503,7 +537,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -543,6 +581,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 16,
+        0, 0, 0, 14, 4, 0, 0, 0, 128, 20, 4, 154, 32, 4, 124, 32,
+        32, 16, 132, 0, 32, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u16");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
@@ -558,6 +606,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -652,6 +701,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 16,
+        0, 0, 0, 20, 4, 154, 32, 4, 124, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s16");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16);
@@ -664,6 +722,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -695,7 +754,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -733,7 +796,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -776,6 +843,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 95, 115, 119, 97, 112, 11, 4, 4, 12,
+        2, 2, 14, 4, 16, 0, 0, 0, 14, 4, 0, 0, 0, 128, 20, 2,
+        20, 4, 183, 32, 4, 154, 33, 32, 124, 33, 33, 16, 132, 0, 33, 17,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u16_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_swap);
@@ -794,6 +872,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -894,6 +973,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 95, 115, 119, 97, 112, 11, 4, 4, 12,
+        2, 2, 14, 4, 16, 0, 0, 0, 20, 2, 20, 4, 183, 32, 4, 154,
+        33, 32, 124, 0, 33, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s16_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_swap);
@@ -909,6 +998,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -940,7 +1030,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -972,7 +1066,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -1009,6 +1107,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 50, 52, 95, 51, 50, 11, 4, 4, 12, 4, 4,
+        14, 4, 8, 0, 0, 0, 14, 4, 0, 0, 0, 128, 20, 4, 124, 32,
+        4, 16, 132, 0, 32, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u24_32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u24_32");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u24_32);
@@ -1022,6 +1130,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1110,6 +1219,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 50, 52, 95, 51, 50, 11, 4, 4, 12, 4, 4,
+        14, 4, 8, 0, 0, 0, 124, 0, 4, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s24_32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s24_32");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s24_32);
@@ -1119,6 +1237,7 @@
 
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1150,7 +1269,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -1185,7 +1308,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -1225,6 +1352,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 50, 52, 95, 51, 50, 95, 115, 119, 97, 112, 11,
+        4, 4, 12, 4, 4, 14, 4, 8, 0, 0, 0, 14, 4, 0, 0, 0,
+        128, 20, 4, 184, 32, 4, 124, 32, 32, 16, 132, 0, 32, 17, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u24_32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u24_32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u24_32_swap);
@@ -1240,6 +1378,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1334,6 +1473,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 50, 52, 95, 51, 50, 95, 115, 119, 97, 112, 11,
+        4, 4, 12, 4, 4, 14, 4, 8, 0, 0, 0, 20, 4, 184, 32, 4,
+        124, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s24_32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s24_32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s24_32_swap);
@@ -1346,6 +1495,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1377,7 +1527,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var32;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
   orc_union32 var34;
 
   ptr0 = (orc_union32 *) d1;
@@ -1406,7 +1560,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var32;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
   orc_union32 var34;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
@@ -1440,6 +1598,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 14, 4, 0,
+        0, 0, 128, 132, 0, 4, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u32");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u32);
@@ -1449,6 +1616,7 @@
 
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1480,7 +1648,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -1512,7 +1684,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -1549,6 +1725,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12,
+        4, 4, 14, 4, 0, 0, 0, 128, 20, 4, 184, 32, 4, 132, 0, 32,
+        16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_u32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u32_swap);
@@ -1561,6 +1747,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1649,6 +1836,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 51, 50, 11, 4, 4, 12, 4, 4, 112, 0, 4,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s32");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s32);
@@ -1657,6 +1853,7 @@
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1745,6 +1942,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12,
+        4, 4, 184, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_s32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_s32_swap);
@@ -1753,6 +1959,7 @@
 
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1849,6 +2056,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 102, 51, 50, 11, 8, 8, 12, 4, 4, 224, 0, 4,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_f32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_f32");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_f32);
@@ -1857,6 +2073,7 @@
 
       orc_program_append_2 (p, "convfd", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1959,6 +2176,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 102, 51, 50, 95, 115, 119, 97, 112, 11, 8, 8, 12,
+        4, 4, 20, 4, 184, 32, 4, 224, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_f32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_f32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_f32_swap);
@@ -1970,6 +2196,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convfd", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2058,6 +2285,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 102, 54, 52, 11, 8, 8, 12, 8, 8, 137, 0, 4,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_f64);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_f64");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_f64);
@@ -2066,6 +2302,7 @@
 
       orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2154,6 +2391,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 102, 54, 52, 95, 115, 119, 97, 112, 11, 8, 8, 12,
+        8, 8, 186, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_f64_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_unpack_f64_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_f64_swap);
@@ -2162,6 +2408,7 @@
 
       orc_program_append_2 (p, "swapq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2193,7 +2440,11 @@
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_int8 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -2231,7 +2482,11 @@
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_int8 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -2274,6 +2529,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 56, 11, 1, 1, 12, 4, 4, 14, 4, 24, 0, 0, 0,
+        14, 4, 0, 0, 0, 128, 20, 4, 20, 2, 132, 32, 4, 17, 126, 32,
+        32, 16, 163, 33, 32, 157, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u8");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u8);
@@ -2292,6 +2557,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2392,6 +2658,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 56, 11, 1, 1, 12, 4, 4, 14, 4, 24, 0, 0, 0,
+        20, 4, 20, 2, 125, 32, 4, 16, 163, 33, 32, 157, 0, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s8");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s8);
@@ -2407,6 +2683,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2438,7 +2715,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union16 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -2473,7 +2754,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union16 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -2513,6 +2798,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 16, 0, 0,
+        0, 14, 4, 0, 0, 0, 128, 20, 4, 132, 32, 4, 17, 126, 32, 32,
+        16, 163, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u16");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16);
@@ -2528,6 +2823,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2622,6 +2918,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 16, 0, 0,
+        0, 20, 4, 125, 32, 4, 16, 163, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s16");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16);
@@ -2634,6 +2939,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2665,7 +2971,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union16 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -2703,7 +3013,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union16 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -2746,6 +3060,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 49, 54, 95, 115, 119, 97, 112, 11, 2, 2, 12, 4, 4,
+        14, 4, 0, 0, 0, 128, 14, 4, 16, 0, 0, 0, 20, 4, 20, 2,
+        132, 32, 4, 16, 126, 32, 32, 17, 163, 33, 32, 183, 0, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u16_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16_swap);
@@ -2764,6 +3089,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2864,6 +3190,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 49, 54, 95, 115, 119, 97, 112, 11, 2, 2, 12, 4, 4,
+        14, 4, 16, 0, 0, 0, 20, 4, 20, 2, 125, 32, 4, 16, 163, 33,
+        32, 183, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s16_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16_swap);
@@ -2879,6 +3215,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2910,7 +3247,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -2942,7 +3283,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -2979,6 +3324,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 50, 52, 95, 51, 50, 11, 4, 4, 12, 4, 4, 14, 4,
+        0, 0, 0, 128, 14, 4, 8, 0, 0, 0, 20, 4, 132, 32, 4, 16,
+        126, 0, 32, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u24_32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u24_32");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u24_32);
@@ -2992,6 +3347,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shrul", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3080,6 +3436,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 50, 52, 95, 51, 50, 11, 4, 4, 12, 4, 4, 14, 4,
+        8, 0, 0, 0, 125, 0, 4, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s24_32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s24_32");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s24_32);
@@ -3089,6 +3454,7 @@
 
       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3120,7 +3486,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -3155,7 +3525,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -3195,6 +3569,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 50, 52, 95, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4,
+        12, 4, 4, 14, 4, 0, 0, 0, 128, 14, 4, 8, 0, 0, 0, 20,
+        4, 132, 32, 4, 16, 126, 32, 32, 17, 184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u24_32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u24_32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u24_32_swap);
@@ -3210,6 +3594,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3304,6 +3689,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 50, 52, 95, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4,
+        12, 4, 4, 14, 4, 8, 0, 0, 0, 20, 4, 125, 32, 4, 16, 184,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s24_32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s24_32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s24_32_swap);
@@ -3316,6 +3711,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3347,7 +3743,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var32;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
   orc_union32 var34;
 
   ptr0 = (orc_union32 *) d1;
@@ -3376,7 +3776,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var32;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
   orc_union32 var34;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
@@ -3410,6 +3814,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0, 0,
+        128, 132, 0, 4, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u32");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u32);
@@ -3419,6 +3832,7 @@
 
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3507,6 +3921,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 51, 50, 11, 4, 4, 12, 4, 4, 112, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s32");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s32);
@@ -3515,6 +3938,7 @@
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3546,7 +3970,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var32;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
   orc_union32 var34;
 
   ptr0 = (orc_union32 *) d1;
@@ -3575,7 +4003,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var32;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
   orc_union32 var34;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
@@ -3609,6 +4041,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 117, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 4, 4,
+        14, 4, 0, 0, 0, 128, 132, 0, 4, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_u32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_u32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u32_swap);
@@ -3618,6 +4059,7 @@
 
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3706,6 +4148,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 115, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 4, 4,
+        184, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_s32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s32_swap);
@@ -3714,6 +4165,7 @@
 
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3814,6 +4266,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 102, 51, 50, 11, 4, 4, 12, 8, 8, 225, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_f32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_f32");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_f32);
@@ -3822,6 +4283,7 @@
 
       orc_program_append_2 (p, "convdf", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3928,6 +4390,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 102, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 8, 8,
+        20, 4, 225, 32, 4, 184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_f32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_f32_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_f32_swap);
@@ -3939,6 +4410,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4027,6 +4499,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 102, 54, 52, 11, 8, 8, 12, 8, 8, 137, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_f64);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_f64");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_f64);
@@ -4035,6 +4516,7 @@
 
       orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4123,6 +4605,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 102, 54, 52, 95, 115, 119, 97, 112, 11, 8, 8, 12, 8, 8,
+        186, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_pack_f64_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_orc_pack_f64_swap");
       orc_program_set_backup_function (p, _backup_audio_orc_pack_f64_swap);
@@ -4131,6 +4622,7 @@
 
       orc_program_append_2 (p, "swapq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst-libs/gst/audio/gstaudioringbuffer.c b/gst-libs/gst/audio/gstaudioringbuffer.c
index 62b4786..0494161 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.c
+++ b/gst-libs/gst/audio/gstaudioringbuffer.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -41,6 +41,7 @@
 
 #include <string.h>
 
+#include <gst/audio/audio.h>
 #include "gstaudioringbuffer.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_audio_ring_buffer_debug);
@@ -87,6 +88,8 @@
   ringbuffer->waiting = 0;
   ringbuffer->empty_seg = NULL;
   ringbuffer->flushing = TRUE;
+  ringbuffer->segbase = 0;
+  ringbuffer->segdone = 0;
 }
 
 static void
@@ -123,7 +126,9 @@
   "iec958",
   "ac3",
   "eac3",
-  "dts"
+  "dts",
+  "aac mpeg2",
+  "aac mpeg4"
 };
 #endif
 
@@ -175,9 +180,10 @@
   GST_DEBUG ("acquire ringbuffer: total segments: %d", spec->segtotal);
   GST_DEBUG ("acquire ringbuffer: latency segments: %d", spec->seglatency);
   GST_DEBUG ("acquire ringbuffer: segment size: %d bytes = %d samples",
-      spec->segsize, spec->segsize / bpf);
+      spec->segsize, (bpf != 0) ? (spec->segsize / bpf) : -1);
   GST_DEBUG ("acquire ringbuffer: buffer size: %d bytes = %d samples",
-      spec->segsize * spec->segtotal, spec->segsize * spec->segtotal / bpf);
+      spec->segsize * spec->segtotal,
+      (bpf != 0) ? (spec->segsize * spec->segtotal / bpf) : -1);
 }
 
 /**
@@ -262,6 +268,17 @@
 
     spec->type = GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG;
     info.bpf = 4;
+  } else if (g_str_equal (mimetype, "audio/mpeg") &&
+      gst_structure_get_int (structure, "mpegversion", &i) &&
+      (i == 2 || i == 4) &&
+      !g_strcmp0 (gst_structure_get_string (structure, "stream-format"),
+          "adts")) {
+    /* MPEG-2 AAC or MPEG-4 AAC */
+    if (!(gst_structure_get_int (structure, "rate", &info.rate)))
+      goto parse_error;
+    spec->type = (i == 2) ? GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC :
+        GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC;
+    info.bpf = 4;
   } else {
     goto parse_error;
   }
@@ -667,6 +684,8 @@
   if (G_UNLIKELY (!res))
     goto release_failed;
 
+  g_atomic_int_set (&buf->segdone, 0);
+  buf->segbase = 0;
   g_free (buf->empty_seg);
   buf->empty_seg = NULL;
   gst_caps_replace (&buf->spec.caps, NULL);
@@ -1469,6 +1488,8 @@
   writeseg = *sample / sps;
   sampleoff = (*sample % sps) * bpf;
 
+  GST_DEBUG_OBJECT (buf, "write %d : %d", in_samples, out_samples);
+
   /* write out all samples */
   while (*toprocess > 0) {
     gint avail;
@@ -1485,14 +1506,13 @@
       /* see how far away it is from the write segment */
       diff = writeseg - segdone;
 
-      GST_DEBUG
-          ("pointer at %d, write to %d-%d, diff %d, segtotal %d, segsize %d, base %d",
+      GST_DEBUG_OBJECT (buf,
+          "pointer at %d, write to %d-%d, diff %d, segtotal %d, segsize %d, base %d",
           segdone, writeseg, sampleoff, diff, segtotal, segsize, buf->segbase);
 
       /* segment too far ahead, writer too slow, we need to drop, hopefully UNLIKELY */
       if (G_UNLIKELY (diff < 0)) {
-        /* we need to drop one segment at a time, pretend we wrote a
-         * segment. */
+        /* we need to drop one segment at a time, pretend we wrote a segment. */
         skip = TRUE;
         break;
       }
diff --git a/gst-libs/gst/audio/gstaudioringbuffer.h b/gst-libs/gst/audio/gstaudioringbuffer.h
index e578aea..d60aa3a 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.h
+++ b/gst-libs/gst/audio/gstaudioringbuffer.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_RING_BUFFER_H__
@@ -57,13 +57,17 @@
  * @GST_AUDIO_RING_BUFFER_STATE_STOPPED: The ringbuffer is stopped
  * @GST_AUDIO_RING_BUFFER_STATE_PAUSED: The ringbuffer is paused
  * @GST_AUDIO_RING_BUFFER_STATE_STARTED: The ringbuffer is started
+ * @GST_AUDIO_RING_BUFFER_STATE_ERROR: The ringbuffer has encountered an
+ *     error after it has been started, e.g. because the device was
+ *     disconnected (Since 1.2)
  *
  * The state of the ringbuffer.
  */
 typedef enum {
   GST_AUDIO_RING_BUFFER_STATE_STOPPED,
   GST_AUDIO_RING_BUFFER_STATE_PAUSED,
-  GST_AUDIO_RING_BUFFER_STATE_STARTED
+  GST_AUDIO_RING_BUFFER_STATE_STARTED,
+  GST_AUDIO_RING_BUFFER_STATE_ERROR
 } GstAudioRingBufferState;
 
 /**
diff --git a/gst-libs/gst/audio/gstaudiosink.c b/gst-libs/gst/audio/gstaudiosink.c
index c68fa8c..1c318e6 100644
--- a/gst-libs/gst/audio/gstaudiosink.c
+++ b/gst-libs/gst/audio/gstaudiosink.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -69,6 +69,7 @@
 
 #include <string.h>
 
+#include <gst/audio/audio.h>
 #include "gstaudiosink.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_audio_sink_debug);
@@ -230,11 +231,12 @@
   if (writefunc == NULL)
     goto no_function;
 
-  g_value_init (&val, G_TYPE_POINTER);
-  g_value_set_pointer (&val, sink->thread);
   message = gst_message_new_stream_status (GST_OBJECT_CAST (buf),
       GST_STREAM_STATUS_TYPE_ENTER, GST_ELEMENT_CAST (sink));
+  g_value_init (&val, GST_TYPE_G_THREAD);
+  g_value_set_boxed (&val, sink->thread);
   gst_message_set_stream_status_object (message, &val);
+  g_value_unset (&val);
   GST_DEBUG_OBJECT (sink, "posting ENTER stream status");
   gst_element_post_message (GST_ELEMENT_CAST (sink), message);
 
@@ -306,7 +308,10 @@
     GST_DEBUG_OBJECT (sink, "stop running, exit thread");
     message = gst_message_new_stream_status (GST_OBJECT_CAST (buf),
         GST_STREAM_STATUS_TYPE_LEAVE, GST_ELEMENT_CAST (sink));
+    g_value_init (&val, GST_TYPE_G_THREAD);
+    g_value_set_boxed (&val, sink->thread);
     gst_message_set_stream_status_object (message, &val);
+    g_value_unset (&val);
     GST_DEBUG_OBJECT (sink, "posting LEAVE stream status");
     gst_element_post_message (GST_ELEMENT_CAST (sink), message);
     return;
diff --git a/gst-libs/gst/audio/gstaudiosink.h b/gst-libs/gst/audio/gstaudiosink.h
index f6fac61..d4fdac8 100644
--- a/gst-libs/gst/audio/gstaudiosink.h
+++ b/gst-libs/gst/audio/gstaudiosink.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_SINK_H__
diff --git a/gst-libs/gst/audio/gstaudiosrc.c b/gst-libs/gst/audio/gstaudiosrc.c
index eb5514f..fac7c9c 100644
--- a/gst-libs/gst/audio/gstaudiosrc.c
+++ b/gst-libs/gst/audio/gstaudiosrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -69,6 +69,7 @@
 
 #include <string.h>
 
+#include <gst/audio/audio.h>
 #include "gstaudiosrc.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_audio_src_debug);
@@ -216,12 +217,12 @@
   if ((readfunc = csrc->read) == NULL)
     goto no_function;
 
-  /* FIXME: maybe we should at least use a custom pointer type here? */
-  g_value_init (&val, G_TYPE_POINTER);
-  g_value_set_pointer (&val, src->thread);
   message = gst_message_new_stream_status (GST_OBJECT_CAST (buf),
       GST_STREAM_STATUS_TYPE_ENTER, GST_ELEMENT_CAST (src));
+  g_value_init (&val, GST_TYPE_G_THREAD);
+  g_value_set_boxed (&val, src->thread);
   gst_message_set_stream_status_object (message, &val);
+  g_value_unset (&val);
   GST_DEBUG_OBJECT (src, "posting ENTER stream status");
   gst_element_post_message (GST_ELEMENT_CAST (src), message);
 
@@ -291,7 +292,10 @@
     GST_DEBUG ("stop running, exit thread");
     message = gst_message_new_stream_status (GST_OBJECT_CAST (buf),
         GST_STREAM_STATUS_TYPE_LEAVE, GST_ELEMENT_CAST (src));
+    g_value_init (&val, GST_TYPE_G_THREAD);
+    g_value_set_boxed (&val, src->thread);
     gst_message_set_stream_status_object (message, &val);
+    g_value_unset (&val);
     GST_DEBUG_OBJECT (src, "posting LEAVE stream status");
     gst_element_post_message (GST_ELEMENT_CAST (src), message);
     return;
diff --git a/gst-libs/gst/audio/gstaudiosrc.h b/gst-libs/gst/audio/gstaudiosrc.h
index 47e6827..7737343 100644
--- a/gst-libs/gst/audio/gstaudiosrc.h
+++ b/gst-libs/gst/audio/gstaudiosrc.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_SRC_H__
diff --git a/gst-libs/gst/audio/streamvolume.c b/gst-libs/gst/audio/streamvolume.c
index 52ca64f..9b7bf82 100644
--- a/gst-libs/gst/audio/streamvolume.c
+++ b/gst-libs/gst/audio/streamvolume.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/audio/streamvolume.h b/gst-libs/gst/audio/streamvolume.h
index 8dfdc16..74cde1e 100644
--- a/gst-libs/gst/audio/streamvolume.h
+++ b/gst-libs/gst/audio/streamvolume.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_STREAM_VOLUME_H__
diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
index 94255c8..99c71ba 100644
--- a/gst-libs/gst/fft/Makefile.am
+++ b/gst-libs/gst/fft/Makefile.am
@@ -3,6 +3,7 @@
 libgstfft_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/fft
 
 libgstfft_@GST_API_VERSION@_include_HEADERS = \
+	fft.h \
 	gstfft.h \
 	gstffts16.h \
 	gstffts32.h \
@@ -39,7 +40,7 @@
 	kiss_fftr_f64.c
 
 libgstfft_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
-libgstfft_@GST_API_VERSION@_la_CFLAGS = $(GST_CFLAGS)
+libgstfft_@GST_API_VERSION@_la_CFLAGS =  $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstfft_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 EXTRA_DIST = kiss_version
@@ -49,16 +50,17 @@
 
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstfft_@GST_API_VERSION@_include_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstfft_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/fft/%',$(libgstfft_@GST_API_VERSION@_include_HEADERS))
 
 GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstFft \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/fft/fft.h" \
+		-I$(top_srcdir)/gst-libs \
+		-I$(top_builddir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 		--library=libgstfft-@GST_API_VERSION@.la \
 		--include=Gst-@GST_API_VERSION@ \
diff --git a/gst-libs/gst/fft/Makefile.in b/gst-libs/gst/fft/Makefile.in
index 471d954..ed3849d 100644
--- a/gst-libs/gst/fft/Makefile.in
+++ b/gst-libs/gst/fft/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,15 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/fft
-DIST_COMMON = $(libgstfft_@GST_API_VERSION@_include_HEADERS) \
-	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstfft_@GST_API_VERSION@_include_HEADERS) \
+	$(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -154,10 +182,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstfft_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstfft_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstfft_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -170,20 +211,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstfft_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstfft_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -194,6 +231,23 @@
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstfft_@GST_API_VERSION@_include_HEADERS) \
 	$(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -490,6 +544,7 @@
 lib_LTLIBRARIES = libgstfft-@GST_API_VERSION@.la
 libgstfft_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/fft
 libgstfft_@GST_API_VERSION@_include_HEADERS = \
+	fft.h \
 	gstfft.h \
 	gstffts16.h \
 	gstffts32.h \
@@ -526,13 +581,12 @@
 	kiss_fftr_f64.c
 
 libgstfft_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
-libgstfft_@GST_API_VERSION@_la_CFLAGS = $(GST_CFLAGS)
+libgstfft_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libgstfft_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 EXTRA_DIST = kiss_version
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstFft-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstfft_@GST_API_VERSION@_include_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstfft_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/fft/%',$(libgstfft_@GST_API_VERSION@_include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -575,6 +629,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -601,12 +656,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstfft-@GST_API_VERSION@.la: $(libgstfft_@GST_API_VERSION@_la_OBJECTS) $(libgstfft_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstfft_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstfft_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstfft_@GST_API_VERSION@_la_OBJECTS) $(libgstfft_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -811,26 +869,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstfft_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -842,15 +889,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -859,6 +902,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1008,21 +1066,21 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
 	install-libgstfft_@GST_API_VERSION@_includeHEADERS install-man \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstfft_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
@@ -1030,12 +1088,14 @@
 
 @HAVE_INTROSPECTION_TRUE@GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstFft \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/fft/fft.h" \
+@HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
+@HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--library=libgstfft-@GST_API_VERSION@.la \
 @HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
diff --git a/gst-libs/gst/fft/fft.h b/gst-libs/gst/fft/fft.h
new file mode 100644
index 0000000..fc78a42
--- /dev/null
+++ b/gst-libs/gst/fft/fft.h
@@ -0,0 +1,31 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstfft.h: single include header for gst-fft library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_FFT__H__
+#define __GST_FFT__H__
+
+#include <gst/fft/gstfft.h>
+#include <gst/fft/gstffts16.h>
+#include <gst/fft/gstffts32.h>
+#include <gst/fft/gstfftf32.h>
+#include <gst/fft/gstfftf64.h>
+
+#endif /* __GST_FFT__H__ */
diff --git a/gst-libs/gst/fft/gstfft.c b/gst-libs/gst/fft/gstfft.c
index b1708c7..24b7e6e 100644
--- a/gst-libs/gst/fft/gstfft.c
+++ b/gst-libs/gst/fft/gstfft.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -24,6 +24,9 @@
  * This library includes general definitions and functions, useful for
  * all typed FFT classes.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <glib.h>
 
diff --git a/gst-libs/gst/fft/gstfft.h b/gst-libs/gst/fft/gstfft.h
index 9071b1c..5f99de7 100644
--- a/gst-libs/gst/fft/gstfft.h
+++ b/gst-libs/gst/fft/gstfft.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <glib.h>
diff --git a/gst-libs/gst/fft/gstfftf32.c b/gst-libs/gst/fft/gstfftf32.c
index 89bfc39..c803d30 100644
--- a/gst-libs/gst/fft/gstfftf32.c
+++ b/gst-libs/gst/fft/gstfftf32.c
@@ -13,9 +13,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 
 #include <glib.h>
 #include <math.h>
diff --git a/gst-libs/gst/fft/gstfftf32.h b/gst-libs/gst/fft/gstfftf32.h
index 60bf98c..65d29ea 100644
--- a/gst-libs/gst/fft/gstfftf32.h
+++ b/gst-libs/gst/fft/gstfftf32.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FFT_F32_H__
diff --git a/gst-libs/gst/fft/gstfftf64.c b/gst-libs/gst/fft/gstfftf64.c
index 9a1d60c..33be8fd 100644
--- a/gst-libs/gst/fft/gstfftf64.c
+++ b/gst-libs/gst/fft/gstfftf64.c
@@ -13,9 +13,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 
 #include <glib.h>
 #include <math.h>
diff --git a/gst-libs/gst/fft/gstfftf64.h b/gst-libs/gst/fft/gstfftf64.h
index 782bd8b..6159a58 100644
--- a/gst-libs/gst/fft/gstfftf64.h
+++ b/gst-libs/gst/fft/gstfftf64.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FFT_F64_H__
diff --git a/gst-libs/gst/fft/gstffts16.c b/gst-libs/gst/fft/gstffts16.c
index 5aeea68..9d07749 100644
--- a/gst-libs/gst/fft/gstffts16.c
+++ b/gst-libs/gst/fft/gstffts16.c
@@ -13,9 +13,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 
 #include <glib.h>
 #include <math.h>
diff --git a/gst-libs/gst/fft/gstffts16.h b/gst-libs/gst/fft/gstffts16.h
index 4f94bb0..5ee79f2 100644
--- a/gst-libs/gst/fft/gstffts16.h
+++ b/gst-libs/gst/fft/gstffts16.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FFT_S16_H__
diff --git a/gst-libs/gst/fft/gstffts32.c b/gst-libs/gst/fft/gstffts32.c
index ec94843..597955f 100644
--- a/gst-libs/gst/fft/gstffts32.c
+++ b/gst-libs/gst/fft/gstffts32.c
@@ -13,9 +13,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 
 #include <glib.h>
 #include <math.h>
diff --git a/gst-libs/gst/fft/gstffts32.h b/gst-libs/gst/fft/gstffts32.h
index 99d7815..503643d 100644
--- a/gst-libs/gst/fft/gstffts32.h
+++ b/gst-libs/gst/fft/gstffts32.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_FFT_S32_H__
diff --git a/gst-libs/gst/fft/kiss_fft_f32.c b/gst-libs/gst/fft/kiss_fft_f32.c
index 693a899..45bdeb6 100644
--- a/gst-libs/gst/fft/kiss_fft_f32.c
+++ b/gst-libs/gst/fft/kiss_fft_f32.c
@@ -11,7 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "_kiss_fft_guts_f32.h"
 /* The guts header contains all the multiplication and addition macros that are defined for
diff --git a/gst-libs/gst/fft/kiss_fft_f64.c b/gst-libs/gst/fft/kiss_fft_f64.c
index b311711..da42aab 100644
--- a/gst-libs/gst/fft/kiss_fft_f64.c
+++ b/gst-libs/gst/fft/kiss_fft_f64.c
@@ -11,7 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "_kiss_fft_guts_f64.h"
 /* The guts header contains all the multiplication and addition macros that are defined for
diff --git a/gst-libs/gst/fft/kiss_fft_s16.c b/gst-libs/gst/fft/kiss_fft_s16.c
index ee2de4e..7334141 100644
--- a/gst-libs/gst/fft/kiss_fft_s16.c
+++ b/gst-libs/gst/fft/kiss_fft_s16.c
@@ -11,7 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "_kiss_fft_guts_s16.h"
 /* The guts header contains all the multiplication and addition macros that are defined for
diff --git a/gst-libs/gst/fft/kiss_fft_s32.c b/gst-libs/gst/fft/kiss_fft_s32.c
index 5acb2ed..ed8d69e 100644
--- a/gst-libs/gst/fft/kiss_fft_s32.c
+++ b/gst-libs/gst/fft/kiss_fft_s32.c
@@ -11,7 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "_kiss_fft_guts_s32.h"
 /* The guts header contains all the multiplication and addition macros that are defined for
diff --git a/gst-libs/gst/fft/kiss_fftr_f32.c b/gst-libs/gst/fft/kiss_fftr_f32.c
index 17d7004..2099811 100644
--- a/gst-libs/gst/fft/kiss_fftr_f32.c
+++ b/gst-libs/gst/fft/kiss_fftr_f32.c
@@ -11,6 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "kiss_fftr_f32.h"
 #include "_kiss_fft_guts_f32.h"
diff --git a/gst-libs/gst/fft/kiss_fftr_f64.c b/gst-libs/gst/fft/kiss_fftr_f64.c
index 2b9bf8e..0a6c282 100644
--- a/gst-libs/gst/fft/kiss_fftr_f64.c
+++ b/gst-libs/gst/fft/kiss_fftr_f64.c
@@ -11,6 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "kiss_fftr_f64.h"
 #include "_kiss_fft_guts_f64.h"
diff --git a/gst-libs/gst/fft/kiss_fftr_s16.c b/gst-libs/gst/fft/kiss_fftr_s16.c
index a824f29..ba1b743 100644
--- a/gst-libs/gst/fft/kiss_fftr_s16.c
+++ b/gst-libs/gst/fft/kiss_fftr_s16.c
@@ -11,6 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "kiss_fftr_s16.h"
 #include "_kiss_fft_guts_s16.h"
diff --git a/gst-libs/gst/fft/kiss_fftr_s32.c b/gst-libs/gst/fft/kiss_fftr_s32.c
index a1024b4..81e9393 100644
--- a/gst-libs/gst/fft/kiss_fftr_s32.c
+++ b/gst-libs/gst/fft/kiss_fftr_s32.c
@@ -11,6 +11,9 @@
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "kiss_fftr_s32.h"
 #include "_kiss_fft_guts_s32.h"
diff --git a/gst-libs/gst/gettext.h b/gst-libs/gst/gettext.h
index 727bdb0..bcaaea3 100644
--- a/gst-libs/gst/gettext.h
+++ b/gst-libs/gst/gettext.h
@@ -13,7 +13,7 @@
 
    You should have received a copy of the GNU Library General Public
    License along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
    USA.  */
 
 #ifndef _LIBGETTEXT_H
diff --git a/gst-libs/gst/glib-compat-private.h b/gst-libs/gst/glib-compat-private.h
index 51cb6a7..c7472c5 100644
--- a/gst-libs/gst/glib-compat-private.h
+++ b/gst-libs/gst/glib-compat-private.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GLIB_COMPAT_PRIVATE_H__
diff --git a/gst-libs/gst/gst-i18n-plugin.h b/gst-libs/gst/gst-i18n-plugin.h
index 2c37a61..4d92b90 100644
--- a/gst-libs/gst/gst-i18n-plugin.h
+++ b/gst-libs/gst/gst-i18n-plugin.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_I18N_PLUGIN_H__
diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
index dacbb02..c0f0091 100644
--- a/gst-libs/gst/pbutils/Makefile.am
+++ b/gst-libs/gst/pbutils/Makefile.am
@@ -68,29 +68,37 @@
 gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstpbutils_@GST_API_VERSION@include_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstpbutils_@GST_API_VERSION@_la_SOURCES))
 gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstpbutils_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/pbutils/%',$(libgstpbutils_@GST_API_VERSION@include_HEADERS))
-gir_cincludes+=$(patsubst %,--c-include='gst/pbutils/%',$(nodist_libgstpbutils_@GST_API_VERSION@include_HEADERS))
 
 GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstPbutils \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/pbutils/pbutils.h" \
 		-I$(top_srcdir)/gst-libs \
 		-I$(top_builddir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-		--library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
-		--library=$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
-		--library=$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+		--add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
+		--add-include-path="$(top_builddir)/gst-libs/gst/video/" \
+		--add-include-path="$(top_builddir)/gst-libs/gst/audio/" \
 		--library=libgstpbutils-@GST_API_VERSION@.la \
 		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
-		--library=gstreamer-@GST_API_VERSION@ \
+		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
+		--library-path="$(top_builddir)/gst-libs/gst/tag/" \
+		--library-path="$(top_builddir)/gst-libs/gst/video/" \
+		--library-path="$(top_builddir)/gst-libs/gst/audio/" \
 		--include=Gst-@GST_API_VERSION@ \
+		--include=GstTag-@GST_API_VERSION@ \
+		--include=GstVideo-@GST_API_VERSION@ \
+		--include=GstAudio-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
 		--pkg gstreamer-@GST_API_VERSION@ \
+		--pkg gstreamer-tag-@GST_API_VERSION@ \
+		--pkg gstreamer-video-@GST_API_VERSION@ \
+		--pkg gstreamer-audio-@GST_API_VERSION@ \
 		--pkg-export gstreamer-pbutils-@GST_API_VERSION@ \
 		--add-init-section="gst_init(NULL,NULL);" \
 		--output $@ \
@@ -112,6 +120,10 @@
 		--includedir=$(srcdir) \
 		--includedir=$(builddir) \
 		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+		--includedir="$(top_builddir)/gst-libs/gst/tag/" \
+		--includedir="$(top_builddir)/gst-libs/gst/video/" \
+		--includedir="$(top_builddir)/gst-libs/gst/audio/" \
 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
 
 CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/pbutils/Makefile.in b/gst-libs/gst/pbutils/Makefile.in
index d8cc399..5cb04da 100644
--- a/gst-libs/gst/pbutils/Makefile.in
+++ b/gst-libs/gst/pbutils/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -26,23 +25,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -62,10 +89,11 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(libgstpbutils_@GST_API_VERSION@include_HEADERS) \
-	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/gstpluginsbaseversion.h.in \
-	$(top_srcdir)/common/gst-glib-gen.mak
+DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/gstpluginsbaseversion.h.in $(top_srcdir)/depcomp \
+	$(libgstpbutils_@GST_API_VERSION@include_HEADERS) \
+	$(noinst_HEADERS)
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/pbutils
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -73,7 +101,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -167,10 +194,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstpbutils_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
 	--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstpbutils_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstpbutils_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -183,20 +223,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstpbutils_@GST_API_VERSION@_la_SOURCES) \
 	$(nodist_libgstpbutils_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstpbutils_@GST_API_VERSION@_la_SOURCES)
@@ -209,6 +245,23 @@
 HEADERS = $(libgstpbutils_@GST_API_VERSION@include_HEADERS) \
 	$(nodist_libgstpbutils_@GST_API_VERSION@include_HEADERS) \
 	$(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -573,10 +626,6 @@
 @HAVE_INTROSPECTION_TRUE@	$(libgstpbutils_@GST_API_VERSION@_la_SOURCES)) \
 @HAVE_INTROSPECTION_TRUE@	$(patsubst %,$(builddir)/%, \
 @HAVE_INTROSPECTION_TRUE@	$(nodist_libgstpbutils_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/pbutils/%',$(libgstpbutils_@GST_API_VERSION@include_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@	$(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/pbutils/%',$(nodist_libgstpbutils_@GST_API_VERSION@include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -622,6 +671,7 @@
 $(am__aclocal_m4_deps):
 gstpluginsbaseversion.h: $(top_builddir)/config.status $(srcdir)/gstpluginsbaseversion.h.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -648,12 +698,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstpbutils-@GST_API_VERSION@.la: $(libgstpbutils_@GST_API_VERSION@_la_OBJECTS) $(libgstpbutils_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstpbutils_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstpbutils_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstpbutils_@GST_API_VERSION@_la_OBJECTS) $(libgstpbutils_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -863,26 +916,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -894,15 +936,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -911,6 +949,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1066,14 +1119,14 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
 	install-libgstpbutils_@GST_API_VERSION@includeHEADERS \
 	install-man \
 	install-nodist_libgstpbutils_@GST_API_VERSION@includeHEADERS \
@@ -1082,7 +1135,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstpbutils_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstpbutils_@GST_API_VERSION@includeHEADERS \
@@ -1127,24 +1180,34 @@
 
 @HAVE_INTROSPECTION_TRUE@GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstPbutils \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/pbutils/pbutils.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
+@HAVE_INTROSPECTION_TRUE@		--add-include-path="$(top_builddir)/gst-libs/gst/video/" \
+@HAVE_INTROSPECTION_TRUE@		--add-include-path="$(top_builddir)/gst-libs/gst/audio/" \
 @HAVE_INTROSPECTION_TRUE@		--library=libgstpbutils-@GST_API_VERSION@.la \
 @HAVE_INTROSPECTION_TRUE@		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@		--library=gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--library-path="$(top_builddir)/gst-libs/gst/tag/" \
+@HAVE_INTROSPECTION_TRUE@		--library-path="$(top_builddir)/gst-libs/gst/video/" \
+@HAVE_INTROSPECTION_TRUE@		--library-path="$(top_builddir)/gst-libs/gst/audio/" \
 @HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--include=GstTag-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--include=GstVideo-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--include=GstAudio-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
 @HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-tag-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-video-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-audio-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-pbutils-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL,NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
@@ -1157,6 +1220,10 @@
 @HAVE_INTROSPECTION_TRUE@		--includedir=$(srcdir) \
 @HAVE_INTROSPECTION_TRUE@		--includedir=$(builddir) \
 @HAVE_INTROSPECTION_TRUE@		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@		--includedir="$(top_builddir)/gst-libs/gst/tag/" \
+@HAVE_INTROSPECTION_TRUE@		--includedir="$(top_builddir)/gst-libs/gst/video/" \
+@HAVE_INTROSPECTION_TRUE@		--includedir="$(top_builddir)/gst-libs/gst/audio/" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/pbutils/codec-utils.c b/gst-libs/gst/pbutils/codec-utils.c
index f8f0ad3..1d2ba26 100644
--- a/gst-libs/gst/pbutils/codec-utils.c
+++ b/gst-libs/gst/pbutils/codec-utils.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -452,6 +452,12 @@
     case 44:
       profile = "cavlc-4:4:4-intra";
       break;
+    case 118:
+      profile = "multiview-high";
+      break;
+    case 128:
+      profile = "stereo-high";
+      break;
     default:
       return NULL;
   }
@@ -484,7 +490,7 @@
 
   csf3 = (sps[1] & 0x10) >> 4;
 
-  if (sps[2] == 11 && csf3)
+  if ((sps[2] == 11 && csf3) || sps[2] == 9)
     return "1b";
   else if (sps[2] % 10 == 0)
     return digit_to_string (sps[2] / 10);
diff --git a/gst-libs/gst/pbutils/codec-utils.h b/gst-libs/gst/pbutils/codec-utils.h
index 7c2febf..d6a51cf 100644
--- a/gst-libs/gst/pbutils/codec-utils.h
+++ b/gst-libs/gst/pbutils/codec-utils.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PB_UTILS_CODEC_UTILS_H__
diff --git a/gst-libs/gst/pbutils/descriptions.c b/gst-libs/gst/pbutils/descriptions.c
index c3aa793..9591f59 100644
--- a/gst-libs/gst/pbutils/descriptions.c
+++ b/gst-libs/gst/pbutils/descriptions.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -52,244 +52,273 @@
 
 typedef enum
 {
-  FLAG_CONTAINER = (1 << 0),    /* format is a container format (muxed)             */
-  FLAG_SYSTEMSTREAM = (1 << 1)  /* match record only if caps have systemstream=true */
+  FLAG_SYSTEMSTREAM = (1 << 0), /* match record only if caps have systemstream=true   */
+  FLAG_CONTAINER = (1 << 1),    /* format is a container format (muxed)               */
+  FLAG_AUDIO = (1 << 2),        /* format is an audio format, or audio container/tag  */
+  FLAG_VIDEO = (1 << 3),        /* format is a video format, or video container/tag   */
+  FLAG_IMAGE = (1 << 4),        /* format is an image format, or image container/tag  */
+  FLAG_SUB = (1 << 5),          /* format is a subtitle format, or subtitle container */
+  FLAG_TAG = (1 << 6),          /* format is a tag/container                          */
+  FLAG_GENERIC = (1 << 7)       /* format is a generic container (e.g. multipart)     */
 } FormatFlags;
 
 typedef struct
 {
   const gchar *type;
   const gchar *desc;
-  FormatFlags flags;
+  FormatFlags flags:24;
+  gchar ext[5];                 /* file extension */
 } FormatInfo;
 
+#define AV_CONTAINER    (FLAG_CONTAINER | FLAG_AUDIO | FLAG_VIDEO)
+#define AVS_CONTAINER   (AV_CONTAINER | FLAG_SUB)
+#define AVI_CONTAINER   (AV_CONTAINER | FLAG_IMAGE)
+#define AVIS_CONTAINER  (AV_CONTAINER | FLAG_IMAGE | FLAG_SUB)
+#define AUDIO_CONTAINER (FLAG_CONTAINER | FLAG_AUDIO)
+#define VIDEO_CONTAINER (FLAG_CONTAINER | FLAG_VIDEO)
+#define AUDIO_TAG       (AUDIO_CONTAINER | FLAG_TAG)
+
 static const FormatInfo formats[] = {
   /* container/tag formats with static descriptions */
-  {"audio/ogg", "Ogg", FLAG_CONTAINER},
-  {"audio/webm", "WebM", FLAG_CONTAINER},
-  {"audio/x-matroska", "Matroska", FLAG_CONTAINER},
-  {"application/gxf", "General Exchange Format (GXF)", FLAG_CONTAINER},
-  {"application/ogg", "Ogg", FLAG_CONTAINER},
-  {"application/kate", "Ogg", FLAG_CONTAINER},
-  {"application/mxf", "Material eXchange Format (MXF)", FLAG_CONTAINER},
-  {"application/vnd.rn-realmedia", "Realmedia", FLAG_CONTAINER},
-  {"application/x-id3", N_("ID3 tag"), FLAG_CONTAINER},
-  {"application/x-ape", N_("APE tag"), FLAG_CONTAINER},
-  {"application/x-apetag", N_("APE tag"), FLAG_CONTAINER},
-  {"application/x-icy", N_("ICY internet radio"), FLAG_CONTAINER},
-  {"application/x-3gp", "3GP", FLAG_CONTAINER},
-  {"application/x-pn-realaudio", "RealAudio", FLAG_CONTAINER},
-  {"application/x-yuv4mpeg", "Y4M", FLAG_CONTAINER},
-  {"multipart/x-mixed-replace", "Multipart", FLAG_CONTAINER},
-  {"video/ogg", "Ogg", FLAG_CONTAINER},
-  {"video/x-fli", "FLI/FLC/FLX Animation", FLAG_CONTAINER},
-  {"video/x-flv", "Flash", FLAG_CONTAINER},
-  {"video/x-matroska", "Matroska", FLAG_CONTAINER},
-  {"video/x-matroska-3d", "Matroska", FLAG_CONTAINER},
-  {"video/webm", "WebM", FLAG_CONTAINER},
-  {"video/x-ms-asf", "Advanced Streaming Format (ASF)", FLAG_CONTAINER},
-  {"video/x-msvideo", "Audio Video Interleave (AVI)", FLAG_CONTAINER},
-  {"video/x-quicktime", "Quicktime", FLAG_CONTAINER},
-  {"video/quicktime", "Quicktime", FLAG_CONTAINER},
-  {"video/mj2", "Motion JPEG 2000", FLAG_CONTAINER},
+  /* FIXME: does anyone use oga in practice? */
+  {"audio/ogg", "Ogg", AUDIO_CONTAINER, "ogg"},
+  {"audio/webm", "WebM", AUDIO_CONTAINER, "webm"},
+  {"audio/x-matroska", "Matroska", AUDIO_CONTAINER, "mka"},
+  {"application/gxf", "General Exchange Format (GXF)", AVI_CONTAINER, "gxf"},
+  {"application/ogg", "Ogg", AVIS_CONTAINER, "ogg"},
+  {"application/kate", "Ogg", FLAG_CONTAINER | FLAG_SUB, "ogg"},
+  {"application/mxf", "Material eXchange Format (MXF)", AVIS_CONTAINER, "mxf"},
+  {"application/vnd.rn-realmedia", "Realmedia", AV_CONTAINER, "rm"},
+  {"application/x-id3", N_("ID3 tag"), AUDIO_TAG, ""},
+  {"application/x-ape", N_("APE tag"), AUDIO_TAG, ""},
+  {"application/x-apetag", N_("APE tag"), AUDIO_TAG, ""},
+  {"application/x-icy", N_("ICY internet radio"), AUDIO_TAG, ""},
+  {"application/x-3gp", "3GP", AV_CONTAINER, "3gp"},
+  {"application/x-pn-realaudio", "RealAudio", AUDIO_CONTAINER, "ra"},
+  {"application/x-yuv4mpeg", "Y4M", VIDEO_CONTAINER, "y4m"},
+  {"multipart/x-mixed-replace", "Multipart", FLAG_CONTAINER | FLAG_GENERIC, ""},
+  {"video/ogg", "Ogg", AVIS_CONTAINER, "ogv"},
+  {"video/x-fli", "FLI/FLC/FLX Animation", VIDEO_CONTAINER, "fli"},
+  {"video/x-flv", "Flash", AV_CONTAINER, "flv"},
+  {"video/x-matroska", "Matroska", AVIS_CONTAINER, "mkv"},
+  /* FIXME: does anyone use .mk3d in practice, rather than .mkv? */
+  {"video/x-matroska-3d", "Matroska", AVIS_CONTAINER, "mk3d"},
+  {"video/webm", "WebM", AVS_CONTAINER, "webm"},
+  {"video/x-ms-asf", "Advanced Streaming Format (ASF)", AVIS_CONTAINER, "asf"},
+  {"video/x-msvideo", "Audio Video Interleave (AVI)", AVIS_CONTAINER, "avi"},
+  {"video/x-quicktime", "Quicktime", AVIS_CONTAINER, "mov"},
+  {"video/quicktime", "Quicktime", AVIS_CONTAINER, "mov"},
+  {"video/mj2", "Motion JPEG 2000", AVIS_CONTAINER, "mj2"},
 
   /* audio formats with static descriptions */
-  {"audio/x-ac3", "AC-3 (ATSC A/52)", 0},
-  {"audio/ac3", "AC-3 (ATSC A/52)", 0},
-  {"audio/x-private-ac3", "DVD AC-3 (ATSC A/52)", 0},
-  {"audio/x-private1-ac3", "DVD AC-3 (ATSC A/52)", 0},
-  {"audio/x-alaw", "A-Law", 0},
-  {"audio/amr", "Adaptive Multi Rate (AMR)", 0},
-  {"audio/AMR", "Adaptive Multi Rate (AMR)", 0},
-  {"audio/AMR-WB", "Adaptive Multi Rate WideBand (AMR-WB)", 0},
-  {"audio/iLBC-sh", "Internet Low Bitrate Codec (iLBC)", 0},
-  {"audio/ms-gsm", "MS GSM", 0},
-  {"audio/qcelp", "QCELP", 0},
-  {"audio/aiff", "Audio Interchange File Format (AIFF)", 0},
-  {"audio/x-aiff", "Audio Interchange File Format (AIFF)", 0},
-  {"audio/x-alac", N_("Apple Lossless Audio (ALAC)"), 0},
-  {"audio/x-amr-nb-sh", "Adaptive Multi Rate NarrowBand (AMR-NB)", 0},
-  {"audio/x-amr-wb-sh", "Adaptive Multi Rate WideBand (AMR-WB)", 0},
-  {"audio/x-au", "Sun .au", 0},
-  {"audio/x-celt", "Constrained Energy Lapped Transform (CELT)", 0},
-  {"audio/x-cinepak", "Cinepak Audio", 0},
-  {"audio/x-dpcm", "DPCM", 0},
-  {"audio/x-dts", "DTS", 0},
-  {"audio/x-private1-dts", "DTS", 0},
-  {"audio/x-dv", "DV Audio", 0},
-  {"audio/x-eac3", "E-AC-3 (ATSC A/52B)", 0},
-  {"audio/x-flac", N_("Free Lossless Audio Codec (FLAC)"), 0},
-  {"audio/x-gsm", "GSM", 0},
-  {"audio/x-iec958", "S/PDIF IEC958", 0},       /* TODO: check description */
-  {"audio/x-iLBC", "Internet Low Bitrate Codec (iLBC)", 0},
-  {"audio/x-ircam", "Berkeley/IRCAM/CARL", 0},
-  {"audio/x-lpcm", "LPCM", 0},
-  {"audio/x-private1-lpcm", "DVD LPCM", 0},
-  {"audio/x-m4a", "MPEG-4 AAC", FLAG_CONTAINER},
-  {"audio/x-mod", "Module Music Format (MOD)", 0},
-  {"audio/x-mulaw", "Mu-Law", 0},
-  {"audio/x-musepack", "Musepack (MPC)", 0},
-  {"audio/x-nellymoser", "Nellymoser Asao", 0},
-  {"audio/x-nist", "Sphere NIST", 0},
-  {"audio/x-nsf", "Nintendo NSF", 0},
-  {"audio/x-opus", "Opus", 0},
-  {"audio/x-paris", "Ensoniq PARIS", 0},
-  {"audio/x-qdm", "QDesign Music (QDM)", 0},
-  {"audio/x-qdm2", "QDesign Music (QDM) 2", 0},
-  {"audio/x-ralf-mpeg4-generic", "Real Audio Lossless (RALF)", 0},
-  {"audio/x-sds", "SDS", 0},
-  {"audio/x-shorten", "Shorten Lossless", 0},
-  {"audio/x-sid", "Sid", 0},
-  {"audio/x-sipro", "Sipro/ACELP.NET Voice", 0},
-  {"audio/x-siren", "Siren", 0},
-  {"audio/x-spc", "SNES-SPC700 Sound File Data", 0},
-  {"audio/x-speex", "Speex", 0},
-  {"audio/x-svx", "Amiga IFF / SVX8 / SV16", 0},
-  {"audio/x-tta", N_("Lossless True Audio (TTA)"), 0},
-  {"audio/x-ttafile", N_("Lossless True Audio (TTA)"), 0},
-  {"audio/x-vnd.sony.atrac3", "Sony ATRAC3", 0},
-  {"audio/x-vorbis", "Vorbis", 0},
-  {"audio/x-voc", "SoundBlaster VOC", 0},
-  {"audio/x-w64", "Sonic Foundry Wave64", 0},
-  {"audio/x-wav", "WAV", 0},
-  {"audio/x-wavpack", "Wavpack", 0},
-  {"audio/x-wavpack-correction", "Wavpack", 0},
-  {"audio/x-wms", N_("Windows Media Speech"), 0},
-  {"audio/x-voxware", "Voxware", 0},
+  {"audio/x-ac3", "AC-3 (ATSC A/52)", FLAG_AUDIO, "ac3"},
+  {"audio/ac3", "AC-3 (ATSC A/52)", FLAG_AUDIO, "ac3"},
+  {"audio/x-private-ac3", "DVD AC-3 (ATSC A/52)", FLAG_AUDIO, "ac3"},
+  {"audio/x-private1-ac3", "DVD AC-3 (ATSC A/52)", FLAG_AUDIO, "ac3"},
+  {"audio/x-alaw", "A-Law", FLAG_AUDIO, ""},
+  {"audio/amr", "Adaptive Multi Rate (AMR)", FLAG_AUDIO, "amr"},
+  {"audio/AMR", "Adaptive Multi Rate (AMR)", FLAG_AUDIO, "amr"},
+  {"audio/AMR-WB", "Adaptive Multi Rate WideBand (AMR-WB)", FLAG_AUDIO, "amr"},
+  {"audio/iLBC-sh", "Internet Low Bitrate Codec (iLBC)", AUDIO_CONTAINER,
+      "ilbc"},
+  {"audio/ms-gsm", "MS GSM", FLAG_AUDIO, "gsm"},
+  {"audio/qcelp", "QCELP", FLAG_AUDIO, ""},
+  {"audio/aiff", "Audio Interchange File Format (AIFF)", AUDIO_CONTAINER,
+      "aiff"},
+  {"audio/x-aiff", "Audio Interchange File Format (AIFF)", AUDIO_CONTAINER,
+      "aiff"},
+  {"audio/x-alac", N_("Apple Lossless Audio (ALAC)"), FLAG_AUDIO, ""},
+  {"audio/x-amr-nb-sh", "Adaptive Multi Rate NarrowBand (AMR-NB)",
+      AUDIO_CONTAINER, "amr"},
+  {"audio/x-amr-wb-sh", "Adaptive Multi Rate WideBand (AMR-WB)",
+      AUDIO_CONTAINER, "amr"},
+  {"audio/x-au", "Sun .au", AUDIO_CONTAINER, "au"},
+  {"audio/x-celt", "Constrained Energy Lapped Transform (CELT)", FLAG_AUDIO,
+      ""},
+  {"audio/x-cinepak", "Cinepak Audio", FLAG_AUDIO, ""},
+  {"audio/x-dpcm", "DPCM", FLAG_AUDIO, ""},
+  {"audio/x-dts", "DTS", FLAG_AUDIO, "dts"},
+  {"audio/x-private1-dts", "DTS", FLAG_AUDIO, "dts"},
+  {"audio/x-dv", "DV Audio", FLAG_AUDIO, ""},
+  {"audio/x-eac3", "E-AC-3 (ATSC A/52B)", FLAG_AUDIO, "eac3"},
+  {"audio/x-flac", N_("Free Lossless Audio Codec (FLAC)"), FLAG_AUDIO, "flac"},
+  {"audio/x-gsm", "GSM", FLAG_AUDIO, "gsm"},
+  {"audio/x-iec958", "S/PDIF IEC958", 0, ""},   /* TODO: check description */
+  {"audio/x-iLBC", "Internet Low Bitrate Codec (iLBC)", FLAG_AUDIO, "ilbc"},
+  {"audio/x-ircam", "Berkeley/IRCAM/CARL", FLAG_AUDIO, ""},
+  {"audio/x-lpcm", "LPCM", FLAG_AUDIO, ""},
+  {"audio/x-private1-lpcm", "DVD LPCM", FLAG_AUDIO, ""},
+  {"audio/x-m4a", "MPEG-4 AAC", FLAG_CONTAINER, "m4a"},
+  {"audio/x-mod", "Module Music Format (MOD)", FLAG_AUDIO, "mod"},
+  {"audio/x-mulaw", "Mu-Law", FLAG_AUDIO, ""},
+  {"audio/x-musepack", "Musepack (MPC)", FLAG_AUDIO, "mpc"},
+  {"audio/x-nellymoser", "Nellymoser Asao", FLAG_AUDIO, ""},
+  {"audio/x-nist", "Sphere NIST", FLAG_AUDIO, ""},
+  {"audio/x-nsf", "Nintendo NSF", FLAG_AUDIO, ""},
+  {"audio/x-opus", "Opus", FLAG_AUDIO, ""},
+  {"audio/x-paris", "Ensoniq PARIS", FLAG_AUDIO, ""},
+  {"audio/x-qdm", "QDesign Music (QDM)", FLAG_AUDIO, ""},
+  {"audio/x-qdm2", "QDesign Music (QDM) 2", FLAG_AUDIO, ""},
+  {"audio/x-ralf-mpeg4-generic", "Real Audio Lossless (RALF)", FLAG_AUDIO, ""},
+  {"audio/x-sbc", "SBC", FLAG_AUDIO, "sbc"},
+  {"audio/x-sds", "SDS", FLAG_AUDIO, ""},
+  {"audio/x-shorten", "Shorten Lossless", FLAG_AUDIO, "shn"},
+  {"audio/x-sid", "Sid", FLAG_AUDIO, "sid"},
+  {"audio/x-sipro", "Sipro/ACELP.NET Voice", FLAG_AUDIO, ""},
+  {"audio/x-siren", "Siren", FLAG_AUDIO, ""},
+  {"audio/x-spc", "SNES-SPC700 Sound File Data", FLAG_AUDIO, "spc"},
+  {"audio/x-speex", "Speex", FLAG_AUDIO, ""},
+  {"audio/x-svx", "Amiga IFF / SVX8 / SV16", FLAG_AUDIO, ""},
+  {"audio/x-true-hd", "Dolby TrueHD", FLAG_AUDIO, ""},
+  {"audio/x-tta", N_("Lossless True Audio (TTA)"), FLAG_AUDIO, "tta"},
+  {"audio/x-ttafile", N_("Lossless True Audio (TTA)"), FLAG_AUDIO, "tta"},
+  {"audio/x-vnd.sony.atrac3", "Sony ATRAC3", FLAG_AUDIO, ""},
+  {"audio/x-vorbis", "Vorbis", FLAG_AUDIO, ""},
+  {"audio/x-voc", "SoundBlaster VOC", FLAG_AUDIO, ""},
+  {"audio/x-w64", "Sonic Foundry Wave64", AUDIO_CONTAINER, "w64"},
+  {"audio/x-wav", "WAV", AUDIO_CONTAINER, "wav"},
+  {"audio/x-wavpack", "Wavpack", FLAG_AUDIO, "wp"},
+  {"audio/x-wavpack-correction", "Wavpack", 0, "wpc"},
+  {"audio/x-wms", N_("Windows Media Speech"), FLAG_AUDIO, ""},
+  {"audio/x-voxware", "Voxware", FLAG_AUDIO, ""},
 
 
   /* video formats with static descriptions */
-  {"video/sp5x", "Sunplus JPEG 5.x", 0},
-  {"video/vivo", "Vivo", 0},
-  {"video/x-4xm", "4X Technologies Video", 0},
-  {"video/x-apple-video", "Apple video", 0},
-  {"video/x-aasc", "Autodesk Animator", 0},
-  {"video/x-camtasia", "TechSmith Camtasia", 0},
-  {"video/x-cdxa", "RIFF/CDXA (VCD)", 0},
-  {"video/x-cinepak", "Cinepak Video", 0},
-  {"video/x-cirrus-logic-accupak", "Cirrus Logipak AccuPak", 0},
-  {"video/x-compressed-yuv", N_("CYUV Lossless"), 0},
-  {"video/x-dirac", "Dirac", 0},
-  {"video/x-dnxhd", "Digital Nonlinear Extensible High Definition (DNxHD)", 0},
-  {"subpicture/x-dvd", "DVD subpicture", 0},
-  {"video/x-ffv", N_("FFMpeg v1"), 0},
-  {"video/x-flash-screen", "Flash Screen Video", 0},
-  {"video/x-flash-video", "Sorenson Spark Video", 0},
-  {"video/x-h261", "H.261", 0},
-  {"video/x-huffyuv", "Huffyuv", 0},
-  {"video/x-intel-h263", "Intel H.263", 0},
-  {"video/x-jpeg", "Motion JPEG", 0},
+  {"video/sp5x", "Sunplus JPEG 5.x", FLAG_VIDEO, ""},
+  {"video/vivo", "Vivo", FLAG_VIDEO, ""},
+  {"video/x-4xm", "4X Technologies Video", FLAG_VIDEO, ""},
+  {"video/x-apple-video", "Apple video", FLAG_VIDEO, ""},
+  {"video/x-aasc", "Autodesk Animator", FLAG_VIDEO, ""},
+  {"video/x-camtasia", "TechSmith Camtasia", FLAG_VIDEO, ""},
+  {"video/x-cdxa", "RIFF/CDXA (VCD)", AV_CONTAINER, ""},
+  {"video/x-cinepak", "Cinepak Video", FLAG_VIDEO, ""},
+  {"video/x-cirrus-logic-accupak", "Cirrus Logipak AccuPak", FLAG_VIDEO, ""},
+  {"video/x-compressed-yuv", N_("CYUV Lossless"), FLAG_VIDEO, ""},
+  {"video/x-dirac", "Dirac", FLAG_VIDEO, ""},
+  {"video/x-dnxhd", "Digital Nonlinear Extensible High Definition (DNxHD)",
+      FLAG_VIDEO, ""},
+  {"subpicture/x-dvd", "DVD subpicture", FLAG_VIDEO, ""},
+  {"video/x-ffv", N_("FFMpeg v1"), FLAG_VIDEO, ""},
+  {"video/x-flash-screen", "Flash Screen Video", FLAG_VIDEO, ""},
+  {"video/x-flash-video", "Sorenson Spark Video", FLAG_VIDEO, ""},
+  {"video/x-h261", "H.261", FLAG_VIDEO, ""},
+  {"video/x-huffyuv", "Huffyuv", FLAG_VIDEO, ""},
+  {"video/x-intel-h263", "Intel H.263", FLAG_VIDEO, ""},
+  {"video/x-jpeg", "Motion JPEG", FLAG_VIDEO, ""},
   /* { "video/x-jpeg-b", "", 0 }, does this actually exist? */
-  {"video/x-loco", "LOCO Lossless", 0},
-  {"video/x-mimic", "MIMIC", 0},
-  {"video/x-mjpeg", "Motion-JPEG", 0},
-  {"video/x-mjpeg-b", "Motion-JPEG format B", 0},
-  {"video/mpegts", "MPEG-2 Transport Stream", FLAG_CONTAINER},
-  {"video/x-mng", "Multiple Image Network Graphics (MNG)", 0},
-  {"video/x-mszh", N_("Lossless MSZH"), 0},
-  {"video/x-msvideocodec", "Microsoft Video 1", 0},
-  {"video/x-mve", "Interplay MVE", FLAG_CONTAINER},
-  {"video/x-nut", "NUT", FLAG_CONTAINER},
-  {"video/x-nuv", "MythTV NuppelVideo (NUV)", FLAG_CONTAINER},
-  {"video/x-prores", "Apple ProRes", 0},
-  {"video/x-qdrw", "Apple QuickDraw", 0},
-  {"video/x-smc", "Apple SMC", 0},
-  {"video/x-smoke", "Smoke", 0},
-  {"video/x-tarkin", "Tarkin", 0},
-  {"video/x-theora", "Theora", 0},
-  {"video/x-rle", N_("Run-length encoding"), 0},
-  {"video/x-ultimotion", "IBM UltiMotion", 0},
+  {"video/x-loco", "LOCO Lossless", FLAG_VIDEO, ""},
+  {"video/x-mimic", "MIMIC", FLAG_VIDEO, ""},
+  {"video/x-mjpeg", "Motion-JPEG", FLAG_VIDEO, ""},
+  {"video/x-mjpeg-b", "Motion-JPEG format B", FLAG_VIDEO, ""},
+  {"video/mpegts", "MPEG-2 Transport Stream", AVS_CONTAINER, "ts"},
+  {"video/x-mng", "Multiple Image Network Graphics (MNG)", FLAG_VIDEO, ""},
+  {"video/x-mszh", N_("Lossless MSZH"), FLAG_VIDEO, ""},
+  {"video/x-msvideocodec", "Microsoft Video 1", FLAG_VIDEO, ""},
+  {"video/x-mve", "Interplay MVE", AV_CONTAINER, "mve"},
+  {"video/x-nut", "NUT", AV_CONTAINER, "nut"},
+  {"video/x-nuv", "MythTV NuppelVideo (NUV)", AV_CONTAINER, "nuv"},
+  {"video/x-prores", "Apple ProRes", FLAG_VIDEO, ""},
+  {"video/x-qdrw", "Apple QuickDraw", FLAG_VIDEO, ""},
+  {"video/x-smc", "Apple SMC", FLAG_VIDEO, ""},
+  {"video/x-smoke", "Smoke", FLAG_VIDEO, ""},
+  {"video/x-tarkin", "Tarkin", FLAG_VIDEO, ""},
+  {"video/x-theora", "Theora", FLAG_VIDEO, ""},
+  {"video/x-rle", N_("Run-length encoding"), FLAG_VIDEO, ""},
+  {"video/x-ultimotion", "IBM UltiMotion", FLAG_VIDEO, ""},
   {"video/x-vcd", "VideoCD (VCD)", 0},
-  {"video/x-vmnc", "VMWare NC", 0},
-  {"video/x-vp3", "On2 VP3", 0},
-  {"video/x-vp5", "On2 VP5", 0},
-  {"video/x-vp6", "On2 VP6", 0},
-  {"video/x-vp6-flash", "On2 VP6/Flash", 0},
-  {"video/x-vp6-alpha", "On2 VP6 with alpha", 0},
-  {"video/x-vp7", "On2 VP7", 0},
-  {"video/x-vp8", "VP8", 0},
-  {"video/x-zlib", "Lossless zlib video", 0},
-  {"video/x-zmbv", "Zip Motion Block video", 0},
+  {"video/x-vmnc", "VMWare NC", FLAG_VIDEO, ""},
+  {"video/x-vp3", "On2 VP3", FLAG_VIDEO, ""},
+  {"video/x-vp5", "On2 VP5", FLAG_VIDEO, ""},
+  {"video/x-vp6", "On2 VP6", FLAG_VIDEO, ""},
+  {"video/x-vp6-flash", "On2 VP6/Flash", FLAG_VIDEO, ""},
+  {"video/x-vp6-alpha", "On2 VP6 with alpha", FLAG_VIDEO, ""},
+  {"video/x-vp7", "On2 VP7", FLAG_VIDEO, ""},
+  {"video/x-vp8", "VP8", FLAG_VIDEO, ""},
+  {"video/x-vp9", "VP9", FLAG_VIDEO, ""},
+  {"video/x-zlib", "Lossless zlib video", FLAG_VIDEO, ""},
+  {"video/x-zmbv", "Zip Motion Block video", FLAG_VIDEO, ""},
 
   /* image formats with static descriptions */
-  {"image/bmp", "BMP", 0},
-  {"image/x-bmp", "BMP", 0},
-  {"image/x-MS-bmp", "BMP", 0},
-  {"image/gif", "GIF", 0},
-  {"image/jpeg", "JPEG", 0},
-  {"image/jng", "JPEG Network Graphics (JNG)", 0},
-  {"image/png", "PNG", 0},
-  {"image/pbm", "Portable BitMap (PBM)", 0},
-  {"image/ppm", "Portable PixMap (PPM)", 0},
-  {"image/svg+xml", "Scalable Vector Graphics (SVG)", 0},
-  {"image/tiff", "TIFF", 0},
-  {"image/x-cmu-raster", "CMU Raster Format", 0},
-  {"image/x-degas", "DEGAS", 0},
-  {"image/x-icon", "ICO", 0},
-  {"image/x-j2c", "JPEG 2000", 0},
-  {"image/x-jpc", "JPEG 2000", 0},
-  {"image/jp2", "JPEG 2000", 0},
-  {"image/x-pcx", "PCX", 0},
-  {"image/x-xcf", "XFC", 0},
-  {"image/x-pixmap", "XPM", 0},
-  {"image/x-portable-anymap", "Portable AnyMap (PAM)", 0},
-  {"image/x-portable-graymap", "Portable GrayMap (PGM)", 0},
-  {"image/x-xpixmap", "XPM", 0},
-  {"image/x-quicktime", "QuickTime Image Format (QTIF)", 0},
-  {"image/x-sun-raster", "Sun Raster Format (RAS)", 0},
-  {"image/x-tga", "TGA", 0},
-  {"image/vnd.wap.wbmp", "Wireless Bitmap", 0},
+  {"image/bmp", "BMP", FLAG_IMAGE, "bmp"},
+  {"image/x-bmp", "BMP", FLAG_IMAGE, "bmp"},
+  {"image/x-MS-bmp", "BMP", FLAG_IMAGE, "bmp"},
+  {"image/gif", "GIF", FLAG_IMAGE, "gif"},
+  {"image/jpeg", "JPEG", FLAG_IMAGE | FLAG_VIDEO, "jpg"},
+  {"image/jng", "JPEG Network Graphics (JNG)", FLAG_IMAGE, ""},
+  {"image/png", "PNG", FLAG_VIDEO | FLAG_IMAGE, "png"},
+  {"image/pbm", "Portable BitMap (PBM)", FLAG_IMAGE, "pbm"},
+  {"image/ppm", "Portable PixMap (PPM)", FLAG_IMAGE, "ppm"},
+  {"image/svg+xml", "Scalable Vector Graphics (SVG)", FLAG_IMAGE, "svg"},
+  {"image/tiff", "TIFF", FLAG_IMAGE, "tiff"},
+  {"image/x-cmu-raster", "CMU Raster Format", FLAG_IMAGE, ""},
+  {"image/x-degas", "DEGAS", FLAG_IMAGE, ""},
+  {"image/x-icon", "ICO", FLAG_IMAGE, "ico"},
+  {"image/x-j2c", "JPEG 2000", FLAG_VIDEO | FLAG_IMAGE, ""},
+  {"image/x-jpc", "JPEG 2000", FLAG_VIDEO | FLAG_IMAGE, ""},
+  {"image/jp2", "JPEG 2000", FLAG_VIDEO | FLAG_IMAGE, ""},
+  {"image/x-pcx", "PCX", FLAG_IMAGE, ""},
+  {"image/x-xcf", "XFC", FLAG_IMAGE, ""},
+  {"image/x-pixmap", "XPM", FLAG_IMAGE, "xpm"},
+  {"image/x-portable-anymap", "Portable AnyMap (PNM)", FLAG_IMAGE, "pnm"},
+  {"image/x-portable-graymap", "Portable GrayMap (PGM)", FLAG_IMAGE, "pgm"},
+  {"image/x-xpixmap", "XPM", FLAG_IMAGE, "xpm"},
+  {"image/x-quicktime", "QuickTime Image Format (QTIF)",
+      FLAG_IMAGE | FLAG_CONTAINER, ".mov"},
+  {"image/x-sun-raster", "Sun Raster Format (RAS)", FLAG_IMAGE, ""},
+  {"image/x-tga", "TGA", FLAG_IMAGE, "tga"},
+  {"image/vnd.wap.wbmp", "Wireless Bitmap", FLAG_IMAGE, "wbmp"},
 
   /* subtitle formats with static descriptions */
-  {"application/x-ssa", "SubStation Alpha", 0},
-  {"application/x-ass", "Advanced SubStation Alpha", 0},
+  {"application/x-ssa", "SubStation Alpha", FLAG_SUB, ""},
+  {"application/x-ass", "Advanced SubStation Alpha", FLAG_SUB, ""},
   /* FIXME: add variant field to typefinder? */
-  {"application/x-subtitle", N_("Subtitle"), 0},
-  {"application/x-subtitle-mpl2", N_("MPL2 subtitle format"), 0},
-  {"application/x-subtitle-dks", N_("DKS subtitle format"), 0},
-  {"application/x-subtitle-qttext", N_("QTtext subtitle format"), 0},
-  {"application/x-subtitle-sami", N_("Sami subtitle format"), 0},
-  {"application/x-subtitle-tmplayer", N_("TMPlayer subtitle format"), 0},
-  {"application/x-kate", "Kate", 0},
-  {"subtitle/x-kate", N_("Kate subtitle format"), 0},
-  {"subpicture/x-dvb", "DVB subtitles", 0},
-  {"subpicture/x-pgs", "PGS subtitles", 0},
+  {"application/x-subtitle", N_("Subtitle"), FLAG_SUB, ""},
+  {"application/x-subtitle-mpl2", N_("MPL2 subtitle format"), FLAG_SUB, ""},
+  {"application/x-subtitle-dks", N_("DKS subtitle format"), FLAG_SUB, ""},
+  {"application/x-subtitle-qttext", N_("QTtext subtitle format"), FLAG_SUB, ""},
+  {"application/x-subtitle-sami", N_("Sami subtitle format"), FLAG_SUB, ""},
+  {"application/x-subtitle-tmplayer", N_("TMPlayer subtitle format"), FLAG_SUB,
+      ""},
+  {"application/x-kate", "Kate", 0, ""},
+  {"subtitle/x-kate", N_("Kate subtitle format"), FLAG_SUB, ""},
+  {"subpicture/x-dvb", "DVB subtitles", FLAG_SUB, ""},
+  {"subpicture/x-pgs", "PGS subtitles", FLAG_SUB, ""},
 
   /* non-audio/video/container formats */
-  {"hdv/aux-v", "HDV AUX-V", 0},
-  {"hdv/aux-a", "HDV AUX-A", 0},
+  {"hdv/aux-v", "HDV AUX-V", 0, ""},
+  {"hdv/aux-a", "HDV AUX-A", 0, ""},
 
   /* formats with dynamic descriptions */
-  {"audio/mpeg", NULL, 0},
-  {"audio/x-adpcm", NULL, 0},
-  {"audio/x-mace", NULL, 0},
-  {"audio/x-pn-realaudio", NULL, 0},
-  {"audio/x-raw", NULL, 0},
-  {"audio/x-wma", NULL, 0},
-  {"video/mpeg", NULL, FLAG_CONTAINER | FLAG_SYSTEMSTREAM},
-  {"video/mpeg", NULL, 0},
-  {"video/x-asus", NULL, 0},
-  {"video/x-ati-vcr", NULL, 0},
-  {"video/x-divx", NULL, 0},
+  {"audio/mpeg", NULL, FLAG_AUDIO, ""},
+  {"audio/x-adpcm", NULL, FLAG_AUDIO, ""},
+  {"audio/x-mace", NULL, FLAG_AUDIO, ""},
+  {"audio/x-pn-realaudio", NULL, FLAG_AUDIO, ""},
+  {"audio/x-raw", NULL, FLAG_AUDIO, ""},
+  {"audio/x-wma", NULL, FLAG_AUDIO, ""},
+  {"video/mpeg", NULL, AVS_CONTAINER | FLAG_SYSTEMSTREAM, "mpg"},
+  {"video/mpeg", NULL, FLAG_VIDEO, ""},
+  {"video/x-asus", NULL, FLAG_VIDEO, ""},
+  {"video/x-ati-vcr", NULL, FLAG_VIDEO, ""},
+  {"video/x-divx", NULL, FLAG_VIDEO, ""},
   {"video/x-dv", "Digital Video (DV) System Stream",
-      FLAG_CONTAINER | FLAG_SYSTEMSTREAM},
-  {"video/x-dv", "Digital Video (DV)", 0},
-  {"video/x-h263", NULL, 0},
-  {"video/x-h264", NULL, 0},
-  {"video/x-indeo", NULL, 0},
-  {"video/x-msmpeg", NULL, 0},
-  {"video/x-pn-realvideo", NULL, 0},
+      FLAG_CONTAINER | FLAG_SYSTEMSTREAM, "dv"},
+  {"video/x-dv", "Digital Video (DV)", FLAG_VIDEO, ""},
+  {"video/x-h263", NULL, FLAG_VIDEO, "h263"},
+  {"video/x-h264", NULL, FLAG_VIDEO, "h264"},
+  {"video/x-indeo", NULL, FLAG_VIDEO, ""},
+  {"video/x-msmpeg", NULL, FLAG_VIDEO, ""},
+  {"video/x-pn-realvideo", NULL, FLAG_VIDEO, ""},
 #if 0
   /* do these exist? are they used anywhere? */
   {"video/x-pn-multirate-realvideo", NULL, 0},
   {"audio/x-pn-multirate-realaudio", NULL, 0},
   {"audio/x-pn-multirate-realaudio-live", NULL, 0},
 #endif
-  {"video/x-truemotion", NULL, 0},
-  {"video/x-raw", NULL, 0},
-  {"video/x-svq", NULL, 0},
-  {"video/x-wmv", NULL, 0},
-  {"video/x-xan", NULL, 0}
+  {"video/x-truemotion", NULL, FLAG_VIDEO, ""},
+  {"video/x-raw", NULL, FLAG_VIDEO, ""},
+  {"video/x-svq", NULL, FLAG_VIDEO, ""},
+  {"video/x-wmv", NULL, FLAG_VIDEO, ""},
+  {"video/x-xan", NULL, FLAG_VIDEO, ""}
 };
 
 /* returns static descriptions and dynamic ones (such as video/x-raw),
@@ -810,7 +839,7 @@
 
   tmp = copy_and_clean_caps (caps);
 
-  g_return_val_if_fail (gst_caps_is_fixed (tmp), NULL);
+  g_return_val_if_fail (has_single_media_type (tmp), NULL);
 
   /* special-case RTP caps */
   if (caps_are_rtp_caps (tmp, "video", &str)) {
@@ -861,7 +890,7 @@
   g_return_val_if_fail (caps != NULL, NULL);
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
   tmp = copy_and_clean_caps (caps);
-  g_return_val_if_fail (gst_caps_is_fixed (tmp), NULL);
+  g_return_val_if_fail (has_single_media_type (tmp), NULL);
 
   /* special-case RTP caps */
   if (caps_are_rtp_caps (tmp, "video", &str)) {
@@ -920,8 +949,9 @@
 /**
  * gst_pb_utils_add_codec_description_to_tag_list:
  * @taglist: a #GstTagList
- * @codec_tag: a GStreamer codec tag such as #GST_TAG_AUDIO_CODEC,
- *             #GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC
+ * @codec_tag: (allow-none): a GStreamer codec tag such as #GST_TAG_AUDIO_CODEC,
+ *             #GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC. If none is specified,
+ *             the function will attempt to detect the appropriate category.
  * @caps: the (fixed) #GstCaps for which a codec tag should be added.
  *
  * Adds a codec tag describing the format specified by @caps to @taglist.
@@ -937,9 +967,8 @@
 
   g_return_val_if_fail (taglist != NULL, FALSE);
   g_return_val_if_fail (GST_IS_TAG_LIST (taglist), FALSE);
-  g_return_val_if_fail (codec_tag != NULL, FALSE);
-  g_return_val_if_fail (gst_tag_exists (codec_tag), FALSE);
-  g_return_val_if_fail (gst_tag_get_type (codec_tag) == G_TYPE_STRING, FALSE);
+  g_return_val_if_fail (codec_tag == NULL || (gst_tag_exists (codec_tag)
+          && gst_tag_get_type (codec_tag) == G_TYPE_STRING), FALSE);
   g_return_val_if_fail (caps != NULL, FALSE);
   g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
 
@@ -947,6 +976,20 @@
   if (info == NULL)
     return FALSE;
 
+  /* Attempt to find tag classification */
+  if (codec_tag == NULL) {
+    if (info->flags & FLAG_CONTAINER)
+      codec_tag = GST_TAG_CONTAINER_FORMAT;
+    else if (info->flags & FLAG_AUDIO)
+      codec_tag = GST_TAG_AUDIO_CODEC;
+    else if (info->flags & FLAG_VIDEO)
+      codec_tag = GST_TAG_VIDEO_CODEC;
+    else if (info->flags & FLAG_SUB)
+      codec_tag = GST_TAG_SUBTITLE_CODEC;
+    else
+      codec_tag = GST_TAG_CODEC;
+  }
+
   desc = format_info_get_desc (info, caps);
   gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, codec_tag, desc, NULL);
   g_free (desc);
@@ -978,7 +1021,7 @@
   g_return_val_if_fail (caps != NULL, NULL);
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
   tmp = copy_and_clean_caps (caps);
-  g_return_val_if_fail (gst_caps_is_fixed (tmp), NULL);
+  g_return_val_if_fail (has_single_media_type (tmp), NULL);
 
   info = find_format_info (tmp);
 
@@ -1002,6 +1045,79 @@
   return str;
 }
 
+/* internal helper functions for gst_encoding_profile_get_file_extension() */
+const gchar *pb_utils_get_file_extension_from_caps (const GstCaps * caps);
+gboolean pb_utils_is_tag (const GstCaps * caps);
+
+const gchar *
+pb_utils_get_file_extension_from_caps (const GstCaps * caps)
+{
+  const FormatInfo *info;
+  const gchar *ext = NULL;
+  GstCaps *stripped_caps;
+
+  g_assert (GST_IS_CAPS (caps));
+
+  stripped_caps = copy_and_clean_caps (caps);
+
+  g_assert (gst_caps_is_fixed (stripped_caps));
+
+  info = find_format_info (stripped_caps);
+
+  if (info && info->ext[0] != '\0') {
+    ext = info->ext;
+  } else if (info && info->desc == NULL) {
+    const GstStructure *s;
+
+    s = gst_caps_get_structure (stripped_caps, 0);
+
+    /* cases where we have to evaluate the caps more closely */
+    if (strcmp (info->type, "audio/mpeg") == 0) {
+      int version = 0, layer = 3;
+
+      if (gst_structure_get_int (s, "mpegversion", &version)) {
+        if (version == 2 || version == 4) {
+          ext = "aac";
+        } else if (version == 1) {
+          gst_structure_get_int (s, "layer", &layer);
+          if (layer == 1)
+            ext = "mp1";
+          else if (layer == 2)
+            ext = "mp2";
+          else
+            ext = "mp3";
+        }
+      }
+    }
+  }
+
+  gst_caps_unref (stripped_caps);
+  return ext;
+}
+
+gboolean
+pb_utils_is_tag (const GstCaps * caps)
+{
+  const FormatInfo *info;
+  GstCaps *stripped_caps;
+  gboolean is_tag = FALSE;
+
+  g_assert (GST_IS_CAPS (caps));
+
+  stripped_caps = copy_and_clean_caps (caps);
+
+  g_assert (gst_caps_is_fixed (stripped_caps));
+
+  info = find_format_info (stripped_caps);
+
+  if (info) {
+    is_tag = (info->flags & FLAG_TAG) != 0;
+  }
+  gst_caps_unref (stripped_caps);
+
+  return is_tag;
+}
+
 #if 0
 void
 gst_pb_utils_list_all (void)
diff --git a/gst-libs/gst/pbutils/descriptions.h b/gst-libs/gst/pbutils/descriptions.h
index 5b19ecc..a85aeb2 100644
--- a/gst-libs/gst/pbutils/descriptions.h
+++ b/gst-libs/gst/pbutils/descriptions.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PB_UTILS_DESCRIPTIONS_H__
diff --git a/gst-libs/gst/pbutils/encoding-profile.c b/gst-libs/gst/pbutils/encoding-profile.c
index 9f97423..330bf4e 100644
--- a/gst-libs/gst/pbutils/encoding-profile.c
+++ b/gst-libs/gst/pbutils/encoding-profile.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -102,7 +102,7 @@
  *   gchar *category = (gchar *) tmpc->data;
  *
  *   ... and we can list all targets within that category ...
- *   
+ *
  *   targets = gst_encoding_target_list_all (category);
  *
  *   ... and show a list to our users ...
@@ -127,6 +127,8 @@
 #include "encoding-profile.h"
 #include "encoding-target.h"
 
+#include <string.h>
+
 /* GstEncodingProfile API */
 
 struct _GstEncodingProfile
@@ -138,6 +140,7 @@
   gchar *description;
   GstCaps *format;
   gchar *preset;
+  gchar *preset_name;
   guint presence;
   GstCaps *restriction;
 };
@@ -261,6 +264,7 @@
  * @profile: a #GstEncodingProfile
  *
  * Returns: the name of the #GstPreset to be used in the profile.
+ * This is the name that has been set when saving the preset.
  */
 const gchar *
 gst_encoding_profile_get_preset (GstEncodingProfile * profile)
@@ -269,6 +273,18 @@
 }
 
 /**
+ * gst_encoding_profile_get_preset_name:
+ * @profile: a #GstEncodingProfile
+ *
+ * Returns: the name of the #GstPreset factory to be used in the profile.
+ */
+const gchar *
+gst_encoding_profile_get_preset_name (GstEncodingProfile * profile)
+{
+  return profile->preset_name;
+}
+
+/**
  * gst_encoding_profile_get_presence:
  * @profile: a #GstEncodingProfile
  *
@@ -351,7 +367,9 @@
  * @profile: a #GstEncodingProfile
  * @preset: the element preset to use
  *
- * Sets the preset to use for the profile.
+ * Sets the name of the #GstElement that implements the #GstPreset interface
+ * to use for the profile.
+ * This is the name that has been set when saving the preset.
  */
 void
 gst_encoding_profile_set_preset (GstEncodingProfile * profile,
@@ -363,6 +381,22 @@
 }
 
 /**
+ * gst_encoding_profile_set_preset_name:
+ * @profile: a #GstEncodingProfile
+ * @preset_name: The name of the preset to use in this @profile.
+ *
+ * Sets the name of the #GstPreset's factory to be used in the profile.
+ */
+void
+gst_encoding_profile_set_preset_name (GstEncodingProfile * profile,
+    const gchar * preset_name)
+{
+  if (profile->preset_name)
+    g_free (profile->preset_name);
+  profile->preset_name = g_strdup (preset_name);
+}
+
+/**
  * gst_encoding_profile_set_presence:
  * @profile: a #GstEncodingProfile
  * @presence: the number of time the profile can be used
@@ -651,7 +685,7 @@
  * @profile: (transfer full): the #GstEncodingProfile to add.
  *
  * Add a #GstEncodingProfile to the list of profiles handled by @container.
- * 
+ *
  * No copy of @profile will be made, if you wish to use it elsewhere after this
  * method you should increment its reference count.
  *
@@ -697,6 +731,7 @@
   if (restriction)
     prof->restriction = gst_caps_ref (restriction);
   prof->presence = presence;
+  prof->preset_name = NULL;
 
   return prof;
 }
@@ -707,7 +742,7 @@
  * @description: (allow-none): The description of the container profile,
  *     can be %NULL
  * @format: The format to use for this profile
- * @preset: (allow-none): The preset to use for this profile
+ * @preset: (allow-none): The preset to use for this profile.
  *
  * Creates a new #GstEncodingContainerProfile.
  *
@@ -728,7 +763,7 @@
  * gst_encoding_video_profile_new:
  * @format: the #GstCaps
  * @preset: (allow-none): the preset(s) to use on the encoder, can be #NULL
- * @restriction: (allow-none) the #GstCaps used to restrict the input to the encoder, can be
+ * @restriction: (allow-none): the #GstCaps used to restrict the input to the encoder, can be
  * NULL. See gst_encoding_profile_get_restriction() for more details.
  * @presence: the number of time this stream must be used. 0 means any number of
  *  times (including never)
@@ -869,6 +904,145 @@
   return NULL;
 }
 
+extern const gchar *pb_utils_get_file_extension_from_caps (const GstCaps *
+    caps);
+gboolean pb_utils_is_tag (const GstCaps * caps);
+
+static gboolean
+gst_encoding_profile_has_format (GstEncodingProfile * profile,
+    const gchar * media_type)
+{
+  GstCaps *caps;
+  gboolean ret;
+
+  caps = gst_encoding_profile_get_format (profile);
+  ret = gst_structure_has_name (gst_caps_get_structure (caps, 0), media_type);
+  gst_caps_unref (caps);
+
+  return ret;
+}
+
+static gboolean
+gst_encoding_container_profile_has_video (GstEncodingContainerProfile * profile)
+{
+  const GList *l;
+
+  for (l = profile->encodingprofiles; l != NULL; l = l->next) {
+    if (GST_IS_ENCODING_VIDEO_PROFILE (l->data))
+      return TRUE;
+    if (GST_IS_ENCODING_CONTAINER_PROFILE (l->data) &&
+        gst_encoding_container_profile_has_video (l->data))
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+/**
+ * gst_encoding_profile_get_file_extension:
+ * @profile: a #GstEncodingProfile
+ *
+ * Returns: a suitable file extension for @profile, or NULL.
+ */
+const gchar *
+gst_encoding_profile_get_file_extension (GstEncodingProfile * profile)
+{
+  GstEncodingContainerProfile *cprofile;
+  const gchar *ext = NULL;
+  gboolean has_video;
+  GstCaps *caps;
+  guint num_children;
+
+  g_return_val_if_fail (GST_IS_ENCODING_PROFILE (profile), NULL);
+
+  caps = gst_encoding_profile_get_format (profile);
+  ext = pb_utils_get_file_extension_from_caps (caps);
+
+  if (!GST_IS_ENCODING_CONTAINER_PROFILE (profile))
+    goto done;
+
+  cprofile = GST_ENCODING_CONTAINER_PROFILE (profile);
+
+  num_children = g_list_length (cprofile->encodingprofiles);
+
+  /* if it's a tag container profile (e.g. id3mux/apemux), we need
+   * to look at what's inside it */
+  if (pb_utils_is_tag (caps)) {
+    GST_DEBUG ("tag container profile");
+    if (num_children == 1) {
+      GstEncodingProfile *child_profile = cprofile->encodingprofiles->data;
+
+      ext = gst_encoding_profile_get_file_extension (child_profile);
+    } else {
+      GST_WARNING ("expected exactly one child profile with tag profile");
+    }
+    goto done;
+  }
+
+  if (num_children == 0)
+    goto done;
+
+  /* special cases */
+  has_video = gst_encoding_container_profile_has_video (cprofile);
+
+  /* Ogg */
+  if (strcmp (ext, "ogg") == 0) {
+    /* ogg with video => .ogv */
+    if (has_video) {
+      ext = "ogv";
+      goto done;
+    }
+    /* ogg with just speex audio => .spx */
+    if (num_children == 1) {
+      GstEncodingProfile *child_profile = cprofile->encodingprofiles->data;
+
+      if (GST_IS_ENCODING_AUDIO_PROFILE (child_profile) &&
+          gst_encoding_profile_has_format (child_profile, "audio/x-speex")) {
+        ext = "spx";
+        goto done;
+      }
+    }
+    /* does anyone actually use .oga for ogg audio files? */
+    goto done;
+  }
+
+  /* Matroska */
+  if (has_video && strcmp (ext, "mka") == 0) {
+    ext = "mkv";
+    goto done;
+  }
+
+  /* Windows Media / ASF */
+  if (gst_encoding_profile_has_format (profile, "video/x-ms-asf")) {
+    const GList *l;
+    guint num_wmv = 0, num_wma = 0, num_other = 0;
+
+    for (l = cprofile->encodingprofiles; l != NULL; l = l->next) {
+      if (gst_encoding_profile_has_format (l->data, "video/x-wmv"))
+        ++num_wmv;
+      else if (gst_encoding_profile_has_format (l->data, "audio/x-wma"))
+        ++num_wma;
+      else
+        ++num_other;
+    }
+
+    if (num_other > 0)
+      ext = "asf";
+    else if (num_wmv > 0)
+      ext = "wmv";
+    else if (num_wma > 0)
+      ext = "wma";
+
+    goto done;
+  }
+
+done:
+
+  GST_INFO ("caps %" GST_PTR_FORMAT ", ext: %s", caps, GST_STR_NULL (ext));
+  gst_caps_unref (caps);
+  return ext;
+}
+
 /**
  * gst_encoding_profile_find:
  * @targetname: (transfer none): The name of the target
diff --git a/gst-libs/gst/pbutils/encoding-profile.h b/gst-libs/gst/pbutils/encoding-profile.h
index f6de6ed..60e148d 100644
--- a/gst-libs/gst/pbutils/encoding-profile.h
+++ b/gst-libs/gst/pbutils/encoding-profile.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PROFILE_H__
@@ -126,11 +126,14 @@
 void            gst_encoding_profile_set_format         (GstEncodingProfile *profile,
                                                          GstCaps *format);
 const gchar *   gst_encoding_profile_get_preset         (GstEncodingProfile *profile);
+const gchar *   gst_encoding_profile_get_preset_name    (GstEncodingProfile *profile);
 void            gst_encoding_profile_set_preset         (GstEncodingProfile *profile,
                                                          const gchar *preset);
 guint           gst_encoding_profile_get_presence       (GstEncodingProfile *profile);
 void            gst_encoding_profile_set_presence       (GstEncodingProfile *profile,
                                                          guint presence);
+void            gst_encoding_profile_set_preset_name    (GstEncodingProfile * profile,
+                                                         const gchar * preset_name);
 GstCaps *       gst_encoding_profile_get_restriction    (GstEncodingProfile *profile);
 void            gst_encoding_profile_set_restriction    (GstEncodingProfile *profile,
                                                          GstCaps *restriction);
@@ -140,6 +143,8 @@
 GstCaps *       gst_encoding_profile_get_input_caps     (GstEncodingProfile *profile);
 const gchar *   gst_encoding_profile_get_type_nick      (GstEncodingProfile *profile);
 
+const gchar *   gst_encoding_profile_get_file_extension (GstEncodingProfile * profile);
+
 GstEncodingProfile * gst_encoding_profile_find (const gchar *targetname,
                                                 const gchar *profilename,
                                                 const gchar *category);
diff --git a/gst-libs/gst/pbutils/encoding-target.c b/gst-libs/gst/pbutils/encoding-target.c
index 709db22..8481587 100644
--- a/gst-libs/gst/pbutils/encoding-target.c
+++ b/gst-libs/gst/pbutils/encoding-target.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/pbutils/encoding-target.h b/gst-libs/gst/pbutils/encoding-target.h
index bdfe306..ddc60ee 100644
--- a/gst-libs/gst/pbutils/encoding-target.h
+++ b/gst-libs/gst/pbutils/encoding-target.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PROFILE_REGISTRY_H__
diff --git a/gst-libs/gst/pbutils/gstdiscoverer-types.c b/gst-libs/gst/pbutils/gstdiscoverer-types.c
index eb7651e..8763eff 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer-types.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer-types.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -70,6 +70,8 @@
   if (info->toc)
     gst_toc_unref (info->toc);
 
+  g_free (info->stream_id);
+
   if (info->misc)
     gst_structure_free (info->misc);
 }
@@ -132,6 +134,9 @@
   if (info->toc)
     ret->toc = gst_toc_ref (info->toc);
 
+  if (info->stream_id)
+    ret->stream_id = g_strdup (info->stream_id);
+
   if (info->misc)
     ret->misc = gst_structure_copy (info->misc);
 
@@ -664,6 +669,21 @@
 }
 
 /**
+ * gst_discoverer_stream_info_get_stream_id:
+ * @info: a #GstDiscovererStreamInfo
+ *
+ * Returns: (transfer none): the stream ID of this stream. If you wish to
+ * use the stream ID after the life-time of @info you will need to copy it.
+ */
+const gchar *
+gst_discoverer_stream_info_get_stream_id (GstDiscovererStreamInfo * info)
+{
+  g_return_val_if_fail (GST_IS_DISCOVERER_STREAM_INFO (info), NULL);
+
+  return info->stream_id;
+}
+
+/**
  * gst_discoverer_stream_info_get_misc:
  * @info: a #GstDiscovererStreamInfo
  *
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
index 7900048..2427e08 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -54,6 +54,7 @@
 static GQuark _CAPS_QUARK;
 static GQuark _TAGS_QUARK;
 static GQuark _TOC_QUARK;
+static GQuark _STREAM_ID_QUARK;
 static GQuark _MISSING_PLUGIN_QUARK;
 static GQuark _STREAM_TOPOLOGY_QUARK;
 static GQuark _TOPOLOGY_PAD_QUARK;
@@ -67,6 +68,7 @@
   GstElement *sink;
   GstTagList *tags;
   GstToc *toc;
+  gchar *stream_id;
 } PrivateStream;
 
 struct _GstDiscovererPrivate
@@ -134,7 +136,8 @@
 
   _CAPS_QUARK = g_quark_from_static_string ("caps");
   _TAGS_QUARK = g_quark_from_static_string ("tags");
-  _TOC_QUARK = g_quark_from_static_string ("toc");
+  _TOC_QUARK = g_quark_from_static_string ("stream-id");
+  _STREAM_ID_QUARK = g_quark_from_static_string ("toc");
   _MISSING_PLUGIN_QUARK = g_quark_from_static_string ("missing-plugin");
   _STREAM_TOPOLOGY_QUARK = g_quark_from_static_string ("stream-topology");
   _TOPOLOGY_PAD_QUARK = g_quark_from_static_string ("pad");
@@ -465,40 +468,55 @@
 {
   GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
 
-  if (GST_EVENT_TYPE (event) == GST_EVENT_TAG) {
-    GstTagList *tl = NULL, *tmp;
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_TAG:{
+      GstTagList *tl = NULL, *tmp;
 
-    gst_event_parse_tag (event, &tl);
-    GST_DEBUG_OBJECT (pad, "tags %" GST_PTR_FORMAT, tl);
-    DISCO_LOCK (ps->dc);
-    /* If preroll is complete, drop these tags - the collected information is
-     * possibly already being processed and adding more tags would be racy */
-    if (G_LIKELY (ps->dc->priv->processing)) {
-      GST_DEBUG_OBJECT (pad, "private stream %p old tags %" GST_PTR_FORMAT, ps,
-          ps->tags);
-      tmp = gst_tag_list_merge (ps->tags, tl, GST_TAG_MERGE_APPEND);
-      if (ps->tags)
-        gst_tag_list_unref (ps->tags);
-      ps->tags = tmp;
-      GST_DEBUG_OBJECT (pad, "private stream %p new tags %" GST_PTR_FORMAT, ps,
-          tmp);
-    } else
-      GST_DEBUG_OBJECT (pad, "Dropping tags since preroll is done");
-    DISCO_UNLOCK (ps->dc);
-  }
+      gst_event_parse_tag (event, &tl);
+      GST_DEBUG_OBJECT (pad, "tags %" GST_PTR_FORMAT, tl);
+      DISCO_LOCK (ps->dc);
+      /* If preroll is complete, drop these tags - the collected information is
+       * possibly already being processed and adding more tags would be racy */
+      if (G_LIKELY (ps->dc->priv->processing)) {
+        GST_DEBUG_OBJECT (pad, "private stream %p old tags %" GST_PTR_FORMAT,
+            ps, ps->tags);
+        tmp = gst_tag_list_merge (ps->tags, tl, GST_TAG_MERGE_APPEND);
+        if (ps->tags)
+          gst_tag_list_unref (ps->tags);
+        ps->tags = tmp;
+        GST_DEBUG_OBJECT (pad, "private stream %p new tags %" GST_PTR_FORMAT,
+            ps, tmp);
+      } else
+        GST_DEBUG_OBJECT (pad, "Dropping tags since preroll is done");
+      DISCO_UNLOCK (ps->dc);
+      break;
+    }
+    case GST_EVENT_TOC:{
+      GstToc *tmp;
 
-  if (GST_EVENT_TYPE (event) == GST_EVENT_TOC) {
-    GstToc *tmp;
+      gst_event_parse_toc (event, &tmp, NULL);
+      GST_DEBUG_OBJECT (pad, "toc %" GST_PTR_FORMAT, tmp);
+      DISCO_LOCK (ps->dc);
+      ps->toc = tmp;
+      if (G_LIKELY (ps->dc->priv->processing)) {
+        GST_DEBUG_OBJECT (pad, "private stream %p toc %" GST_PTR_FORMAT, ps,
+            tmp);
+      } else
+        GST_DEBUG_OBJECT (pad, "Dropping toc since preroll is done");
+      DISCO_UNLOCK (ps->dc);
+      break;
+    }
+    case GST_EVENT_STREAM_START:{
+      const gchar *stream_id;
 
-    gst_event_parse_toc (event, &tmp, NULL);
-    GST_DEBUG_OBJECT (pad, "toc %" GST_PTR_FORMAT, tmp);
-    DISCO_LOCK (ps->dc);
-    ps->toc = tmp;
-    if (G_LIKELY (ps->dc->priv->processing)) {
-      GST_DEBUG_OBJECT (pad, "private stream %p toc %" GST_PTR_FORMAT, ps, tmp);
-    } else
-      GST_DEBUG_OBJECT (pad, "Dropping toc since preroll is done");
-    DISCO_UNLOCK (ps->dc);
+      gst_event_parse_stream_start (event, &stream_id);
+
+      g_free (ps->stream_id);
+      ps->stream_id = stream_id ? g_strdup (stream_id) : NULL;
+      break;
+    }
+    default:
+      break;
   }
 
   return GST_PAD_PROBE_OK;
@@ -685,6 +703,7 @@
   if (ps->toc) {
     gst_toc_unref (ps->toc);
   }
+  g_free (ps->stream_id);
 
   g_slice_free (PrivateStream, ps);
 
@@ -719,6 +738,9 @@
     gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, ps->tags, NULL);
   if (ps->toc)
     gst_structure_id_set (st, _TOC_QUARK, GST_TYPE_TOC, ps->toc, NULL);
+  if (ps->stream_id)
+    gst_structure_id_set (st, _STREAM_ID_QUARK, G_TYPE_STRING, ps->stream_id,
+        NULL);
 
   return st;
 }
@@ -752,6 +774,7 @@
   GstTagList *tags_st;
   GstToc *toc_st;
   const gchar *name;
+  gchar *stream_id;
   int tmp;
   guint utmp;
 
@@ -816,6 +839,12 @@
       info->parent.toc = toc_st;
     }
 
+    if (gst_structure_id_has_field (st, _STREAM_ID_QUARK)) {
+      gst_structure_id_get (st, _STREAM_ID_QUARK, G_TYPE_STRING, &stream_id,
+          NULL);
+      info->parent.stream_id = stream_id;
+    }
+
     if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
       gchar *language;
       if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
@@ -875,6 +904,12 @@
       info->parent.toc = toc_st;
     }
 
+    if (gst_structure_id_has_field (st, _STREAM_ID_QUARK)) {
+      gst_structure_id_get (st, _STREAM_ID_QUARK, G_TYPE_STRING, &stream_id,
+          NULL);
+      info->parent.stream_id = stream_id;
+    }
+
     gst_caps_unref (caps);
     return (GstDiscovererStreamInfo *) info;
 
@@ -908,6 +943,12 @@
       info->parent.toc = toc_st;
     }
 
+    if (gst_structure_id_has_field (st, _STREAM_ID_QUARK)) {
+      gst_structure_id_get (st, _STREAM_ID_QUARK, G_TYPE_STRING, &stream_id,
+          NULL);
+      info->parent.stream_id = stream_id;
+    }
+
     if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
       gchar *language;
       if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
@@ -940,6 +981,11 @@
       info->toc = toc_st;
     }
 
+    if (gst_structure_id_get (st, _STREAM_ID_QUARK, G_TYPE_STRING, &stream_id,
+            NULL)) {
+      info->stream_id = stream_id;
+    }
+
     gst_caps_unref (caps);
     return info;
   }
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.h b/gst-libs/gst/pbutils/gstdiscoverer.h
index d71272c..1df0f50 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.h
+++ b/gst-libs/gst/pbutils/gstdiscoverer.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_DISCOVERER_H_
@@ -62,6 +62,7 @@
 GstCaps*                 gst_discoverer_stream_info_get_caps(GstDiscovererStreamInfo* info);
 const GstTagList*        gst_discoverer_stream_info_get_tags(GstDiscovererStreamInfo* info);
 const GstToc*            gst_discoverer_stream_info_get_toc(GstDiscovererStreamInfo* info);
+const gchar*             gst_discoverer_stream_info_get_stream_id(GstDiscovererStreamInfo* info);
 const GstStructure*      gst_discoverer_stream_info_get_misc(GstDiscovererStreamInfo* info);
 const gchar *            gst_discoverer_stream_info_get_stream_type_nick(GstDiscovererStreamInfo* info);
 
diff --git a/gst-libs/gst/pbutils/gstpluginsbaseversion.c b/gst-libs/gst/pbutils/gstpluginsbaseversion.c
index 2906be5..48555eb 100644
--- a/gst-libs/gst/pbutils/gstpluginsbaseversion.c
+++ b/gst-libs/gst/pbutils/gstpluginsbaseversion.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/pbutils/gstpluginsbaseversion.h.in b/gst-libs/gst/pbutils/gstpluginsbaseversion.h.in
index b0301ef..317b285 100644
--- a/gst-libs/gst/pbutils/gstpluginsbaseversion.h.in
+++ b/gst-libs/gst/pbutils/gstpluginsbaseversion.h.in
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PLUGINS_BASE_VERSION_H__
diff --git a/gst-libs/gst/pbutils/install-plugins.c b/gst-libs/gst/pbutils/install-plugins.c
index 2ba46d9..ebfa76a 100644
--- a/gst-libs/gst/pbutils/install-plugins.c
+++ b/gst-libs/gst/pbutils/install-plugins.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/pbutils/install-plugins.h b/gst-libs/gst/pbutils/install-plugins.h
index 173adb1..4e0efc8 100644
--- a/gst-libs/gst/pbutils/install-plugins.h
+++ b/gst-libs/gst/pbutils/install-plugins.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PB_UTILS_INSTALL_PLUGINS_H__
diff --git a/gst-libs/gst/pbutils/missing-plugins.c b/gst-libs/gst/pbutils/missing-plugins.c
index 22af355..6ff16d5 100644
--- a/gst-libs/gst/pbutils/missing-plugins.c
+++ b/gst-libs/gst/pbutils/missing-plugins.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -156,6 +156,25 @@
   return ret;
 }
 
+gboolean
+has_single_media_type (const GstCaps * caps)
+{
+  guint n, ns;
+  const char *name0, *namen;
+
+  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
+
+  name0 = gst_structure_get_name (gst_caps_get_structure (caps, 0));
+  ns = gst_caps_get_size (caps);
+  for (n = 1; n < ns; ++n) {
+    namen = gst_structure_get_name (gst_caps_get_structure (caps, n));
+    if (strcmp (name0, namen)) {
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
+
 /**
  * gst_missing_uri_source_message_new:
  * @element: the #GstElement posting the message
@@ -319,7 +338,7 @@
   g_return_val_if_fail (GST_IS_CAPS (encode_caps), NULL);
   g_return_val_if_fail (!gst_caps_is_any (encode_caps), NULL);
   g_return_val_if_fail (!gst_caps_is_empty (encode_caps), NULL);
-  g_return_val_if_fail (gst_caps_is_fixed (encode_caps), NULL);
+  g_return_val_if_fail (has_single_media_type (encode_caps), NULL);
 
   description = gst_pb_utils_get_encoder_description (encode_caps);
   caps = copy_and_clean_caps (encode_caps);
@@ -424,7 +443,7 @@
 
   /* FIXME: use gst_installer_detail_new() here too */
   str = g_string_new (GST_DETAIL_STRING_MARKER "|");
-  g_string_append_printf (str, "%u.%u|", GST_VERSION_MAJOR, GST_VERSION_MINOR);
+  g_string_append_printf (str, "%s|", GST_API_VERSION);
 
   progname = (const gchar *) g_get_prgname ();
   if (progname) {
@@ -616,7 +635,7 @@
   GString *s;
 
   s = g_string_new (GST_DETAIL_STRING_MARKER "|");
-  g_string_append_printf (s, "%u.%u|", GST_VERSION_MAJOR, GST_VERSION_MINOR);
+  g_string_append_printf (s, "%s|", GST_API_VERSION);
 
   progname = (const gchar *) g_get_prgname ();
   if (progname) {
diff --git a/gst-libs/gst/pbutils/missing-plugins.h b/gst-libs/gst/pbutils/missing-plugins.h
index 508304e..5956a45 100644
--- a/gst-libs/gst/pbutils/missing-plugins.h
+++ b/gst-libs/gst/pbutils/missing-plugins.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PB_UTILS_MISSING_PLUGINS_H__
diff --git a/gst-libs/gst/pbutils/pbutils-private.h b/gst-libs/gst/pbutils/pbutils-private.h
index 48eea55..bb475a3 100644
--- a/gst-libs/gst/pbutils/pbutils-private.h
+++ b/gst-libs/gst/pbutils/pbutils-private.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 struct _GstDiscovererStreamInfo {
@@ -27,6 +27,7 @@
   GstCaps               *caps;
   GstTagList            *tags;
   GstToc                *toc;
+  gchar                 *stream_id;
   GstStructure          *misc;
 
   gpointer _gst_reserved[GST_PADDING];
@@ -106,3 +107,4 @@
 /* missing-plugins.c */
 
 GstCaps *copy_and_clean_caps (const GstCaps * caps);
+gboolean has_single_media_type (const GstCaps * caps);
diff --git a/gst-libs/gst/pbutils/pbutils.c b/gst-libs/gst/pbutils/pbutils.c
index 4e8a796..989dad6 100644
--- a/gst-libs/gst/pbutils/pbutils.c
+++ b/gst-libs/gst/pbutils/pbutils.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/pbutils/pbutils.h b/gst-libs/gst/pbutils/pbutils.h
index b9277b1..801cda9 100644
--- a/gst-libs/gst/pbutils/pbutils.h
+++ b/gst-libs/gst/pbutils/pbutils.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PB_UTILS_BASE_UTILS_H__
diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
index 7ab6863..974efd4 100644
--- a/gst-libs/gst/riff/Makefile.am
+++ b/gst-libs/gst/riff/Makefile.am
@@ -7,6 +7,7 @@
 
 libgstriff_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/riff
 libgstriff_@GST_API_VERSION@include_HEADERS = \
+	riff.h \
 	riff-ids.h \
 	riff-media.h \
 	riff-read.h
@@ -24,16 +25,15 @@
 
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstriff_@GST_API_VERSION@include_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstriff_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/riff/%',$(libgstriff_@GST_API_VERSION@include_HEADERS))
 
 GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstRiff \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/riff/riff.h" \
 		--add-include-path=$(builddir)/../tag \
 		--add-include-path=$(builddir)/../audio \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/riff/Makefile.in b/gst-libs/gst/riff/Makefile.in
index 2b26fa1..720e470 100644
--- a/gst-libs/gst/riff/Makefile.in
+++ b/gst-libs/gst/riff/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,14 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/riff
-DIST_COMMON = $(libgstriff_@GST_API_VERSION@include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp \
+	$(libgstriff_@GST_API_VERSION@include_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -145,10 +172,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstriff_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstriff_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstriff_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -161,20 +201,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstriff_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstriff_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -184,8 +220,7 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstriff_@GST_API_VERSION@include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -485,6 +520,7 @@
 
 libgstriff_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/riff
 libgstriff_@GST_API_VERSION@include_HEADERS = \
+	riff.h \
 	riff-ids.h \
 	riff-media.h \
 	riff-read.h
@@ -499,7 +535,6 @@
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstRiff-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstriff_@GST_API_VERSION@include_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstriff_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/riff/%',$(libgstriff_@GST_API_VERSION@include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -542,6 +577,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -568,12 +604,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstriff-@GST_API_VERSION@.la: $(libgstriff_@GST_API_VERSION@_la_OBJECTS) $(libgstriff_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstriff_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstriff_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstriff_@GST_API_VERSION@_la_OBJECTS) $(libgstriff_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -697,58 +736,12 @@
 	@list='$(libgstriff_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstriff_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstriff_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ctags CTAGS:
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+cscope cscopelist:
 
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -826,8 +819,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -895,10 +887,10 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-girDATA \
 	install-html install-html-am install-info install-info-am \
@@ -909,7 +901,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstriff_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
@@ -917,12 +909,12 @@
 
 @HAVE_INTROSPECTION_TRUE@GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstRiff \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/riff/riff.h" \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(builddir)/../tag \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(builddir)/../audio \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/riff/riff-ids.h b/gst-libs/gst/riff/riff-ids.h
index ab56179..9b9f0e5 100644
--- a/gst-libs/gst/riff/riff-ids.h
+++ b/gst-libs/gst/riff/riff-ids.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RIFF_IDS_H__
@@ -58,6 +58,7 @@
 #define GST_RIFF_TAG_fact GST_MAKE_FOURCC ('f','a','c','t')
 #define GST_RIFF_TAG_acid GST_MAKE_FOURCC ('a','c','i','d')
 #define GST_RIFF_TAG_labl GST_MAKE_FOURCC ('l','a','b','l')
+#define GST_RIFF_TAG_note GST_MAKE_FOURCC ('n','o','t','e')
 
 /* LIST types */
 #define GST_RIFF_LIST_movi GST_MAKE_FOURCC ('m','o','v','i')
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
index b2fe6da..2a0d6ed 100644
--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -97,6 +97,16 @@
       }
       break;
     }
+
+    case GST_MAKE_FOURCC ('G', 'R', 'E', 'Y'):
+    case GST_MAKE_FOURCC ('Y', '8', '0', '0'):
+    case GST_MAKE_FOURCC ('Y', '8', ' ', ' '):
+      caps = gst_caps_new_simple ("video/x-raw",
+          "format", G_TYPE_STRING, "GRAY8", NULL);
+      if (codec_name)
+        *codec_name = g_strdup ("Uncompressed 8-bit monochrome");
+      break;
+
     case GST_MAKE_FOURCC ('r', '2', '1', '0'):
       caps = gst_caps_new_simple ("video/x-raw",
           "format", G_TYPE_STRING, "r210", NULL);
@@ -534,7 +544,7 @@
 
     case GST_MAKE_FOURCC ('W', 'M', 'V', '3'):
       caps = gst_caps_new_simple ("video/x-wmv",
-          "wmvversion", G_TYPE_INT, 3, NULL);
+          "wmvversion", G_TYPE_INT, 3, "format", G_TYPE_STRING, "WMV3", NULL);
       if (codec_name)
         *codec_name = g_strdup ("Microsoft Windows Media 9");
       break;
@@ -882,9 +892,11 @@
   }
 
   if (strf != NULL) {
+    /* raw rgb data is stored topdown, but instead of inverting the buffer, */
+    /* some tools just negate the height field in the header (e.g. ffmpeg) */
     gst_caps_set_simple (caps,
         "width", G_TYPE_INT, strf->width,
-        "height", G_TYPE_INT, strf->height, NULL);
+        "height", G_TYPE_INT, ABS ((gint) strf->height), NULL);
   } else {
     gst_caps_set_simple (caps,
         "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
@@ -971,18 +983,13 @@
 #define MAX_CHANNEL_POSITIONS G_N_ELEMENTS (layout_mapping)
 
 static gboolean
-gst_riff_wavext_add_channel_mask (GstCaps * caps, guint32 layout,
-    gint channel_reorder_map[18])
+gst_riff_wavext_add_channel_mask (GstCaps * caps, gint num_channels,
+    guint32 layout, gint channel_reorder_map[18])
 {
-  GstStructure *s;
-  gint num_channels, i, p;
+  gint i, p;
   guint64 channel_mask = 0;
   GstAudioChannelPosition from[18], to[18];
 
-  s = gst_caps_get_structure (caps, 0);
-  if (!gst_structure_get_int (s, "channels", &num_channels))
-    g_return_val_if_reached (FALSE);
-
   if (num_channels < 1 || num_channels > MAX_CHANNEL_POSITIONS) {
     GST_DEBUG ("invalid number of channels: %d", num_channels);
     return FALSE;
@@ -1031,10 +1038,8 @@
 
 static gboolean
 gst_riff_wave_add_default_channel_mask (GstCaps * caps,
-    gint channel_reorder_map[18])
+    gint nchannels, gint channel_reorder_map[18])
 {
-  GstStructure *s;
-  gint nchannels;
   guint64 channel_mask = 0;
   static const gint reorder_maps[8][11] = {
     {0,},
@@ -1047,11 +1052,6 @@
     {0, 1, 4, 5, 2, 3, 6, 7}
   };
 
-  s = gst_caps_get_structure (caps, 0);
-
-  if (!gst_structure_get_int (s, "channels", &nchannels))
-    g_return_val_if_reached (FALSE);
-
   if (nchannels > 8) {
     GST_DEBUG ("invalid number of channels: %d", nchannels);
     return FALSE;
@@ -1200,7 +1200,7 @@
          * 8 channels. */
         if (ch > 8)
           GST_WARNING ("don't know default layout for %d channels", ch);
-        else if (gst_riff_wave_add_default_channel_mask (caps,
+        else if (gst_riff_wave_add_default_channel_mask (caps, ch,
                 channel_reorder_map))
           GST_DEBUG ("using default channel layout for %d channels", ch);
         else
@@ -1255,7 +1255,7 @@
          * 8 channels. */
         if (ch > 8)
           GST_WARNING ("don't know default layout for %d channels", ch);
-        else if (gst_riff_wave_add_default_channel_mask (caps,
+        else if (gst_riff_wave_add_default_channel_mask (caps, ch,
                 channel_reorder_map))
           GST_DEBUG ("using default channel layout for %d channels", ch);
         else
@@ -1583,22 +1583,6 @@
                 "channels", G_TYPE_INT, strf->channels,
                 "rate", G_TYPE_INT, strf->rate, NULL);
 
-            /* If channel_mask == 0 and channels > 2 let's
-             * assume default layout as some wav files don't have the
-             * channel mask set. Don't set the layout for 1 channel. */
-            if (channel_mask == 0 && strf->channels > 1)
-              channel_mask =
-                  gst_riff_wavext_get_default_channel_mask (strf->channels);
-
-            if ((channel_mask != 0 || strf->channels > 1) &&
-                !gst_riff_wavext_add_channel_mask (caps, channel_mask,
-                    channel_reorder_map)) {
-              GST_WARNING ("failed to add channel layout");
-              gst_caps_unref (caps);
-              caps = NULL;
-            }
-            rate_chan = FALSE;
-
             if (codec_name) {
               *codec_name = g_strdup_printf ("Uncompressed %d-bit PCM audio",
                   strf->bits_per_sample);
@@ -1616,29 +1600,13 @@
                 "channels", G_TYPE_INT, strf->channels,
                 "rate", G_TYPE_INT, strf->rate, NULL);
 
-            /* If channel_mask == 0 and channels > 1 let's
-             * assume default layout as some wav files don't have the
-             * channel mask set. Don't set the layout for 1 channel. */
-            if (channel_mask == 0 && strf->channels > 1)
-              channel_mask =
-                  gst_riff_wavext_get_default_channel_mask (strf->channels);
-
-            if ((channel_mask != 0 || strf->channels > 1) &&
-                !gst_riff_wavext_add_channel_mask (caps, channel_mask,
-                    channel_reorder_map)) {
-              GST_WARNING ("failed to add channel layout");
-              gst_caps_unref (caps);
-              caps = NULL;
-            }
-            rate_chan = FALSE;
-
             if (codec_name) {
               *codec_name =
                   g_strdup_printf ("Uncompressed %d-bit IEEE float audio",
                   strf->bits_per_sample);
             }
           }
-        } else if (subformat_guid[0] == 00000006) {
+        } else if (subformat_guid[0] == 0x0000006) {
           GST_DEBUG ("ALAW");
           if (strf != NULL) {
             if (strf->bits_per_sample != 8) {
@@ -1685,6 +1653,26 @@
             *codec_name = g_strdup ("Mu-law audio");
         } else if (subformat_guid[0] == 0x00000092) {
           GST_DEBUG ("FIXME: handle DOLBY AC3 SPDIF format");
+          GST_DEBUG ("WAVE_FORMAT_EXTENSIBLE AC-3 SPDIF audio");
+          caps = gst_caps_new_empty_simple ("audio/x-ac3");
+          if (codec_name)
+            *codec_name = g_strdup ("wavext AC-3 SPDIF audio");
+        } else if (subformat_guid[0] == GST_RIFF_WAVE_FORMAT_EXTENSIBLE) {
+          GST_DEBUG ("WAVE_FORMAT_EXTENSIBLE nested");
+        } else {
+          /* recurse where no special consideration has yet to be identified 
+           * for the subformat guid */
+          caps = gst_riff_create_audio_caps (subformat_guid[0], strh, strf,
+              strf_data, strd_data, codec_name, channel_reorder_map);
+          if (!codec_name)
+            GST_DEBUG ("WAVE_FORMAT_EXTENSIBLE audio");
+          if (caps) {
+            if (codec_name) {
+              GST_DEBUG ("WAVE_FORMAT_EXTENSIBLE %s", *codec_name);
+              *codec_name = g_strjoin ("wavext ", *codec_name, NULL);
+            }
+            return caps;
+          }
         }
       } else if (subformat_guid[0] == 0x6ba47966 &&
           subformat_guid[1] == 0x41783f83 &&
@@ -1694,6 +1682,24 @@
           *codec_name = g_strdup ("Ogg-AVI");
       }
 
+      if (strf != NULL) {
+        /* If channel_mask == 0 and channels > 1 let's
+         * assume default layout as some wav files don't have the
+         * channel mask set. Don't set the layout for 1 channel. */
+        if (channel_mask == 0 && strf->channels > 1)
+          channel_mask =
+              gst_riff_wavext_get_default_channel_mask (strf->channels);
+
+        if ((channel_mask != 0 || strf->channels > 1) &&
+            !gst_riff_wavext_add_channel_mask (caps, strf->channels,
+                channel_mask, channel_reorder_map)) {
+          GST_WARNING ("failed to add channel layout");
+          gst_caps_unref (caps);
+          caps = NULL;
+        }
+        rate_chan = FALSE;
+      }
+
       if (caps == NULL) {
         GST_WARNING ("Unknown WAVE_FORMAT_EXTENSIBLE audio format");
         return NULL;
diff --git a/gst-libs/gst/riff/riff-media.h b/gst-libs/gst/riff/riff-media.h
index ef5bc2b..3ad2fd2 100644
--- a/gst-libs/gst/riff/riff-media.h
+++ b/gst-libs/gst/riff/riff-media.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RIFF_MEDIA_H__
diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c
index 511cb01..8bc5fa6 100644
--- a/gst-libs/gst/riff/riff-read.c
+++ b/gst-libs/gst/riff/riff-read.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -501,7 +501,7 @@
     len = GST_READ_UINT16_LE (&info.data[16]);
     if (len + 2 + sizeof (gst_riff_strf_auds) > info.size) {
       GST_WARNING_OBJECT (element,
-          "Extradata indicated %d bytes, but only %" G_GSSIZE_FORMAT
+          "Extradata indicated %d bytes, but only %" G_GSIZE_FORMAT
           " available", len, info.size - 2 - sizeof (gst_riff_strf_auds));
       len = info.size - 2 - sizeof (gst_riff_strf_auds);
     }
@@ -534,7 +534,7 @@
   {
     GST_ERROR_OBJECT (element,
         "Too small strf_auds (%" G_GSIZE_FORMAT " available"
-        ", %" G_GSSIZE_FORMAT " needed)", info.size,
+        ", %" G_GSIZE_FORMAT " needed)", info.size,
         sizeof (gst_riff_strf_auds));
     gst_buffer_unmap (buf, &info);
     gst_buffer_unref (buf);
@@ -611,7 +611,7 @@
   {
     GST_ERROR_OBJECT (element,
         "Too small strf_iavs (%" G_GSIZE_FORMAT "available"
-        ", %" G_GSSIZE_FORMAT " needed)", info.size,
+        ", %" G_GSIZE_FORMAT " needed)", info.size,
         sizeof (gst_riff_strf_iavs));
     gst_buffer_unmap (buf, &info);
     gst_buffer_unref (buf);
diff --git a/gst-libs/gst/riff/riff-read.h b/gst-libs/gst/riff/riff-read.h
index cf07dda..918b997 100644
--- a/gst-libs/gst/riff/riff-read.h
+++ b/gst-libs/gst/riff/riff-read.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RIFF_READ_H__
diff --git a/gst-libs/gst/riff/riff.c b/gst-libs/gst/riff/riff.c
index d14b32a..70da254 100644
--- a/gst-libs/gst/riff/riff.c
+++ b/gst-libs/gst/riff/riff.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstriff
diff --git a/gst-libs/gst/riff/riff.h b/gst-libs/gst/riff/riff.h
new file mode 100644
index 0000000..a4b2205
--- /dev/null
+++ b/gst-libs/gst/riff/riff.h
@@ -0,0 +1,29 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstriff.h: single include header for gst-riff library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RIFF_H__
+#define __GST_RIFF_H__
+
+#include <gst/riff/riff-ids.h>
+#include <gst/riff/riff-media.h>
+#include <gst/riff/riff-read.h>
+
+#endif /* __GST_RIFF_H__ */
diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
index fc65d52..15126ff 100644
--- a/gst-libs/gst/rtp/Makefile.am
+++ b/gst-libs/gst/rtp/Makefile.am
@@ -1,8 +1,11 @@
 libgstrtpincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/rtp
 
-libgstrtpinclude_HEADERS = gstrtpbuffer.h \
+libgstrtpinclude_HEADERS = \
+			   rtp.h \
+			   gstrtpbuffer.h \
 			   gstrtcpbuffer.h \
 			   gstrtppayloads.h \
+			   gstrtphdrext.h \
 			gstrtpbaseaudiopayload.h \
 			gstrtpbasepayload.h \
 			gstrtpbasedepayload.h
@@ -12,6 +15,7 @@
 libgstrtp_@GST_API_VERSION@_la_SOURCES = gstrtpbuffer.c \
 			        gstrtcpbuffer.c \
 			        gstrtppayloads.c \
+			   	gstrtphdrext.c \
 			        gstrtpbaseaudiopayload.c \
 				gstrtpbasepayload.c \
 				gstrtpbasedepayload.c
@@ -25,16 +29,15 @@
 
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstrtpinclude_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstrtp_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/rtp/%',$(libgstrtpinclude_HEADERS))
 
 GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstRtp \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/rtp/rtp.h" \
 		-I$(top_srcdir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/rtp/Makefile.in b/gst-libs/gst/rtp/Makefile.in
index cb1601a..775607a 100644
--- a/gst-libs/gst/rtp/Makefile.in
+++ b/gst-libs/gst/rtp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/rtp
-DIST_COMMON = README $(libgstrtpinclude_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(libgstrtpinclude_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -138,6 +164,7 @@
 	libgstrtp_@GST_API_VERSION@_la-gstrtpbuffer.lo \
 	libgstrtp_@GST_API_VERSION@_la-gstrtcpbuffer.lo \
 	libgstrtp_@GST_API_VERSION@_la-gstrtppayloads.lo \
+	libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.lo \
 	libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.lo \
 	libgstrtp_@GST_API_VERSION@_la-gstrtpbasepayload.lo \
 	libgstrtp_@GST_API_VERSION@_la-gstrtpbasedepayload.lo
@@ -146,10 +173,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstrtp_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstrtp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstrtp_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -162,20 +202,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstrtp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstrtp_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -185,6 +221,23 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstrtpinclude_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -479,9 +532,12 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 libgstrtpincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/rtp
-libgstrtpinclude_HEADERS = gstrtpbuffer.h \
+libgstrtpinclude_HEADERS = \
+			   rtp.h \
+			   gstrtpbuffer.h \
 			   gstrtcpbuffer.h \
 			   gstrtppayloads.h \
+			   gstrtphdrext.h \
 			gstrtpbaseaudiopayload.h \
 			gstrtpbasepayload.h \
 			gstrtpbasedepayload.h
@@ -490,6 +546,7 @@
 libgstrtp_@GST_API_VERSION@_la_SOURCES = gstrtpbuffer.c \
 			        gstrtcpbuffer.c \
 			        gstrtppayloads.c \
+			   	gstrtphdrext.c \
 			        gstrtpbaseaudiopayload.c \
 				gstrtpbasepayload.c \
 				gstrtpbasedepayload.c
@@ -500,7 +557,6 @@
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstRtp-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstrtpinclude_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstrtp_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/rtp/%',$(libgstrtpinclude_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -543,6 +599,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -569,12 +626,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstrtp-@GST_API_VERSION@.la: $(libgstrtp_@GST_API_VERSION@_la_OBJECTS) $(libgstrtp_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstrtp_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstrtp_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstrtp_@GST_API_VERSION@_la_OBJECTS) $(libgstrtp_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -589,6 +649,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtpbasedepayload.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtpbasepayload.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtpbuffer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtppayloads.Plo@am__quote@
 
 .c.o:
@@ -633,6 +694,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_API_VERSION@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.c
 
+libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.lo: gstrtphdrext.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.Tpo -c -o libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.lo `test -f 'gstrtphdrext.c' || echo '$(srcdir)/'`gstrtphdrext.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.Tpo $(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtphdrext.c' object='libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_API_VERSION@_la-gstrtphdrext.lo `test -f 'gstrtphdrext.c' || echo '$(srcdir)/'`gstrtphdrext.c
+
 libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.lo: gstrtpbaseaudiopayload.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.Tpo -c -o libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.lo `test -f 'gstrtpbaseaudiopayload.c' || echo '$(srcdir)/'`gstrtpbaseaudiopayload.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.Tpo $(DEPDIR)/libgstrtp_@GST_API_VERSION@_la-gstrtpbaseaudiopayload.Plo
@@ -723,26 +791,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstrtpincludedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -754,15 +811,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -771,6 +824,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -918,32 +986,32 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-libgstrtpincludeHEADERS \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip install-typelibsDATA installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
-	uninstall-libLTLIBRARIES uninstall-libgstrtpincludeHEADERS \
-	uninstall-typelibsDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-libgstrtpincludeHEADERS install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	install-typelibsDATA installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-girDATA uninstall-libLTLIBRARIES \
+	uninstall-libgstrtpincludeHEADERS uninstall-typelibsDATA
 
 
 @HAVE_INTROSPECTION_TRUE@GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstRtp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/rtp/rtp.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.c b/gst-libs/gst/rtp/gstrtcpbuffer.c
index c9299a7..ec5901f 100644
--- a/gst-libs/gst/rtp/gstrtcpbuffer.c
+++ b/gst-libs/gst/rtp/gstrtcpbuffer.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.h b/gst-libs/gst/rtp/gstrtcpbuffer.h
index b1a7655..b5ff4a1 100644
--- a/gst-libs/gst/rtp/gstrtcpbuffer.h
+++ b/gst-libs/gst/rtp/gstrtcpbuffer.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTCPBUFFER_H__
@@ -66,6 +66,8 @@
  * @GST_RTCP_RTPFB_TYPE_TMMBR: Temporary Maximum Media Stream Bit Rate Request
  * @GST_RTCP_RTPFB_TYPE_TMMBN: Temporary Maximum Media Stream Bit Rate
  *    Notification
+ * @GST_RTCP_RTPFB_TYPE_RTCP_SR_SEQ: Request an SR packet for early
+ *    synchronization
  * @GST_RTCP_PSFB_TYPE_PLI: Picture Loss Indication
  * @GST_RTCP_PSFB_TYPE_SLI: Slice Loss Indication
  * @GST_RTCP_PSFB_TYPE_RPSI: Reference Picture Selection Indication
@@ -80,22 +82,24 @@
 typedef enum
 {
   /* generic */
-  GST_RTCP_FB_TYPE_INVALID    = 0,
+  GST_RTCP_FB_TYPE_INVALID        = 0,
   /* RTPFB types */
-  GST_RTCP_RTPFB_TYPE_NACK    = 1,
+  GST_RTCP_RTPFB_TYPE_NACK        = 1,
   /* RTPFB types assigned in RFC 5104 */
-  GST_RTCP_RTPFB_TYPE_TMMBR   = 3,
-  GST_RTCP_RTPFB_TYPE_TMMBN   = 4,
+  GST_RTCP_RTPFB_TYPE_TMMBR       = 3,
+  GST_RTCP_RTPFB_TYPE_TMMBN       = 4,
+  /* RTPFB types assigned in RFC 6051 */
+  GST_RTCP_RTPFB_TYPE_RCTP_SR_REQ = 5,
   /* PSFB types */
-  GST_RTCP_PSFB_TYPE_PLI      = 1,
-  GST_RTCP_PSFB_TYPE_SLI      = 2,
-  GST_RTCP_PSFB_TYPE_RPSI     = 3,
-  GST_RTCP_PSFB_TYPE_AFB      = 15,
+  GST_RTCP_PSFB_TYPE_PLI          = 1,
+  GST_RTCP_PSFB_TYPE_SLI          = 2,
+  GST_RTCP_PSFB_TYPE_RPSI         = 3,
+  GST_RTCP_PSFB_TYPE_AFB          = 15,
   /* PSFB types assigned in RFC 5104 */
-  GST_RTCP_PSFB_TYPE_FIR      = 4,
-  GST_RTCP_PSFB_TYPE_TSTR     = 5,
-  GST_RTCP_PSFB_TYPE_TSTN     = 6,
-  GST_RTCP_PSFB_TYPE_VBCN     = 7,
+  GST_RTCP_PSFB_TYPE_FIR          = 4,
+  GST_RTCP_PSFB_TYPE_TSTR         = 5,
+  GST_RTCP_PSFB_TYPE_TSTN         = 6,
+  GST_RTCP_PSFB_TYPE_VBCN         = 7,
 } GstRTCPFBType;
 
 /**
diff --git a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c
index 83d933b..603fe5b 100644
--- a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c
+++ b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -583,7 +583,7 @@
 
   if (timestamp == -1) {
     /* calculate the timestamp */
-    timestamp = gst_adapter_prev_timestamp (adapter, &distance);
+    timestamp = gst_adapter_prev_pts (adapter, &distance);
 
     GST_LOG_OBJECT (baseaudiopayload,
         "last timestamp %" GST_TIME_FORMAT ", distance %" G_GUINT64_FORMAT,
diff --git a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h
index a6dedd8..ff2e13d 100644
--- a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h
+++ b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_BASE_AUDIO_PAYLOAD_H__
diff --git a/gst-libs/gst/rtp/gstrtpbasedepayload.c b/gst-libs/gst/rtp/gstrtpbasedepayload.c
index 122adb1..33a0f30 100644
--- a/gst-libs/gst/rtp/gstrtpbasedepayload.c
+++ b/gst-libs/gst/rtp/gstrtpbasedepayload.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -643,7 +643,7 @@
 gst_rtp_base_depayload_packet_lost (GstRTPBaseDepayload * filter,
     GstEvent * event)
 {
-  GstClockTime timestamp, duration, position;
+  GstClockTime timestamp, duration;
   GstEvent *sevent;
   const GstStructure *s;
 
@@ -656,10 +656,6 @@
   gst_structure_get_clock_time (s, "timestamp", &timestamp);
   gst_structure_get_clock_time (s, "duration", &duration);
 
-  position = timestamp;
-  if (duration != -1)
-    position += duration;
-
   /* send GAP event */
   sevent = gst_event_new_gap (timestamp, duration);
 
diff --git a/gst-libs/gst/rtp/gstrtpbasedepayload.h b/gst-libs/gst/rtp/gstrtpbasedepayload.h
index fc838a2..91586de 100644
--- a/gst-libs/gst/rtp/gstrtpbasedepayload.h
+++ b/gst-libs/gst/rtp/gstrtpbasedepayload.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_BASE_DEPAYLOAD_H__
diff --git a/gst-libs/gst/rtp/gstrtpbasepayload.c b/gst-libs/gst/rtp/gstrtpbasepayload.c
index edad069..ff63496 100644
--- a/gst-libs/gst/rtp/gstrtpbasepayload.c
+++ b/gst-libs/gst/rtp/gstrtpbasepayload.c
@@ -51,6 +51,9 @@
   gint64 caps_max_ptime;
 
   gboolean negotiated;
+
+  gboolean delay_segment;
+  GstEvent *pending_segment;
 };
 
 /* RTPBasePayload signals and args */
@@ -348,6 +351,7 @@
     case GST_EVENT_FLUSH_STOP:
       res = gst_pad_event_default (rtpbasepayload->sinkpad, parent, event);
       gst_segment_init (&rtpbasepayload->segment, GST_FORMAT_UNDEFINED);
+      gst_event_replace (&rtpbasepayload->priv->pending_segment, NULL);
       break;
     case GST_EVENT_CAPS:
     {
@@ -379,7 +383,13 @@
 
       GST_DEBUG_OBJECT (rtpbasepayload,
           "configured SEGMENT %" GST_SEGMENT_FORMAT, segment);
-      res = gst_pad_event_default (rtpbasepayload->sinkpad, parent, event);
+      if (rtpbasepayload->priv->delay_segment) {
+        gst_event_replace (&rtpbasepayload->priv->pending_segment, event);
+        gst_event_unref (event);
+        res = TRUE;
+      } else {
+        res = gst_pad_event_default (rtpbasepayload->sinkpad, parent, event);
+      }
       break;
     }
     default:
@@ -910,10 +920,16 @@
 
   res = gst_rtp_base_payload_prepare_push (payload, list, TRUE);
 
-  if (G_LIKELY (res == GST_FLOW_OK))
+  if (G_LIKELY (res == GST_FLOW_OK)) {
+    if (G_UNLIKELY (payload->priv->pending_segment)) {
+      gst_pad_push_event (payload->srcpad, payload->priv->pending_segment);
+      payload->priv->pending_segment = FALSE;
+      payload->priv->delay_segment = FALSE;
+    }
     res = gst_pad_push_list (payload->srcpad, list);
-  else
+  } else {
     gst_buffer_list_unref (list);
+  }
 
   return res;
 }
@@ -937,10 +953,16 @@
 
   res = gst_rtp_base_payload_prepare_push (payload, buffer, FALSE);
 
-  if (G_LIKELY (res == GST_FLOW_OK))
+  if (G_LIKELY (res == GST_FLOW_OK)) {
+    if (G_UNLIKELY (payload->priv->pending_segment)) {
+      gst_pad_push_event (payload->srcpad, payload->priv->pending_segment);
+      payload->priv->pending_segment = FALSE;
+      payload->priv->delay_segment = FALSE;
+    }
     res = gst_pad_push (payload->srcpad, buffer);
-  else
+  } else {
     gst_buffer_unref (buffer);
+  }
 
   return res;
 }
@@ -1074,6 +1096,8 @@
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       gst_segment_init (&rtpbasepayload->segment, GST_FORMAT_UNDEFINED);
+      rtpbasepayload->priv->delay_segment = TRUE;
+      gst_event_replace (&rtpbasepayload->priv->pending_segment, NULL);
 
       if (priv->seqnum_offset_random)
         rtpbasepayload->seqnum_base = g_random_int_range (0, G_MAXUINT16);
@@ -1106,7 +1130,8 @@
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
       g_atomic_int_set (&rtpbasepayload->priv->notified_first_timestamp, 1);
       break;
-    case GST_STATE_CHANGE_READY_TO_NULL:
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      gst_event_replace (&rtpbasepayload->priv->pending_segment, NULL);
       break;
     default:
       break;
diff --git a/gst-libs/gst/rtp/gstrtpbasepayload.h b/gst-libs/gst/rtp/gstrtpbasepayload.h
index 39ce430..b35e211 100644
--- a/gst-libs/gst/rtp/gstrtpbasepayload.h
+++ b/gst-libs/gst/rtp/gstrtpbasepayload.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTP_BASE_PAYLOAD_H__
diff --git a/gst-libs/gst/rtp/gstrtpbuffer.c b/gst-libs/gst/rtp/gstrtpbuffer.c
index 836ad69..ebc0824 100644
--- a/gst-libs/gst/rtp/gstrtpbuffer.c
+++ b/gst-libs/gst/rtp/gstrtpbuffer.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -651,7 +651,7 @@
 }
 
 /**
- * gst_rtp_buffer_get_extension_data:
+ * gst_rtp_buffer_get_extension_data: (skip)
  * @rtp: the RTP packet
  * @bits: (out): location for result bits
  * @data: (out) (array) (element-type guint8) (transfer none): location for data
@@ -688,6 +688,47 @@
   return TRUE;
 }
 
+/**
+ * gst_rtp_buffer_get_extension_bytes:
+ * @rtp: the RTP packet
+ * @bits: (out): location for header bits
+ *
+ * Similar to gst_rtp_buffer_get_extension_data, but more suitable for language
+ * bindings usage. @bits will contain the extension 16 bits of custom data and
+ * the extension data (not including the extension header) is placed in a new
+ * #GBytes structure.
+ *
+ * If @rtp did not contain an extension, this function will return %NULL, with
+ * @bits unchanged. If there is an extension header but no extension data then
+ * an empty #GBytes will be returned.
+ *
+ * Returns: (transfer full): A new #GBytes if an extension header was present
+ * and %NULL otherwise.
+ *
+ * Rename to: gst_rtp_buffer_get_extension_data
+ *
+ * Since: 1.2
+ */
+GBytes *
+gst_rtp_buffer_get_extension_bytes (GstRTPBuffer * rtp, guint16 * bits)
+{
+  gpointer buf_data = NULL;
+  guint buf_len;
+
+  g_return_val_if_fail (rtp != NULL, FALSE);
+
+  if (!gst_rtp_buffer_get_extension_data (rtp, bits, &buf_data, &buf_len))
+    return NULL;
+
+  if (buf_len == 0) {
+    /* if no extension data is present return an empty GBytes */
+    buf_data = NULL;
+  }
+
+  /* multiply length with 4 to get length in bytes */
+  return g_bytes_new (buf_data, 4 * buf_len);
+}
+
 /* ensure header, payload and padding are in separate buffers */
 static void
 ensure_buffers (GstRTPBuffer * rtp)
@@ -1057,7 +1098,7 @@
 }
 
 /**
- * gst_rtp_buffer_get_payload:
+ * gst_rtp_buffer_get_payload: (skip)
  * @rtp: the RTP packet
  *
  * Get a pointer to the payload data in @buffer. This pointer is valid as long
@@ -1093,6 +1134,34 @@
 }
 
 /**
+ * gst_rtp_buffer_get_payload_bytes:
+ * @rtp: the RTP packet
+ *
+ * Similar to gst_rtp_buffer_get_payload, but more suitable for language
+ * bindings usage. The return value is a pointer to a #GBytes structure
+ * containing the payload data in @rtp.
+ *
+ * Returns: (transfer full): A new #GBytes containing the payload data in @rtp.
+ *
+ * Rename to: gst_rtp_buffer_get_payload
+ *
+ * Since: 1.2
+ */
+GBytes *
+gst_rtp_buffer_get_payload_bytes (GstRTPBuffer * rtp)
+{
+  gpointer data;
+
+  g_return_val_if_fail (rtp != NULL, NULL);
+
+  data = gst_rtp_buffer_get_payload (rtp);
+  if (data == NULL)
+    return NULL;
+
+  return g_bytes_new (data, gst_rtp_buffer_get_payload_len (rtp));
+}
+
+/**
  * gst_rtp_buffer_default_clock_rate:
  * @payload_type: the static payload type
  *
diff --git a/gst-libs/gst/rtp/gstrtpbuffer.h b/gst-libs/gst/rtp/gstrtpbuffer.h
index 5551c5a..8a4e5d8 100644
--- a/gst-libs/gst/rtp/gstrtpbuffer.h
+++ b/gst-libs/gst/rtp/gstrtpbuffer.h
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTPBUFFER_H__
@@ -94,6 +94,7 @@
 void            gst_rtp_buffer_set_extension         (GstRTPBuffer *rtp, gboolean extension);
 gboolean        gst_rtp_buffer_get_extension_data    (GstRTPBuffer *rtp, guint16 *bits,
                                                       gpointer *data, guint *wordlen);
+GBytes*         gst_rtp_buffer_get_extension_bytes   (GstRTPBuffer *rtp, guint16 *bits);
 gboolean        gst_rtp_buffer_set_extension_data    (GstRTPBuffer *rtp, guint16 bits, guint16 length);
 
 guint32         gst_rtp_buffer_get_ssrc              (GstRTPBuffer *rtp);
@@ -120,6 +121,7 @@
 
 guint           gst_rtp_buffer_get_payload_len       (GstRTPBuffer *rtp);
 gpointer        gst_rtp_buffer_get_payload           (GstRTPBuffer *rtp);
+GBytes*         gst_rtp_buffer_get_payload_bytes     (GstRTPBuffer *rtp);
 
 /* some helpers */
 guint32         gst_rtp_buffer_default_clock_rate    (guint8 payload_type);
diff --git a/gst-libs/gst/rtp/gstrtphdrext.c b/gst-libs/gst/rtp/gstrtphdrext.c
new file mode 100644
index 0000000..ed8f33a
--- /dev/null
+++ b/gst-libs/gst/rtp/gstrtphdrext.c
@@ -0,0 +1,139 @@
+/* GStreamer
+ * Copyright (C) <2012> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstrtpexthdr
+ * @short_description: Helper methods for dealing with RTP header extensions
+ * @see_also: #GstRTPBasePayload, #GstRTPBaseDepayload, gstrtpbuffer
+ *
+ * <refsect2>
+ * <para>
+ * </para>
+ * </refsect2>
+ *
+ * Last reviewed on 2012-09-24 (1.0)
+ */
+
+#include "gstrtphdrext.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+/**
+ * gst_rtp_hdrext_set_ntp_64:
+ * @data: the data to write to
+ * @size: the size of @data
+ * @ntptime: the NTP time
+ *
+ * Writes the NTP time in @ntptime to the format required for the NTP-64 header
+ * extension. @data must hold at least #GST_RTP_HDREXT_NTP_64_SIZE bytes.
+ *
+ * Returns: %TRUE on success.
+ */
+gboolean
+gst_rtp_hdrext_set_ntp_64 (gpointer data, guint size, guint64 ntptime)
+{
+  g_return_val_if_fail (data != NULL, FALSE);
+  g_return_val_if_fail (size >= GST_RTP_HDREXT_NTP_64_SIZE, FALSE);
+
+  GST_WRITE_UINT64_BE (data, ntptime);
+
+  return TRUE;
+}
+
+/**
+ * gst_rtp_hdrext_get_ntp_64:
+ * @data: the data to read from
+ * @size: the size of @data
+ * @ntptime: the result NTP time
+ *
+ * Reads the NTP time from the @size NTP-64 extension bytes in @data and store the
+ * result in @ntptime.
+ *
+ * Returns: %TRUE on success.
+ */
+gboolean
+gst_rtp_hdrext_get_ntp_64 (gpointer data, guint size, guint64 * ntptime)
+{
+  g_return_val_if_fail (data != NULL, FALSE);
+  g_return_val_if_fail (size >= GST_RTP_HDREXT_NTP_64_SIZE, FALSE);
+
+  if (ntptime)
+    *ntptime = GST_READ_UINT64_BE (data);
+
+  return TRUE;
+}
+
+/**
+ * gst_rtp_hdrext_set_ntp_56:
+ * @data: the data to write to
+ * @size: the size of @data
+ * @ntptime: the NTP time
+ *
+ * Writes the NTP time in @ntptime to the format required for the NTP-56 header
+ * extension. @data must hold at least #GST_RTP_HDREXT_NTP_56_SIZE bytes.
+ *
+ * Returns: %TRUE on success.
+ */
+gboolean
+gst_rtp_hdrext_set_ntp_56 (gpointer data, guint size, guint64 ntptime)
+{
+  guint8 *d = data;
+  gint i;
+
+  g_return_val_if_fail (data != NULL, FALSE);
+  g_return_val_if_fail (size >= GST_RTP_HDREXT_NTP_56_SIZE, FALSE);
+
+  for (i = 0; i < 7; i++) {
+    d[6 - i] = ntptime & 0xff;
+    ntptime >>= 8;
+  }
+  return TRUE;
+}
+
+/**
+ * gst_rtp_hdrext_get_ntp_56:
+ * @data: the data to read from
+ * @size: the size of @data
+ * @ntptime: the result NTP time
+ *
+ * Reads the NTP time from the @size NTP-56 extension bytes in @data and store the
+ * result in @ntptime.
+ *
+ * Returns: %TRUE on success.
+ */
+gboolean
+gst_rtp_hdrext_get_ntp_56 (gpointer data, guint size, guint64 * ntptime)
+{
+  guint8 *d = data;
+
+  g_return_val_if_fail (data != NULL, FALSE);
+  g_return_val_if_fail (size >= GST_RTP_HDREXT_NTP_56_SIZE, FALSE);
+
+  if (ntptime) {
+    gint i;
+
+    *ntptime = 0;
+    for (i = 0; i < 7; i++) {
+      *ntptime <<= 8;
+      *ntptime |= d[i];
+    }
+  }
+  return TRUE;
+}
diff --git a/gst-libs/gst/rtp/gstrtphdrext.h b/gst-libs/gst/rtp/gstrtphdrext.h
new file mode 100644
index 0000000..0447a7f
--- /dev/null
+++ b/gst-libs/gst/rtp/gstrtphdrext.h
@@ -0,0 +1,50 @@
+/* GStreamer
+ * Copyright (C) <2012> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * gstrtphdrext.h: RTP header extensions
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_RTPHDREXT_H__
+#define __GST_RTPHDREXT_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+G_BEGIN_DECLS
+
+#define GST_RTP_HDREXT_BASE "urn:ietf:params:rtp-hdrext:"
+
+/* RFC 6051 */
+#define GST_RTP_HDREXT_NTP_64 "ntp-64"
+
+#define GST_RTP_HDREXT_NTP_64_SIZE 8
+
+gboolean       gst_rtp_hdrext_set_ntp_64  (gpointer data, guint size, guint64 ntptime);
+gboolean       gst_rtp_hdrext_get_ntp_64  (gpointer data, guint size, guint64 *ntptime);
+
+#define GST_RTP_HDREXT_NTP_56 "ntp-56"
+
+#define GST_RTP_HDREXT_NTP_56_SIZE 7
+
+gboolean       gst_rtp_hdrext_set_ntp_56  (gpointer data, guint size, guint64 ntptime);
+gboolean       gst_rtp_hdrext_get_ntp_56  (gpointer data, guint size, guint64 *ntptime);
+
+G_END_DECLS
+
+#endif /* __GST_RTPHDREXT_H__ */
+
diff --git a/gst-libs/gst/rtp/gstrtppayloads.c b/gst-libs/gst/rtp/gstrtppayloads.c
index 97c0fa9..5717ec6 100644
--- a/gst-libs/gst/rtp/gstrtppayloads.c
+++ b/gst-libs/gst/rtp/gstrtppayloads.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/rtp/gstrtppayloads.h b/gst-libs/gst/rtp/gstrtppayloads.h
index cdfef13..11d7df7 100644
--- a/gst-libs/gst/rtp/gstrtppayloads.h
+++ b/gst-libs/gst/rtp/gstrtppayloads.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTPPAYLOADS_H__
diff --git a/gst-libs/gst/rtp/rtp.h b/gst-libs/gst/rtp/rtp.h
new file mode 100644
index 0000000..f0f8a71
--- /dev/null
+++ b/gst-libs/gst/rtp/rtp.h
@@ -0,0 +1,33 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstrtp.h: single include header for gst-rtp library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_H__
+#define __GST_RTP_H__
+
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/rtp/gstrtcpbuffer.h>
+#include <gst/rtp/gstrtppayloads.h>
+#include <gst/rtp/gstrtphdrext.h>
+#include <gst/rtp/gstrtpbaseaudiopayload.h>
+#include <gst/rtp/gstrtpbasepayload.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+
+#endif /* __GST_RTP_H__ */
diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index 9b5772a..eceafe5 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
@@ -1,6 +1,9 @@
 libgstrtspincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/rtsp
 
-libgstrtspinclude_HEADERS = gstrtsptransport.h \
+libgstrtspinclude_HEADERS = \
+			    rtsp.h \
+			    gstrtsp.h \
+			    gstrtsptransport.h \
 			    gstrtspurl.h \
 			    gstrtspmessage.h    \
 			    gstrtspconnection.h \
@@ -27,13 +30,11 @@
 nodist_libgstrtsp_@GST_API_VERSION@_la_SOURCES = $(built_sources)
 nodist_libgstrtspinclude_HEADERS = gstrtsp-enumtypes.h
 
-noinst_HEADERS = gstrtsp.h
-
 #gstrtspextwms.c  
 #rtspextreal.c    
 
 libgstrtsp_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
-libgstrtsp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS)
+libgstrtsp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS) $(LIBM)
 libgstrtsp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 BUILT_SOURCES = $(built_headers) $(built_sources)
@@ -54,17 +55,15 @@
 gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstrtspinclude_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstrtsp_@GST_API_VERSION@_la_SOURCES))
 gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstrtsp_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/rtsp/%',$(libgstrtspinclude_HEADERS))
-gir_cincludes+=$(patsubst %,--c-include='gst/rtsp/%',$(nodist_libgstrtspinclude_HEADERS))
 
 GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstRtsp \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/rtsp/rtsp.h" \
 		-I$(top_builddir)/gst-libs \
 		-I$(top_srcdir)/gst-libs \
 		--add-include-path=$(builddir)/../sdp \
diff --git a/gst-libs/gst/rtsp/Makefile.in b/gst-libs/gst/rtsp/Makefile.in
index 981be9b..4d39f41 100644
--- a/gst-libs/gst/rtsp/Makefile.in
+++ b/gst-libs/gst/rtsp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -26,23 +25,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -62,9 +89,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(libgstrtspinclude_HEADERS) $(noinst_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gst-glib-gen.mak
+DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(libgstrtspinclude_HEADERS)
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/rtsp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -72,7 +99,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -144,7 +170,7 @@
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstrtsp_@GST_API_VERSION@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstrtsp_@GST_API_VERSION@_la_OBJECTS =  \
 	libgstrtsp_@GST_API_VERSION@_la-gstrtsptransport.lo \
 	libgstrtsp_@GST_API_VERSION@_la-gstrtspurl.lo \
@@ -162,10 +188,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstrtsp_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstrtsp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstrtsp_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -178,20 +217,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstrtsp_@GST_API_VERSION@_la_SOURCES) \
 	$(nodist_libgstrtsp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstrtsp_@GST_API_VERSION@_la_SOURCES)
@@ -202,7 +237,24 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstrtspinclude_HEADERS) \
-	$(nodist_libgstrtspinclude_HEADERS) $(noinst_HEADERS)
+	$(nodist_libgstrtspinclude_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -497,7 +549,10 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 libgstrtspincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/rtsp
-libgstrtspinclude_HEADERS = gstrtsptransport.h \
+libgstrtspinclude_HEADERS = \
+			    rtsp.h \
+			    gstrtsp.h \
+			    gstrtsptransport.h \
 			    gstrtspurl.h \
 			    gstrtspmessage.h    \
 			    gstrtspconnection.h \
@@ -521,12 +576,11 @@
 
 nodist_libgstrtsp_@GST_API_VERSION@_la_SOURCES = $(built_sources)
 nodist_libgstrtspinclude_HEADERS = gstrtsp-enumtypes.h
-noinst_HEADERS = gstrtsp.h
 
 #gstrtspextwms.c  
 #rtspextreal.c    
 libgstrtsp_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
-libgstrtsp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS)
+libgstrtsp_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS) $(LIBM)
 libgstrtsp_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 BUILT_SOURCES = $(built_headers) $(built_sources)
 EXTRA_DIST = gstrtsp-marshal.list
@@ -545,10 +599,6 @@
 @HAVE_INTROSPECTION_TRUE@	$(libgstrtsp_@GST_API_VERSION@_la_SOURCES)) \
 @HAVE_INTROSPECTION_TRUE@	$(patsubst %,$(builddir)/%, \
 @HAVE_INTROSPECTION_TRUE@	$(nodist_libgstrtsp_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/rtsp/%',$(libgstrtspinclude_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@	$(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/rtsp/%',$(nodist_libgstrtspinclude_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -592,6 +642,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -618,12 +669,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstrtsp-@GST_API_VERSION@.la: $(libgstrtsp_@GST_API_VERSION@_la_OBJECTS) $(libgstrtsp_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstrtsp_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstrtsp_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstrtsp_@GST_API_VERSION@_la_OBJECTS) $(libgstrtsp_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -817,26 +871,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstrtspincludedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -848,15 +891,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -865,6 +904,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1017,22 +1071,23 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-libgstrtspincludeHEADERS \
-	install-man install-nodist_libgstrtspincludeHEADERS \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip install-typelibsDATA installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
-	uninstall-libLTLIBRARIES uninstall-libgstrtspincludeHEADERS \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-libgstrtspincludeHEADERS install-man \
+	install-nodist_libgstrtspincludeHEADERS install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	install-typelibsDATA installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-girDATA uninstall-libLTLIBRARIES \
+	uninstall-libgstrtspincludeHEADERS \
 	uninstall-nodist_libgstrtspincludeHEADERS \
 	uninstall-typelibsDATA
 
@@ -1075,12 +1130,12 @@
 
 @HAVE_INTROSPECTION_TRUE@GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstRtsp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/rtsp/rtsp.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(builddir)/../sdp \
diff --git a/gst-libs/gst/rtsp/gstrtsp.h b/gst-libs/gst/rtsp/gstrtsp.h
index 0632196..eb1370e 100644
--- a/gst-libs/gst/rtsp/gstrtsp.h
+++ b/gst-libs/gst/rtsp/gstrtsp.h
@@ -15,13 +15,19 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
-#ifndef __RTSP_H__
-#define __RTSP_H__
+#ifndef __GST_RTSP_H__
+#define __GST_RTSP_H__
 
+#include <gst/rtsp/gstrtspconnection.h>
 #include <gst/rtsp/gstrtspdefs.h>
 #include <gst/rtsp/gstrtsp-enumtypes.h>
+#include <gst/rtsp/gstrtspextension.h>
+#include <gst/rtsp/gstrtspmessage.h>
+#include <gst/rtsp/gstrtsprange.h>
+#include <gst/rtsp/gstrtsptransport.h>
+#include <gst/rtsp/gstrtspurl.h>
 
-#endif
+#endif /* __GST_RTSP_H__ */
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
index 0033f92..15813be 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.c
+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -108,11 +108,20 @@
   /* URL for the remote connection */
   GstRTSPUrl *url;
 
+  gboolean server;
+  GSocketClient *client;
+  GIOStream *stream0;
+  GIOStream *stream1;
+
+  GInputStream *input_stream;
+  GOutputStream *output_stream;
+
   /* connection state */
   GSocket *read_socket;
   GSocket *write_socket;
-  gboolean manual_http;
   GSocket *socket0, *socket1;
+  gboolean manual_http;
+  gboolean may_cancel;
   GCancellable *cancellable;
 
   gchar tunnelid[TUNNELID_LEN];
@@ -128,6 +137,8 @@
   gchar *initial_buffer;
   gsize initial_buffer_offset;
 
+  gboolean remember_session_id; /* remember the session id or not */
+
   /* Session state */
   gint cseq;                    /* sequence number */
   gchar session_id[512];        /* session id */
@@ -203,16 +214,24 @@
   GstRTSPConnection *newconn;
 
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (url != NULL, GST_RTSP_EINVAL);
 
   newconn = g_new0 (GstRTSPConnection, 1);
 
+  newconn->may_cancel = TRUE;
   newconn->cancellable = g_cancellable_new ();
+  newconn->client = g_socket_client_new ();
+
+  if (url->transports & GST_RTSP_LOWER_TRANS_TLS)
+    g_socket_client_set_tls (newconn->client, TRUE);
 
   newconn->url = gst_rtsp_url_copy (url);
   newconn->timer = g_timer_new ();
   newconn->timeout = 60;
   newconn->cseq = 1;
 
+  newconn->remember_session_id = TRUE;
+
   newconn->auth_method = GST_RTSP_AUTH_NONE;
   newconn->username = NULL;
   newconn->passwd = NULL;
@@ -223,6 +242,31 @@
   return GST_RTSP_OK;
 }
 
+static gboolean
+collect_addresses (GSocket * socket, gchar ** ip, guint16 * port,
+    gboolean remote, GError ** error)
+{
+  GSocketAddress *addr;
+
+  if (remote)
+    addr = g_socket_get_remote_address (socket, error);
+  else
+    addr = g_socket_get_local_address (socket, error);
+  if (!addr)
+    return FALSE;
+
+  if (ip)
+    *ip = g_inet_address_to_string (g_inet_socket_address_get_address
+        (G_INET_SOCKET_ADDRESS (addr)));
+  if (port)
+    *port = g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (addr));
+
+  g_object_unref (addr);
+
+  return TRUE;
+}
+
+
 /**
  * gst_rtsp_connection_create_from_socket:
  * @socket: a #GSocket
@@ -244,26 +288,17 @@
   GstRTSPConnection *newconn = NULL;
   GstRTSPUrl *url;
   GstRTSPResult res;
-  GSocketAddress *addr;
   GError *err = NULL;
   gchar *local_ip;
+  GIOStream *stream;
 
   g_return_val_if_fail (G_IS_SOCKET (socket), GST_RTSP_EINVAL);
   g_return_val_if_fail (ip != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
 
-  /* set to non-blocking mode so that we can cancel the communication */
-  g_socket_set_blocking (socket, FALSE);
-
-  /* get local address */
-  addr = g_socket_get_local_address (socket, &err);
-  if (!addr)
+  if (!collect_addresses (socket, &local_ip, NULL, FALSE, &err))
     goto getnameinfo_failed;
 
-  local_ip = g_inet_address_to_string (g_inet_socket_address_get_address
-      (G_INET_SOCKET_ADDRESS (addr)));
-  g_object_unref (addr);
-
   /* create a url for the client address */
   url = g_new0 (GstRTSPUrl, 1);
   url->host = g_strdup (ip);
@@ -273,10 +308,15 @@
   GST_RTSP_CHECK (gst_rtsp_connection_create (url, &newconn), newconn_failed);
   gst_rtsp_url_free (url);
 
+  stream = G_IO_STREAM (g_socket_connection_factory_create_connection (socket));
+
   /* both read and write initially */
-  newconn->socket0 = G_SOCKET (g_object_ref (socket));
-  newconn->socket1 = G_SOCKET (g_object_ref (socket));
+  newconn->server = TRUE;
+  newconn->socket0 = socket;
+  newconn->stream0 = stream;
   newconn->write_socket = newconn->read_socket = newconn->socket0;
+  newconn->input_stream = g_io_stream_get_input_stream (stream);
+  newconn->output_stream = g_io_stream_get_output_stream (stream);
   newconn->remote_ip = g_strdup (ip);
   newconn->local_ip = local_ip;
   newconn->initial_buffer = g_strdup (initial_buffer);
@@ -320,7 +360,6 @@
   gchar *ip;
   guint16 port;
   GSocket *client_sock;
-  GSocketAddress *addr;
   GstRTSPResult ret;
 
   g_return_val_if_fail (G_IS_SOCKET (socket), GST_RTSP_EINVAL);
@@ -330,15 +369,9 @@
   if (!client_sock)
     goto accept_failed;
 
-  addr = g_socket_get_remote_address (client_sock, &err);
-  if (!addr)
-    goto getnameinfo_failed;
-
   /* get the remote ip address and port */
-  ip = g_inet_address_to_string (g_inet_socket_address_get_address
-      (G_INET_SOCKET_ADDRESS (addr)));
-  port = g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (addr));
-  g_object_unref (addr);
+  if (!collect_addresses (client_sock, &ip, &port, TRUE, &err))
+    goto getnameinfo_failed;
 
   ret =
       gst_rtsp_connection_create_from_socket (client_sock, ip, port, NULL,
@@ -357,6 +390,8 @@
   }
 getnameinfo_failed:
   {
+    GST_DEBUG ("getnameinfo failed: %s", err->message);
+    g_clear_error (&err);
     if (!g_socket_close (client_sock, &err)) {
       GST_DEBUG ("Closing socket failed: %s", err->message);
       g_clear_error (&err);
@@ -366,187 +401,81 @@
   }
 }
 
-static gchar *
-do_resolve (const gchar * host, GCancellable * cancellable)
+/**
+ * gst_rtsp_connection_get_tls:
+ * @conn: a #GstRTSPConnection
+ * @error: #GError for error reporting, or NULL to ignore.
+ *
+ * Get the TLS connection of @conn.
+ *
+ * For client side this will return the #GTlsClientConnection when connected
+ * over TLS.
+ *
+ * For server side connections, this function will create a GTlsServerConnection
+ * when called the first time and will return that same connection on subsequent
+ * calls. The server is then responsible for configuring the TLS connection.
+ *
+ * Returns: (transfer none): the TLS connection for @conn.
+ *
+ * Since: 1.2
+ */
+GTlsConnection *
+gst_rtsp_connection_get_tls (GstRTSPConnection * conn, GError ** error)
 {
-  GResolver *resolver;
-  GInetAddress *addr;
-  GError *err = NULL;
-  gchar *ip;
+  GTlsConnection *result;
 
-  addr = g_inet_address_new_from_string (host);
-  if (!addr) {
-    GList *results, *l;
-
-    resolver = g_resolver_get_default ();
-
-    results = g_resolver_lookup_by_name (resolver, host, cancellable, &err);
-    if (!results)
-      goto name_resolve;
-
-    for (l = results; l; l = l->next) {
-      GInetAddress *tmp = l->data;
-
-      if (g_inet_address_get_family (tmp) == G_SOCKET_FAMILY_IPV4 ||
-          g_inet_address_get_family (tmp) == G_SOCKET_FAMILY_IPV6) {
-        addr = G_INET_ADDRESS (g_object_ref (tmp));
-        break;
-      }
+  if (G_IS_TLS_CONNECTION (conn->stream0)) {
+    /* we already had one, return it */
+    result = G_TLS_CONNECTION (conn->stream0);
+  } else if (conn->server) {
+    /* no TLS connection but we are server, make one */
+    result = (GTlsConnection *)
+        g_tls_server_connection_new (conn->stream0, NULL, error);
+    if (result) {
+      g_object_unref (conn->stream0);
+      conn->stream0 = G_IO_STREAM (result);
+      conn->input_stream = g_io_stream_get_input_stream (conn->stream0);
+      conn->output_stream = g_io_stream_get_output_stream (conn->stream0);
     }
-
-    g_resolver_free_addresses (results);
-    g_object_unref (resolver);
-  }
-
-  if (!addr)
-    return NULL;
-
-  ip = g_inet_address_to_string (addr);
-  g_object_unref (addr);
-
-  return ip;
-
-  /* ERRORS */
-name_resolve:
-  {
-    GST_ERROR ("failed to resolve %s: %s", host, err->message);
-    g_clear_error (&err);
-    g_object_unref (resolver);
-    return NULL;
-  }
-}
-
-static GstRTSPResult
-do_connect (const gchar * ip, guint16 port, GSocket ** socket_out,
-    GTimeVal * timeout, GCancellable * cancellable)
-{
-  GSocket *socket;
-  GstClockTime to;
-  GInetAddress *addr;
-  GSocketAddress *saddr;
-  GError *err = NULL;
-
-  addr = g_inet_address_new_from_string (ip);
-  g_assert (addr);
-  saddr = g_inet_socket_address_new (addr, port);
-  g_object_unref (addr);
-
-  socket =
-      g_socket_new (g_socket_address_get_family (saddr), G_SOCKET_TYPE_STREAM,
-      G_SOCKET_PROTOCOL_TCP, &err);
-  if (socket == NULL)
-    goto no_socket;
-
-  /* set to non-blocking mode so that we can cancel the connect */
-  g_socket_set_blocking (socket, FALSE);
-
-  /* we are going to connect ASYNC now */
-  if (!g_socket_connect (socket, saddr, cancellable, &err)) {
-    if (!g_error_matches (err, G_IO_ERROR, G_IO_ERROR_PENDING))
-      goto sys_error;
-    g_clear_error (&err);
   } else {
-    goto done;
+    /* client */
+    result = NULL;
+    g_set_error (error, GST_LIBRARY_ERROR, GST_LIBRARY_ERROR_FAILED,
+        "client not connected with TLS");
   }
-
-  /* wait for connect to complete up to the specified timeout or until we got
-   * interrupted. */
-  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : GST_CLOCK_TIME_NONE;
-
-  g_socket_set_timeout (socket, (to + GST_SECOND - 1) / GST_SECOND);
-  if (!g_socket_condition_wait (socket, G_IO_OUT, cancellable, &err)) {
-    g_socket_set_timeout (socket, 0);
-    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_TIMED_OUT))
-      goto timeout;
-    else
-      goto sys_error;
-  }
-  g_socket_set_timeout (socket, 0);
-
-  if (!g_socket_check_connect_result (socket, &err))
-    goto sys_error;
-
-done:
-  g_object_unref (saddr);
-
-  *socket_out = socket;
-
-  return GST_RTSP_OK;
-
-  /* ERRORS */
-no_socket:
-  {
-    GST_ERROR ("no socket: %s", err->message);
-    g_clear_error (&err);
-    g_object_unref (saddr);
-    return GST_RTSP_ESYS;
-  }
-sys_error:
-  {
-    GST_ERROR ("system error: %s", err->message);
-    g_clear_error (&err);
-    g_object_unref (saddr);
-    g_object_unref (socket);
-    return GST_RTSP_ESYS;
-  }
-timeout:
-  {
-    GST_ERROR ("timeout");
-    g_clear_error (&err);
-    g_object_unref (saddr);
-    g_object_unref (socket);
-    return GST_RTSP_ETIMEOUT;
-  }
+  return result;
 }
 
 static GstRTSPResult
-setup_tunneling (GstRTSPConnection * conn, GTimeVal * timeout)
+setup_tunneling (GstRTSPConnection * conn, GTimeVal * timeout, gchar * uri)
 {
   gint i;
   GstRTSPResult res;
-  gchar *ip;
-  gchar *uri;
   gchar *value;
-  guint16 port, url_port;
-  GstRTSPUrl *url;
-  gchar *hostparam;
+  guint16 url_port;
   GstRTSPMessage *msg;
   GstRTSPMessage response;
   gboolean old_http;
+  GstRTSPUrl *url;
+  GError *error = NULL;
+  GSocketConnection *connection;
+  GSocket *socket;
 
   memset (&response, 0, sizeof (response));
   gst_rtsp_message_init (&response);
 
+  url = conn->url;
+
   /* create a random sessionid */
   for (i = 0; i < TUNNELID_LEN; i++)
     conn->tunnelid[i] = g_random_int_range ('a', 'z');
   conn->tunnelid[TUNNELID_LEN - 1] = '\0';
 
-  url = conn->url;
-  /* get the port from the url */
-  gst_rtsp_url_get_port (url, &url_port);
-
-  if (conn->proxy_host) {
-    uri = g_strdup_printf ("http://%s:%d%s%s%s", url->host, url_port,
-        url->abspath, url->query ? "?" : "", url->query ? url->query : "");
-    hostparam = g_strdup_printf ("%s:%d", url->host, url_port);
-    ip = conn->proxy_host;
-    port = conn->proxy_port;
-  } else {
-    uri = g_strdup_printf ("%s%s%s", url->abspath, url->query ? "?" : "",
-        url->query ? url->query : "");
-    hostparam = NULL;
-    ip = conn->remote_ip;
-    port = url_port;
-  }
-
   /* create the GET request for the read connection */
   GST_RTSP_CHECK (gst_rtsp_message_new_request (&msg, GST_RTSP_GET, uri),
       no_message);
   msg->type = GST_RTSP_MESSAGE_HTTP_REQUEST;
 
-  if (hostparam != NULL)
-    gst_rtsp_message_add_header (msg, GST_RTSP_HDR_HOST, hostparam);
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_X_SESSIONCOOKIE,
       conn->tunnelid);
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_ACCEPT,
@@ -554,9 +483,6 @@
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_CACHE_CONTROL, "no-cache");
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_PRAGMA, "no-cache");
 
-  /* we start by writing to this fd */
-  conn->write_socket = conn->socket0;
-
   /* we need to temporarily set conn->tunneled to FALSE to prevent the HTTP
    * request from being base64 encoded */
   conn->tunneled = FALSE;
@@ -580,36 +506,42 @@
 
   if (gst_rtsp_message_get_header (&response, GST_RTSP_HDR_X_SERVER_IP_ADDRESS,
           &value, 0) == GST_RTSP_OK) {
-    if (conn->proxy_host) {
-      /* if we use a proxy we need to change the destination url */
-      g_free (url->host);
-      url->host = g_strdup (value);
-      g_free (hostparam);
-      hostparam = g_strdup_printf ("%s:%d", url->host, url_port);
-    } else {
-      /* and resolve the new ip address */
-      if (!(ip = do_resolve (value, conn->cancellable)))
-        goto not_resolved;
-      g_free (conn->remote_ip);
-      conn->remote_ip = ip;
-    }
+    g_free (url->host);
+    url->host = g_strdup (value);
+    g_free (conn->remote_ip);
+    conn->remote_ip = g_strdup (value);
   }
 
+  gst_rtsp_url_get_port (url, &url_port);
+  uri = g_strdup_printf ("http://%s:%d%s%s%s", url->host, url_port,
+      url->abspath, url->query ? "?" : "", url->query ? url->query : "");
+
   /* connect to the host/port */
-  res = do_connect (ip, port, &conn->socket1, timeout, conn->cancellable);
-  if (res != GST_RTSP_OK)
+  connection = g_socket_client_connect_to_uri (conn->client,
+      uri, 0, conn->cancellable, &error);
+  if (connection == NULL)
     goto connect_failed;
 
+  socket = g_socket_connection_get_socket (connection);
+
+  /* get remote address */
+  g_free (conn->remote_ip);
+  conn->remote_ip = NULL;
+
+  if (!collect_addresses (socket, &conn->remote_ip, NULL, TRUE, &error))
+    goto remote_address_failed;
+
   /* this is now our writing socket */
+  conn->stream1 = G_IO_STREAM (connection);
+  conn->socket1 = socket;
   conn->write_socket = conn->socket1;
+  conn->output_stream = g_io_stream_get_output_stream (conn->stream1);
 
   /* create the POST request for the write connection */
   GST_RTSP_CHECK (gst_rtsp_message_new_request (&msg, GST_RTSP_POST, uri),
       no_message);
   msg->type = GST_RTSP_MESSAGE_HTTP_REQUEST;
 
-  if (hostparam != NULL)
-    gst_rtsp_message_add_header (msg, GST_RTSP_HDR_HOST, hostparam);
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_X_SESSIONCOOKIE,
       conn->tunnelid);
   gst_rtsp_message_add_header (msg, GST_RTSP_HDR_ACCEPT,
@@ -629,7 +561,6 @@
 
 exit:
   gst_rtsp_message_unset (&response);
-  g_free (hostparam);
   g_free (uri);
 
   return res;
@@ -660,17 +591,20 @@
     res = GST_RTSP_ERROR;
     goto exit;
   }
-not_resolved:
-  {
-    GST_ERROR ("could not resolve %s", conn->remote_ip);
-    res = GST_RTSP_ENET;
-    goto exit;
-  }
 connect_failed:
   {
-    GST_ERROR ("failed to connect");
+    GST_ERROR ("failed to connect: %s", error->message);
+    res = GST_RTSP_ERROR;
+    g_clear_error (&error);
     goto exit;
   }
+remote_address_failed:
+  {
+    GST_ERROR ("failed to resolve address: %s", error->message);
+    g_object_unref (connection);
+    g_clear_error (&error);
+    return GST_RTSP_ERROR;
+  }
 }
 
 /**
@@ -691,62 +625,76 @@
 gst_rtsp_connection_connect (GstRTSPConnection * conn, GTimeVal * timeout)
 {
   GstRTSPResult res;
-  gchar *ip;
-  guint16 port;
+  GSocketConnection *connection;
+  GSocket *socket;
+  GError *error = NULL;
+  gchar *uri, *remote_ip;
+  GstClockTime to;
+  guint16 url_port;
   GstRTSPUrl *url;
 
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (conn->url != NULL, GST_RTSP_EINVAL);
-  g_return_val_if_fail (conn->socket0 == NULL, GST_RTSP_EINVAL);
+  g_return_val_if_fail (conn->stream0 == NULL, GST_RTSP_EINVAL);
+
+  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : 0;
+  g_socket_client_set_timeout (conn->client,
+      (to + GST_SECOND - 1) / GST_SECOND);
 
   url = conn->url;
 
-  if (conn->proxy_host && conn->tunneled) {
-    if (!(ip = do_resolve (conn->proxy_host, conn->cancellable))) {
-      GST_ERROR ("could not resolve %s", conn->proxy_host);
-      goto not_resolved;
-    }
-    port = conn->proxy_port;
-    g_free (conn->proxy_host);
-    conn->proxy_host = ip;
-  } else {
-    if (!(ip = do_resolve (url->host, conn->cancellable))) {
-      GST_ERROR ("could not resolve %s", url->host);
-      goto not_resolved;
-    }
-    /* get the port from the url */
-    gst_rtsp_url_get_port (url, &port);
-
-    g_free (conn->remote_ip);
-    conn->remote_ip = ip;
-  }
-
-  /* connect to the host/port */
-  res = do_connect (ip, port, &conn->socket0, timeout, conn->cancellable);
-  if (res != GST_RTSP_OK)
-    goto connect_failed;
-
-  /* this is our read URL */
-  conn->read_socket = conn->socket0;
+  gst_rtsp_url_get_port (url, &url_port);
 
   if (conn->tunneled) {
-    res = setup_tunneling (conn, timeout);
+    uri = g_strdup_printf ("http://%s:%d%s%s%s", url->host, url_port,
+        url->abspath, url->query ? "?" : "", url->query ? url->query : "");
+  } else {
+    uri = gst_rtsp_url_get_request_uri (url);
+  }
+
+  connection = g_socket_client_connect_to_uri (conn->client,
+      uri, url_port, conn->cancellable, &error);
+  if (connection == NULL)
+    goto connect_failed;
+
+  /* get remote address */
+  socket = g_socket_connection_get_socket (connection);
+
+  if (!collect_addresses (socket, &remote_ip, NULL, TRUE, &error))
+    goto remote_address_failed;
+
+  g_free (conn->remote_ip);
+  conn->remote_ip = remote_ip;
+  conn->stream0 = G_IO_STREAM (connection);
+  conn->socket0 = socket;
+  /* this is our read socket */
+  conn->read_socket = conn->socket0;
+  conn->write_socket = conn->socket0;
+  conn->input_stream = g_io_stream_get_input_stream (conn->stream0);
+  conn->output_stream = g_io_stream_get_output_stream (conn->stream0);
+
+  if (conn->tunneled) {
+    res = setup_tunneling (conn, timeout, uri);
     if (res != GST_RTSP_OK)
       goto tunneling_failed;
-  } else {
-    conn->write_socket = conn->socket0;
   }
+  g_free (uri);
 
   return GST_RTSP_OK;
 
-not_resolved:
-  {
-    return GST_RTSP_ENET;
-  }
+  /* ERRORS */
 connect_failed:
   {
-    GST_ERROR ("failed to connect");
-    return res;
+    GST_ERROR ("failed to connect: %s", error->message);
+    g_clear_error (&error);
+    return GST_RTSP_ERROR;
+  }
+remote_address_failed:
+  {
+    GST_ERROR ("failed to connect: %s", error->message);
+    g_object_unref (connection);
+    g_clear_error (&error);
+    return GST_RTSP_ERROR;
   }
 tunneling_failed:
   {
@@ -905,10 +853,12 @@
 }
 
 static GstRTSPResult
-write_bytes (GSocket * socket, const guint8 * buffer, guint * idx, guint size,
-    GCancellable * cancellable)
+write_bytes (GOutputStream * stream, const guint8 * buffer, guint * idx,
+    guint size, gboolean block, GCancellable * cancellable)
 {
   guint left;
+  gssize r;
+  GError *err = NULL;
 
   if (G_UNLIKELY (*idx > size))
     return GST_RTSP_ERROR;
@@ -916,31 +866,45 @@
   left = size - *idx;
 
   while (left) {
-    GError *err = NULL;
-    gssize r;
+    if (block)
+      r = g_output_stream_write (stream, (gchar *) & buffer[*idx], left,
+          cancellable, &err);
+    else
+      r = g_pollable_output_stream_write_nonblocking (G_POLLABLE_OUTPUT_STREAM
+          (stream), (gchar *) & buffer[*idx], left, cancellable, &err);
+    if (G_UNLIKELY (r < 0))
+      goto error;
 
-    r = g_socket_send (socket, (gchar *) & buffer[*idx], left, cancellable,
-        &err);
-    if (G_UNLIKELY (r == 0)) {
-      return GST_RTSP_EINTR;
-    } else if (G_UNLIKELY (r < 0)) {
-      if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
-        g_clear_error (&err);
-        return GST_RTSP_EINTR;
-      }
-      g_clear_error (&err);
-      return GST_RTSP_ESYS;
-    } else {
-      left -= r;
-      *idx += r;
-    }
+    left -= r;
+    *idx += r;
   }
   return GST_RTSP_OK;
+
+  /* ERRORS */
+error:
+  {
+    if (G_UNLIKELY (r == 0))
+      return GST_RTSP_EEOF;
+
+    GST_DEBUG ("%s", err->message);
+    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+      g_clear_error (&err);
+      return GST_RTSP_EINTR;
+    } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
+      g_clear_error (&err);
+      return GST_RTSP_EINTR;
+    } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_TIMED_OUT)) {
+      g_clear_error (&err);
+      return GST_RTSP_ETIMEOUT;
+    }
+    g_clear_error (&err);
+    return GST_RTSP_ESYS;
+  }
 }
 
 static gint
 fill_raw_bytes (GstRTSPConnection * conn, guint8 * buffer, guint size,
-    GError ** err)
+    gboolean block, GError ** err)
 {
   gint out = 0;
 
@@ -960,12 +924,23 @@
 
   if (G_LIKELY (size > (guint) out)) {
     gssize r;
+    gsize count = size - out;
+    if (block)
+      r = g_input_stream_read (conn->input_stream, (gchar *) & buffer[out],
+          count, conn->may_cancel ? conn->cancellable : NULL, err);
+    else
+      r = g_pollable_input_stream_read_nonblocking (G_POLLABLE_INPUT_STREAM
+          (conn->input_stream), (gchar *) & buffer[out], count,
+          conn->may_cancel ? conn->cancellable : NULL, err);
 
-    r = g_socket_receive (conn->read_socket, (gchar *) & buffer[out],
-        size - out, conn->cancellable, err);
-    if (r <= 0) {
-      if (out == 0)
+    if (G_UNLIKELY (r < 0)) {
+      if (out == 0) {
+        /* propagate the error */
         out = r;
+      } else {
+        /* we have some data ignore error */
+        g_clear_error (err);
+      }
     } else
       out += r;
   }
@@ -975,7 +950,7 @@
 
 static gint
 fill_bytes (GstRTSPConnection * conn, guint8 * buffer, guint size,
-    GError ** err)
+    gboolean block, GError ** err)
 {
   DecodeCtx *ctx = conn->ctxp;
   gint out = 0;
@@ -997,7 +972,7 @@
         break;
 
       /* try to read more bytes */
-      r = fill_raw_bytes (conn, in, sizeof (in), err);
+      r = fill_raw_bytes (conn, in, sizeof (in), block, err);
       if (r <= 0) {
         if (out == 0)
           out = r;
@@ -1010,16 +985,18 @@
           &ctx->save);
     }
   } else {
-    out = fill_raw_bytes (conn, buffer, size, err);
+    out = fill_raw_bytes (conn, buffer, size, block, err);
   }
 
   return out;
 }
 
 static GstRTSPResult
-read_bytes (GstRTSPConnection * conn, guint8 * buffer, guint * idx, guint size)
+read_bytes (GstRTSPConnection * conn, guint8 * buffer, guint * idx, guint size,
+    gboolean block)
 {
   guint left;
+  gint r;
   GError *err = NULL;
 
   if (G_UNLIKELY (*idx > size))
@@ -1028,24 +1005,35 @@
   left = size - *idx;
 
   while (left) {
-    gint r;
+    r = fill_bytes (conn, &buffer[*idx], left, block, &err);
+    if (G_UNLIKELY (r <= 0))
+      goto error;
 
-    r = fill_bytes (conn, &buffer[*idx], left, &err);
-    if (G_UNLIKELY (r == 0)) {
-      return GST_RTSP_EEOF;
-    } else if (G_UNLIKELY (r < 0)) {
-      if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
-        g_clear_error (&err);
-        return GST_RTSP_EINTR;
-      }
-      g_clear_error (&err);
-      return GST_RTSP_ESYS;
-    } else {
-      left -= r;
-      *idx += r;
-    }
+    left -= r;
+    *idx += r;
   }
   return GST_RTSP_OK;
+
+  /* ERRORS */
+error:
+  {
+    if (G_UNLIKELY (r == 0))
+      return GST_RTSP_EEOF;
+
+    GST_DEBUG ("%s", err->message);
+    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+      g_clear_error (&err);
+      return GST_RTSP_EINTR;
+    } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
+      g_clear_error (&err);
+      return GST_RTSP_EINTR;
+    } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_TIMED_OUT)) {
+      g_clear_error (&err);
+      return GST_RTSP_ETIMEOUT;
+    }
+    g_clear_error (&err);
+    return GST_RTSP_ESYS;
+  }
 }
 
 /* The code below tries to handle clients using \r, \n or \r\n to indicate the
@@ -1055,13 +1043,14 @@
  * the method used in RTSP (and HTTP) to break long lines.
  */
 static GstRTSPResult
-read_line (GstRTSPConnection * conn, guint8 * buffer, guint * idx, guint size)
+read_line (GstRTSPConnection * conn, guint8 * buffer, guint * idx, guint size,
+    gboolean block)
 {
-  GError *err = NULL;
+  GstRTSPResult res;
 
   while (TRUE) {
     guint8 c;
-    gint r;
+    guint i;
 
     if (conn->read_ahead == READ_AHEAD_EOH) {
       /* the last call to read_line() already determined that we have reached
@@ -1080,18 +1069,10 @@
       conn->read_ahead = 0;
     } else {
       /* read the next character */
-      r = fill_bytes (conn, &c, 1, &err);
-      if (G_UNLIKELY (r == 0)) {
-        return GST_RTSP_EEOF;
-      } else if (G_UNLIKELY (r < 0)) {
-        if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
-          g_clear_error (&err);
-          return GST_RTSP_EINTR;
-        }
-
-        g_clear_error (&err);
-        return GST_RTSP_ESYS;
-      }
+      i = 0;
+      res = read_bytes (conn, &c, &i, 1, block);
+      if (G_UNLIKELY (res != GST_RTSP_OK))
+        return res;
     }
 
     /* special treatment of line endings */
@@ -1100,21 +1081,10 @@
 
     retry:
       /* need to read ahead one more character to know what to do... */
-      r = fill_bytes (conn, &read_ahead, 1, &err);
-      if (G_UNLIKELY (r == 0)) {
-        return GST_RTSP_EEOF;
-      } else if (G_UNLIKELY (r < 0)) {
-        if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
-          /* remember the original character we read and try again next time */
-          if (conn->read_ahead == 0)
-            conn->read_ahead = c;
-          g_clear_error (&err);
-          return GST_RTSP_EINTR;
-        }
-
-        g_clear_error (&err);
-        return GST_RTSP_ESYS;
-      }
+      i = 0;
+      res = read_bytes (conn, &read_ahead, &i, 1, block);
+      if (G_UNLIKELY (res != GST_RTSP_OK))
+        return res;
 
       if (read_ahead == ' ' || read_ahead == '\t') {
         if (conn->read_ahead == READ_AHEAD_CRLFCR) {
@@ -1199,63 +1169,22 @@
   guint offset;
   GstClockTime to;
   GstRTSPResult res;
-  GError *err = NULL;
 
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (data != NULL || size == 0, GST_RTSP_EINVAL);
-  g_return_val_if_fail (conn->write_socket != NULL, GST_RTSP_EINVAL);
-
-  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : GST_CLOCK_TIME_NONE;
+  g_return_val_if_fail (conn->output_stream != NULL, GST_RTSP_EINVAL);
 
   offset = 0;
 
-  while (TRUE) {
-    /* try to write */
-    res =
-        write_bytes (conn->write_socket, data, &offset, size,
-        conn->cancellable);
-    if (G_LIKELY (res == GST_RTSP_OK))
-      break;
-    if (G_UNLIKELY (res != GST_RTSP_EINTR))
-      goto write_error;
+  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : 0;
 
-    /* not all is written, wait until we can write more */
-    g_socket_set_timeout (conn->write_socket,
-        (to + GST_SECOND - 1) / GST_SECOND);
-    if (!g_socket_condition_wait (conn->write_socket,
-            G_IO_OUT | G_IO_ERR | G_IO_HUP, conn->cancellable, &err)) {
-      g_socket_set_timeout (conn->write_socket, 0);
-      if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_BUSY)) {
-        g_clear_error (&err);
-        goto stopped;
-      } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_TIMED_OUT)) {
-        g_clear_error (&err);
-        goto timeout;
-      }
-      g_clear_error (&err);
-      goto select_error;
-    }
-    g_socket_set_timeout (conn->write_socket, 0);
-  }
-  return GST_RTSP_OK;
+  g_socket_set_timeout (conn->write_socket, (to + GST_SECOND - 1) / GST_SECOND);
+  res =
+      write_bytes (conn->output_stream, data, &offset, size, TRUE,
+      conn->cancellable);
+  g_socket_set_timeout (conn->write_socket, 0);
 
-  /* ERRORS */
-timeout:
-  {
-    return GST_RTSP_ETIMEOUT;
-  }
-select_error:
-  {
-    return GST_RTSP_ESYS;
-  }
-stopped:
-  {
-    return GST_RTSP_EINTR;
-  }
-write_error:
-  {
-    return res;
-  }
+  return res;
 }
 
 static GString *
@@ -1712,7 +1641,7 @@
  */
 static GstRTSPResult
 build_next (GstRTSPBuilder * builder, GstRTSPMessage * message,
-    GstRTSPConnection * conn)
+    GstRTSPConnection * conn, gboolean block)
 {
   GstRTSPResult res;
 
@@ -1724,7 +1653,8 @@
 
         builder->offset = 0;
         res =
-            read_bytes (conn, (guint8 *) builder->buffer, &builder->offset, 1);
+            read_bytes (conn, (guint8 *) builder->buffer, &builder->offset, 1,
+            block);
         if (res != GST_RTSP_OK)
           goto done;
 
@@ -1735,19 +1665,22 @@
         if (c == '$') {
           /* data message, prepare for the header */
           builder->state = STATE_DATA_HEADER;
+          conn->may_cancel = FALSE;
         } else if (c == '\n' || c == '\r') {
           /* skip \n and \r */
           builder->offset = 0;
         } else {
           builder->line = 0;
           builder->state = STATE_READ_LINES;
+          conn->may_cancel = FALSE;
         }
         break;
       }
       case STATE_DATA_HEADER:
       {
         res =
-            read_bytes (conn, (guint8 *) builder->buffer, &builder->offset, 4);
+            read_bytes (conn, (guint8 *) builder->buffer, &builder->offset, 4,
+            block);
         if (res != GST_RTSP_OK)
           goto done;
 
@@ -1764,7 +1697,7 @@
       {
         res =
             read_bytes (conn, builder->body_data, &builder->offset,
-            builder->body_len);
+            builder->body_len, block);
         if (res != GST_RTSP_OK)
           goto done;
 
@@ -1781,7 +1714,7 @@
       case STATE_READ_LINES:
       {
         res = read_line (conn, builder->buffer, &builder->offset,
-            sizeof (builder->buffer));
+            sizeof (builder->buffer), block);
         if (res != GST_RTSP_OK)
           goto done;
 
@@ -1841,6 +1774,8 @@
         gchar *session_cookie;
         gchar *session_id;
 
+        conn->may_cancel = TRUE;
+
         if (message->type == GST_RTSP_MESSAGE_DATA) {
           /* data messages don't have headers */
           res = GST_RTSP_OK;
@@ -1886,8 +1821,10 @@
           }
 
           /* make sure to not overflow */
-          strncpy (conn->session_id, session_id, maxlen);
-          conn->session_id[maxlen] = '\0';
+          if (conn->remember_session_id) {
+            strncpy (conn->session_id, session_id, maxlen);
+            conn->session_id[maxlen] = '\0';
+          }
         }
         res = builder->status;
         goto done;
@@ -1930,7 +1867,6 @@
   guint offset;
   GstClockTime to;
   GstRTSPResult res;
-  GError *err = NULL;
 
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (data != NULL, GST_RTSP_EINVAL);
@@ -1942,58 +1878,13 @@
   offset = 0;
 
   /* configure timeout if any */
-  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : GST_CLOCK_TIME_NONE;
+  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : 0;
 
-  while (TRUE) {
-    res = read_bytes (conn, data, &offset, size);
-    if (G_UNLIKELY (res == GST_RTSP_EEOF))
-      goto eof;
-    if (G_LIKELY (res == GST_RTSP_OK))
-      break;
-    if (G_UNLIKELY (res != GST_RTSP_EINTR))
-      goto read_error;
+  g_socket_set_timeout (conn->read_socket, (to + GST_SECOND - 1) / GST_SECOND);
+  res = read_bytes (conn, data, &offset, size, TRUE);
+  g_socket_set_timeout (conn->read_socket, 0);
 
-    g_socket_set_timeout (conn->read_socket,
-        (to + GST_SECOND - 1) / GST_SECOND);
-    if (!g_socket_condition_wait (conn->read_socket,
-            G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP, conn->cancellable,
-            &err)) {
-      g_socket_set_timeout (conn->read_socket, 0);
-      if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_BUSY)) {
-        g_clear_error (&err);
-        goto stopped;
-      } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_TIMED_OUT)) {
-        g_clear_error (&err);
-        goto select_timeout;
-      }
-      g_clear_error (&err);
-      goto select_error;
-    }
-    g_socket_set_timeout (conn->read_socket, 0);
-  }
-  return GST_RTSP_OK;
-
-  /* ERRORS */
-select_error:
-  {
-    return GST_RTSP_ESYS;
-  }
-select_timeout:
-  {
-    return GST_RTSP_ETIMEOUT;
-  }
-stopped:
-  {
-    return GST_RTSP_EINTR;
-  }
-eof:
-  {
-    return GST_RTSP_EEOF;
-  }
-read_error:
-  {
-    return res;
-  }
+  return res;
 }
 
 static GstRTSPMessage *
@@ -2043,7 +1934,7 @@
  * Attempt to read into @message from the connected @conn, blocking up to
  * the specified @timeout. @timeout can be #NULL, in which case this function
  * might block forever.
- * 
+ *
  * This function can be cancelled with gst_rtsp_connection_flush().
  *
  * Returns: #GST_RTSP_OK on success.
@@ -2055,75 +1946,53 @@
   GstRTSPResult res;
   GstRTSPBuilder builder;
   GstClockTime to;
-  GError *err = NULL;
 
   g_return_val_if_fail (conn != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (message != NULL, GST_RTSP_EINVAL);
   g_return_val_if_fail (conn->read_socket != NULL, GST_RTSP_EINVAL);
 
   /* configure timeout if any */
-  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : GST_CLOCK_TIME_NONE;
+  to = timeout ? GST_TIMEVAL_TO_TIME (*timeout) : 0;
 
+  g_socket_set_timeout (conn->read_socket, (to + GST_SECOND - 1) / GST_SECOND);
   memset (&builder, 0, sizeof (GstRTSPBuilder));
-  while (TRUE) {
-    res = build_next (&builder, message, conn);
-    if (G_UNLIKELY (res == GST_RTSP_EEOF))
-      goto eof;
-    else if (G_LIKELY (res == GST_RTSP_OK)) {
-      if (!conn->manual_http) {
-        if (message->type == GST_RTSP_MESSAGE_HTTP_REQUEST) {
-          if (conn->tstate == TUNNEL_STATE_NONE &&
-              message->type_data.request.method == GST_RTSP_GET) {
-            GstRTSPMessage *response;
+  res = build_next (&builder, message, conn, TRUE);
+  g_socket_set_timeout (conn->read_socket, 0);
 
-            conn->tstate = TUNNEL_STATE_GET;
+  if (G_UNLIKELY (res != GST_RTSP_OK))
+    goto read_error;
 
-            /* tunnel GET request, we can reply now */
-            response = gen_tunnel_reply (conn, GST_RTSP_STS_OK, message);
-            res = gst_rtsp_connection_send (conn, response, timeout);
-            gst_rtsp_message_free (response);
-            if (res == GST_RTSP_OK)
-              res = GST_RTSP_ETGET;
-            goto cleanup;
-          } else if (conn->tstate == TUNNEL_STATE_NONE &&
-              message->type_data.request.method == GST_RTSP_POST) {
-            conn->tstate = TUNNEL_STATE_POST;
+  if (!conn->manual_http) {
+    if (message->type == GST_RTSP_MESSAGE_HTTP_REQUEST) {
+      if (conn->tstate == TUNNEL_STATE_NONE &&
+          message->type_data.request.method == GST_RTSP_GET) {
+        GstRTSPMessage *response;
 
-            /* tunnel POST request, the caller now has to link the two
-             * connections. */
-            res = GST_RTSP_ETPOST;
-            goto cleanup;
-          } else {
-            res = GST_RTSP_EPARSE;
-            goto cleanup;
-          }
-        } else if (message->type == GST_RTSP_MESSAGE_HTTP_RESPONSE) {
-          res = GST_RTSP_EPARSE;
-          goto cleanup;
-        }
+        conn->tstate = TUNNEL_STATE_GET;
+
+        /* tunnel GET request, we can reply now */
+        response = gen_tunnel_reply (conn, GST_RTSP_STS_OK, message);
+        res = gst_rtsp_connection_send (conn, response, timeout);
+        gst_rtsp_message_free (response);
+        if (res == GST_RTSP_OK)
+          res = GST_RTSP_ETGET;
+        goto cleanup;
+      } else if (conn->tstate == TUNNEL_STATE_NONE &&
+          message->type_data.request.method == GST_RTSP_POST) {
+        conn->tstate = TUNNEL_STATE_POST;
+
+        /* tunnel POST request, the caller now has to link the two
+         * connections. */
+        res = GST_RTSP_ETPOST;
+        goto cleanup;
+      } else {
+        res = GST_RTSP_EPARSE;
+        goto cleanup;
       }
-
-      break;
-    } else if (G_UNLIKELY (res != GST_RTSP_EINTR))
-      goto read_error;
-
-    g_socket_set_timeout (conn->read_socket,
-        (to + GST_SECOND - 1) / GST_SECOND);
-    if (!g_socket_condition_wait (conn->read_socket,
-            G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP, conn->cancellable,
-            &err)) {
-      g_socket_set_timeout (conn->read_socket, 0);
-      if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
-        g_clear_error (&err);
-        goto stopped;
-      } else if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_TIMED_OUT)) {
-        g_clear_error (&err);
-        goto select_timeout;
-      }
-      g_clear_error (&err);
-      goto select_error;
+    } else if (message->type == GST_RTSP_MESSAGE_HTTP_RESPONSE) {
+      res = GST_RTSP_EPARSE;
+      goto cleanup;
     }
-    g_socket_set_timeout (conn->read_socket, 0);
   }
 
   /* we have a message here */
@@ -2132,26 +2001,6 @@
   return GST_RTSP_OK;
 
   /* ERRORS */
-select_error:
-  {
-    res = GST_RTSP_ESYS;
-    goto cleanup;
-  }
-select_timeout:
-  {
-    res = GST_RTSP_ETIMEOUT;
-    goto cleanup;
-  }
-stopped:
-  {
-    res = GST_RTSP_EINTR;
-    goto cleanup;
-  }
-eof:
-  {
-    res = GST_RTSP_EEOF;
-    goto cleanup;
-  }
 read_error:
 cleanup:
   {
@@ -2177,12 +2026,14 @@
 
   /* last unref closes the connection we don't want to explicitly close here
    * because these sockets might have been provided at construction */
-  if (conn->socket0) {
-    g_object_unref (conn->socket0);
+  if (conn->stream0) {
+    g_object_unref (conn->stream0);
+    conn->stream0 = NULL;
     conn->socket0 = NULL;
   }
-  if (conn->socket1) {
-    g_object_unref (conn->socket1);
+  if (conn->stream1) {
+    g_object_unref (conn->stream1);
+    conn->stream1 = NULL;
     conn->socket1 = NULL;
   }
 
@@ -2233,6 +2084,8 @@
 
   if (conn->cancellable)
     g_object_unref (conn->cancellable);
+  if (conn->client)
+    g_object_unref (conn->client);
 
   g_timer_destroy (conn->timer);
   gst_rtsp_url_free (conn->url);
@@ -2839,13 +2692,16 @@
     /* both connections have socket0 as the read/write socket. start by taking the
      * socket from conn2 and set it as the socket in conn */
     conn->socket1 = conn2->socket0;
+    conn->stream1 = conn2->stream0;
+    conn->input_stream = conn2->input_stream;
 
     /* clean up some of the state of conn2 */
     g_cancellable_cancel (conn2->cancellable);
-    conn2->socket0 = 0;
-    g_object_unref (conn2->socket1);
-    conn2->socket1 = NULL;
     conn2->write_socket = conn2->read_socket = NULL;
+    conn2->socket0 = NULL;
+    conn2->stream0 = NULL;
+    conn2->input_stream = NULL;
+    conn2->output_stream = NULL;
     g_cancellable_reset (conn2->cancellable);
 
     /* We make socket0 the write socket and socket1 the read socket. */
@@ -2870,6 +2726,41 @@
   return GST_RTSP_OK;
 }
 
+/**
+ * gst_rtsp_connection_set_remember_session_id:
+ * @conn: a #GstRTSPConnection
+ * @remember: %TRUE if the connection should remember the session id
+ *
+ * Sets if the #GstRTSPConnection should remember the session id from the last
+ * response received and force it onto any further requests.
+ *
+ * The default value is %TRUE
+ */
+
+void
+gst_rtsp_connection_set_remember_session_id (GstRTSPConnection * conn,
+    gboolean remember)
+{
+  conn->remember_session_id = remember;
+  if (!remember)
+    conn->session_id[0] = '\0';
+}
+
+/**
+ * gst_rtsp_connection_get_remember_session_id:
+ * @conn: a #GstRTSPConnection
+ *
+ * Returns: %TRUE if the #GstRTSPConnection remembers the session id in the
+ * last response to set it on any further request.
+ */
+
+gboolean
+gst_rtsp_connection_get_remember_session_id (GstRTSPConnection * conn)
+{
+  return conn->remember_session_id;
+}
+
+
 #define READ_ERR    (G_IO_HUP | G_IO_ERR | G_IO_NVAL)
 #define READ_COND   (G_IO_IN | READ_ERR)
 #define WRITE_ERR   (G_IO_HUP | G_IO_ERR | G_IO_NVAL)
@@ -2892,17 +2783,23 @@
   GstRTSPBuilder builder;
   GstRTSPMessage message;
 
-  GPollFD readfd;
-  GPollFD writefd;
+  GSource *readsrc;
+  GSource *writesrc;
+  gboolean write_added;
+
+  gboolean keep_running;
 
   /* queued message for transmission */
   guint id;
   GMutex mutex;
   GQueue *messages;
+  gsize messages_bytes;
   guint8 *write_data;
   guint write_off;
   guint write_size;
   guint write_id;
+  gsize max_bytes;
+  guint max_messages;
 
   GstRTSPWatchFuncs funcs;
 
@@ -2926,169 +2823,100 @@
 static gboolean
 gst_rtsp_source_check (GSource * source)
 {
-  GstRTSPWatch *watch = (GstRTSPWatch *) source;
-
-  if (watch->readfd.revents & READ_COND)
-    return TRUE;
-
-  if (watch->writefd.revents & WRITE_COND)
-    return TRUE;
-
   return FALSE;
 }
 
 static gboolean
-gst_rtsp_source_dispatch (GSource * source, GSourceFunc callback G_GNUC_UNUSED,
-    gpointer user_data G_GNUC_UNUSED)
+gst_rtsp_source_dispatch_read (GPollableInputStream * stream,
+    GstRTSPWatch * watch)
 {
-  GstRTSPWatch *watch = (GstRTSPWatch *) source;
   GstRTSPResult res = GST_RTSP_ERROR;
-  gboolean keep_running = TRUE;
+  GstRTSPConnection *conn = watch->conn;
 
-  /* first read as much as we can */
-  if (watch->readfd.revents & READ_COND || watch->conn->initial_buffer != NULL) {
-    do {
-      if (watch->readfd.revents & READ_ERR)
-        goto read_error;
+  /* if this connection was already closed, stop now */
+  if (G_POLLABLE_INPUT_STREAM (conn->input_stream) != stream)
+    goto eof;
 
-      res = build_next (&watch->builder, &watch->message, watch->conn);
-      if (res == GST_RTSP_EINTR)
-        break;
-      else if (G_UNLIKELY (res == GST_RTSP_EEOF)) {
-        watch->readfd.events = 0;
-        watch->readfd.revents = 0;
-        g_source_remove_poll ((GSource *) watch, &watch->readfd);
-        /* When we are in tunnelled mode, the read socket can be closed and we
-         * should be prepared for a new POST method to reopen it */
-        if (watch->conn->tstate == TUNNEL_STATE_COMPLETE) {
-          /* remove the read connection for the tunnel */
-          /* we accept a new POST request */
-          watch->conn->tstate = TUNNEL_STATE_GET;
-          /* and signal that we lost our tunnel */
-          if (watch->funcs.tunnel_lost)
-            res = watch->funcs.tunnel_lost (watch, watch->user_data);
-          goto read_done;
-        } else
-          goto eof;
-      } else if (G_LIKELY (res == GST_RTSP_OK)) {
-        if (!watch->conn->manual_http &&
-            watch->message.type == GST_RTSP_MESSAGE_HTTP_REQUEST) {
-          if (watch->conn->tstate == TUNNEL_STATE_NONE &&
-              watch->message.type_data.request.method == GST_RTSP_GET) {
-            GstRTSPMessage *response;
-            GstRTSPStatusCode code;
+  res = build_next (&watch->builder, &watch->message, conn, FALSE);
+  if (res == GST_RTSP_EINTR)
+    goto done;
+  else if (G_UNLIKELY (res == GST_RTSP_EEOF)) {
+    /* When we are in tunnelled mode, the read socket can be closed and we
+     * should be prepared for a new POST method to reopen it */
+    if (conn->tstate == TUNNEL_STATE_COMPLETE) {
+      /* remove the read connection for the tunnel */
+      /* we accept a new POST request */
+      conn->tstate = TUNNEL_STATE_GET;
+      /* and signal that we lost our tunnel */
+      if (watch->funcs.tunnel_lost)
+        res = watch->funcs.tunnel_lost (watch, watch->user_data);
+      goto read_done;
+    } else
+      goto eof;
+  } else if (G_LIKELY (res == GST_RTSP_OK)) {
+    if (!conn->manual_http &&
+        watch->message.type == GST_RTSP_MESSAGE_HTTP_REQUEST) {
+      if (conn->tstate == TUNNEL_STATE_NONE &&
+          watch->message.type_data.request.method == GST_RTSP_GET) {
+        GstRTSPMessage *response;
+        GstRTSPStatusCode code;
 
-            watch->conn->tstate = TUNNEL_STATE_GET;
+        conn->tstate = TUNNEL_STATE_GET;
 
-            if (watch->funcs.tunnel_start)
-              code = watch->funcs.tunnel_start (watch, watch->user_data);
-            else
-              code = GST_RTSP_STS_OK;
+        if (watch->funcs.tunnel_start)
+          code = watch->funcs.tunnel_start (watch, watch->user_data);
+        else
+          code = GST_RTSP_STS_OK;
 
-            /* queue the response */
-            response = gen_tunnel_reply (watch->conn, code, &watch->message);
-            gst_rtsp_watch_send_message (watch, response, NULL);
-            gst_rtsp_message_free (response);
-            goto read_done;
-          } else if (watch->conn->tstate == TUNNEL_STATE_NONE &&
-              watch->message.type_data.request.method == GST_RTSP_POST) {
-            watch->conn->tstate = TUNNEL_STATE_POST;
+        /* queue the response */
+        response = gen_tunnel_reply (conn, code, &watch->message);
+        gst_rtsp_watch_send_message (watch, response, NULL);
+        gst_rtsp_message_free (response);
+        goto read_done;
+      } else if (conn->tstate == TUNNEL_STATE_NONE &&
+          watch->message.type_data.request.method == GST_RTSP_POST) {
+        conn->tstate = TUNNEL_STATE_POST;
 
-            /* in the callback the connection should be tunneled with the
-             * GET connection */
-            if (watch->funcs.tunnel_complete) {
-              watch->funcs.tunnel_complete (watch, watch->user_data);
-              keep_running = !(watch->conn->read_socket == NULL &&
-                  watch->conn->write_socket == NULL);
-              if (!keep_running)
-                goto done;
-            }
-            goto read_done;
-          }
+        /* in the callback the connection should be tunneled with the
+         * GET connection */
+        if (watch->funcs.tunnel_complete) {
+          watch->funcs.tunnel_complete (watch, watch->user_data);
         }
+        goto read_done;
       }
+    }
+  } else
+    goto read_error;
 
-      if (!watch->conn->manual_http) {
-        /* if manual HTTP support is not enabled, then restore the message to
-         * what it would have looked like without the support for parsing HTTP
-         * messages being present */
-        if (watch->message.type == GST_RTSP_MESSAGE_HTTP_REQUEST) {
-          watch->message.type = GST_RTSP_MESSAGE_REQUEST;
-          watch->message.type_data.request.method = GST_RTSP_INVALID;
-          if (watch->message.type_data.request.version != GST_RTSP_VERSION_1_0)
-            watch->message.type_data.request.version = GST_RTSP_VERSION_INVALID;
-          res = GST_RTSP_EPARSE;
-        } else if (watch->message.type == GST_RTSP_MESSAGE_HTTP_RESPONSE) {
-          watch->message.type = GST_RTSP_MESSAGE_RESPONSE;
-          if (watch->message.type_data.response.version != GST_RTSP_VERSION_1_0)
-            watch->message.type_data.response.version =
-                GST_RTSP_VERSION_INVALID;
-          res = GST_RTSP_EPARSE;
-        }
-      }
-
-      if (G_LIKELY (res == GST_RTSP_OK)) {
-        if (watch->funcs.message_received)
-          watch->funcs.message_received (watch, &watch->message,
-              watch->user_data);
-      } else {
-        goto read_error;
-      }
-
-    read_done:
-      gst_rtsp_message_unset (&watch->message);
-      build_reset (&watch->builder);
-    } while (FALSE);
+  if (!conn->manual_http) {
+    /* if manual HTTP support is not enabled, then restore the message to
+     * what it would have looked like without the support for parsing HTTP
+     * messages being present */
+    if (watch->message.type == GST_RTSP_MESSAGE_HTTP_REQUEST) {
+      watch->message.type = GST_RTSP_MESSAGE_REQUEST;
+      watch->message.type_data.request.method = GST_RTSP_INVALID;
+      if (watch->message.type_data.request.version != GST_RTSP_VERSION_1_0)
+        watch->message.type_data.request.version = GST_RTSP_VERSION_INVALID;
+      res = GST_RTSP_EPARSE;
+    } else if (watch->message.type == GST_RTSP_MESSAGE_HTTP_RESPONSE) {
+      watch->message.type = GST_RTSP_MESSAGE_RESPONSE;
+      if (watch->message.type_data.response.version != GST_RTSP_VERSION_1_0)
+        watch->message.type_data.response.version = GST_RTSP_VERSION_INVALID;
+      res = GST_RTSP_EPARSE;
+    }
   }
+  if (G_LIKELY (res != GST_RTSP_OK))
+    goto read_error;
 
-  if (watch->writefd.revents & WRITE_COND) {
-    if (watch->writefd.revents & WRITE_ERR)
-      goto write_error;
+  if (watch->funcs.message_received)
+    watch->funcs.message_received (watch, &watch->message, watch->user_data);
 
-    g_mutex_lock (&watch->mutex);
-    do {
-      if (watch->write_data == NULL) {
-        GstRTSPRec *rec;
-
-        /* get a new message from the queue */
-        rec = g_queue_pop_tail (watch->messages);
-        if (rec == NULL)
-          break;
-
-        watch->write_off = 0;
-        watch->write_data = rec->data;
-        watch->write_size = rec->size;
-        watch->write_id = rec->id;
-
-        g_slice_free (GstRTSPRec, rec);
-      }
-
-      res = write_bytes (watch->conn->write_socket, watch->write_data,
-          &watch->write_off, watch->write_size, watch->conn->cancellable);
-      g_mutex_unlock (&watch->mutex);
-
-      if (res == GST_RTSP_EINTR)
-        goto write_blocked;
-      else if (G_LIKELY (res == GST_RTSP_OK)) {
-        if (watch->funcs.message_sent)
-          watch->funcs.message_sent (watch, watch->write_id, watch->user_data);
-      } else {
-        goto write_error;
-      }
-      g_mutex_lock (&watch->mutex);
-
-      g_free (watch->write_data);
-      watch->write_data = NULL;
-    } while (TRUE);
-
-    watch->writefd.events = WRITE_ERR;
-
-    g_mutex_unlock (&watch->mutex);
-  }
+read_done:
+  gst_rtsp_message_unset (&watch->message);
+  build_reset (&watch->builder);
 
 done:
-write_blocked:
-  return keep_running;
+  return TRUE;
 
   /* ERRORS */
 eof:
@@ -3096,47 +2924,110 @@
     if (watch->funcs.closed)
       watch->funcs.closed (watch, watch->user_data);
 
-    /* always stop when the readfd returns EOF in non-tunneled mode */
+    /* we closed the read connection, stop the watch now */
+    watch->keep_running = FALSE;
+
+    /* always stop when the input returns EOF in non-tunneled mode */
     return FALSE;
   }
 read_error:
   {
-    watch->readfd.events = 0;
-    watch->readfd.revents = 0;
-    g_source_remove_poll ((GSource *) watch, &watch->readfd);
-    keep_running = (watch->writefd.events != 0);
+    if (watch->funcs.error_full)
+      watch->funcs.error_full (watch, res, &watch->message,
+          0, watch->user_data);
+    else if (watch->funcs.error)
+      watch->funcs.error (watch, res, watch->user_data);
 
-    if (keep_running) {
-      if (watch->funcs.error_full)
-        GST_RTSP_CHECK (watch->funcs.error_full (watch, res, &watch->message,
-                0, watch->user_data), error);
-      else
-        goto error;
-    } else
-      goto eof;
+    goto eof;
+  }
+}
+
+static gboolean
+gst_rtsp_source_dispatch (GSource * source, GSourceFunc callback G_GNUC_UNUSED,
+    gpointer user_data G_GNUC_UNUSED)
+{
+  GstRTSPWatch *watch = (GstRTSPWatch *) source;
+  GstRTSPConnection *conn = watch->conn;
+
+  if (conn->initial_buffer != NULL) {
+    gst_rtsp_source_dispatch_read (G_POLLABLE_INPUT_STREAM (conn->input_stream),
+        watch);
+  }
+  return watch->keep_running;
+}
+
+static gboolean
+gst_rtsp_source_dispatch_write (GPollableOutputStream * stream,
+    GstRTSPWatch * watch)
+{
+  GstRTSPResult res = GST_RTSP_ERROR;
+  GstRTSPConnection *conn = watch->conn;
+
+  /* if this connection was already closed, stop now */
+  if (G_POLLABLE_OUTPUT_STREAM (conn->output_stream) != stream)
+    goto eof;
+
+  g_mutex_lock (&watch->mutex);
+  do {
+    if (watch->write_data == NULL) {
+      GstRTSPRec *rec;
+
+      /* get a new message from the queue */
+      rec = g_queue_pop_tail (watch->messages);
+      if (rec == NULL) {
+        if (watch->write_added) {
+          g_source_remove_child_source ((GSource *) watch, watch->writesrc);
+          watch->write_added = FALSE;
+        }
+        break;
+      }
+
+      watch->messages_bytes -= rec->size;
+
+      watch->write_off = 0;
+      watch->write_data = rec->data;
+      watch->write_size = rec->size;
+      watch->write_id = rec->id;
+
+      g_slice_free (GstRTSPRec, rec);
+    }
+
+    res = write_bytes (conn->output_stream, watch->write_data,
+        &watch->write_off, watch->write_size, FALSE, conn->cancellable);
+    g_mutex_unlock (&watch->mutex);
+
+    if (res == GST_RTSP_EINTR)
+      goto write_blocked;
+    else if (G_LIKELY (res == GST_RTSP_OK)) {
+      if (watch->funcs.message_sent)
+        watch->funcs.message_sent (watch, watch->write_id, watch->user_data);
+    } else {
+      goto write_error;
+    }
+    g_mutex_lock (&watch->mutex);
+
+    g_free (watch->write_data);
+    watch->write_data = NULL;
+  } while (TRUE);
+  g_mutex_unlock (&watch->mutex);
+
+write_blocked:
+  return TRUE;
+
+  /* ERRORS */
+eof:
+  {
+    return FALSE;
   }
 write_error:
   {
-    watch->writefd.events = 0;
-    watch->writefd.revents = 0;
-    g_source_remove_poll ((GSource *) watch, &watch->writefd);
-    keep_running = (watch->readfd.events != 0);
-
-    if (keep_running) {
-      if (watch->funcs.error_full)
-        GST_RTSP_CHECK (watch->funcs.error_full (watch, res, NULL,
-                watch->write_id, watch->user_data), error);
-      else
-        goto error;
-    } else
-      goto eof;
-  }
-error:
-  {
-    if (watch->funcs.error)
+    if (watch->funcs.error_full)
+      watch->funcs.error_full (watch, res, NULL,
+          watch->write_id, watch->user_data);
+    else if (watch->funcs.error)
       watch->funcs.error (watch, res, watch->user_data);
 
-    return keep_running;
+    return FALSE;
   }
 }
 
@@ -3160,8 +3051,14 @@
   g_queue_foreach (watch->messages, (GFunc) gst_rtsp_rec_free, NULL);
   g_queue_free (watch->messages);
   watch->messages = NULL;
+  watch->messages_bytes = 0;
   g_free (watch->write_data);
 
+  if (watch->readsrc)
+    g_source_unref (watch->readsrc);
+  if (watch->writesrc)
+    g_source_unref (watch->writesrc);
+
   g_mutex_clear (&watch->mutex);
 
   if (watch->notify)
@@ -3215,10 +3112,8 @@
   g_mutex_init (&result->mutex);
   result->messages = g_queue_new ();
 
-  result->readfd.fd = -1;
-  result->writefd.fd = -1;
-
   gst_rtsp_watch_reset (result);
+  result->keep_running = TRUE;
 
   result->funcs = *funcs;
   result->user_data = user_data;
@@ -3237,23 +3132,39 @@
 void
 gst_rtsp_watch_reset (GstRTSPWatch * watch)
 {
-  if (watch->readfd.fd != -1)
-    g_source_remove_poll ((GSource *) watch, &watch->readfd);
-  if (watch->writefd.fd != -1)
-    g_source_remove_poll ((GSource *) watch, &watch->writefd);
+  if (watch->readsrc) {
+    g_source_remove_child_source ((GSource *) watch, watch->readsrc);
+    g_source_unref (watch->readsrc);
+  }
+  if (watch->writesrc) {
+    if (watch->write_added) {
+      g_source_remove_child_source ((GSource *) watch, watch->writesrc);
+      watch->write_added = FALSE;
+    }
+    g_source_unref (watch->writesrc);
+  }
 
-  watch->readfd.fd = g_socket_get_fd (watch->conn->read_socket);
-  watch->readfd.events = READ_COND;
-  watch->readfd.revents = 0;
+  if (watch->conn->input_stream) {
+    watch->readsrc =
+        g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM
+        (watch->conn->input_stream), NULL);
+    g_source_set_callback (watch->readsrc,
+        (GSourceFunc) gst_rtsp_source_dispatch_read, watch, NULL);
+    g_source_add_child_source ((GSource *) watch, watch->readsrc);
+  } else {
+    watch->readsrc = NULL;
+  }
 
-  watch->writefd.fd = g_socket_get_fd (watch->conn->write_socket);
-  watch->writefd.events = WRITE_ERR;
-  watch->writefd.revents = 0;
-
-  if (watch->readfd.fd != -1)
-    g_source_add_poll ((GSource *) watch, &watch->readfd);
-  if (watch->writefd.fd != -1)
-    g_source_add_poll ((GSource *) watch, &watch->writefd);
+  if (watch->conn->output_stream) {
+    watch->writesrc =
+        g_pollable_output_stream_create_source (G_POLLABLE_OUTPUT_STREAM
+        (watch->conn->output_stream), NULL);
+    g_source_set_callback (watch->writesrc,
+        (GSourceFunc) gst_rtsp_source_dispatch_write, watch, NULL);
+    /* we add the write source when we actually have something to write */
+  } else {
+    watch->writesrc = NULL;
+  }
 }
 
 /**
@@ -3289,9 +3200,63 @@
 }
 
 /**
+ * gst_rtsp_watch_set_send_backlog:
+ * @watch: a #GstRTSPWatch
+ * @bytes: maximum bytes
+ * @messages: maximum messages
+ *
+ * Set the maximum amount of bytes and messages that will be queued in @watch.
+ * When the maximum amounts are exceeded, gst_rtsp_watch_write_data() and
+ * gst_rtsp_watch_send_message() will return #GST_RTSP_ENOMEM.
+ *
+ * A value of 0 for @bytes or @messages means no limits.
+ *
+ * Since: 1.1.1
+ */
+void
+gst_rtsp_watch_set_send_backlog (GstRTSPWatch * watch,
+    gsize bytes, guint messages)
+{
+  g_return_if_fail (watch != NULL);
+
+  g_mutex_lock (&watch->mutex);
+  watch->max_bytes = bytes;
+  watch->max_messages = messages;
+  g_mutex_unlock (&watch->mutex);
+
+  GST_DEBUG ("set backlog to bytes %" G_GSIZE_FORMAT ", messages %u",
+      bytes, messages);
+}
+
+/**
+ * gst_rtsp_watch_get_send_backlog:
+ * @watch: a #GstRTSPWatch
+ * @bytes: (out) (allow-none): maximum bytes
+ * @messages: (out) (allow-none): maximum messages
+ *
+ * Get the maximum amount of bytes and messages that will be queued in @watch.
+ * See gst_rtsp_watch_set_send_backlog().
+ *
+ * Since: 1.1.1
+ */
+void
+gst_rtsp_watch_get_send_backlog (GstRTSPWatch * watch,
+    gsize * bytes, guint * messages)
+{
+  g_return_if_fail (watch != NULL);
+
+  g_mutex_lock (&watch->mutex);
+  if (bytes)
+    *bytes = watch->max_bytes;
+  if (messages)
+    *messages = watch->max_messages;
+  g_mutex_unlock (&watch->mutex);
+}
+
+/**
  * gst_rtsp_watch_write_data:
  * @watch: a #GstRTSPWatch
- * @data: the data to queue
+ * @data: (array length=size) (transfer full): the data to queue
  * @size: the size of @data
  * @id: (out) (allow-none): location for a message ID or %NULL
  *
@@ -3304,7 +3269,12 @@
  *
  * This function will take ownership of @data and g_free() it after use.
  *
- * Returns: #GST_RTSP_OK on success.
+ * If the amount of queued data exceeds the limits set with
+ * gst_rtsp_watch_set_send_backlog(), this function will return
+ * #GST_RTSP_ENOMEM.
+ *
+ * Returns: #GST_RTSP_OK on success. #GST_RTSP_ENOMEM when the backlog limits
+ * are reached.
  */
 GstRTSPResult
 gst_rtsp_watch_write_data (GstRTSPWatch * watch, const guint8 * data,
@@ -3324,8 +3294,8 @@
   /* try to send the message synchronously first */
   if (watch->messages->length == 0 && watch->write_data == NULL) {
     res =
-        write_bytes (watch->conn->write_socket, data, &off, size,
-        watch->conn->cancellable);
+        write_bytes (watch->conn->output_stream, data, &off, size,
+        FALSE, watch->conn->cancellable);
     if (res != GST_RTSP_EINTR) {
       if (id != NULL)
         *id = 0;
@@ -3334,6 +3304,12 @@
     }
   }
 
+  /* check limits */
+  if ((watch->max_bytes != 0 && watch->messages_bytes >= watch->max_bytes) ||
+      (watch->max_messages != 0
+          && watch->messages->length >= watch->max_messages))
+    goto too_much_backlog;
+
   /* make a record with the data and id for sending async */
   rec = g_slice_new (GstRTSPRec);
   if (off == 0) {
@@ -3350,14 +3326,16 @@
     rec->id = ++watch->id;
   } while (G_UNLIKELY (rec->id == 0));
 
-  /* add the record to a queue. FIXME we would like to have an upper limit here */
+  /* add the record to a queue. */
   g_queue_push_head (watch->messages, rec);
+  watch->messages_bytes += rec->size;
 
   /* make sure the main context will now also check for writability on the
    * socket */
-  if (watch->writefd.events != WRITE_COND) {
-    watch->writefd.events = WRITE_COND;
-    context = ((GSource *) watch)->context;
+  context = ((GSource *) watch)->context;
+  if (!watch->write_added) {
+    g_source_add_child_source ((GSource *) watch, watch->writesrc);
+    watch->write_added = TRUE;
   }
 
   if (id != NULL)
@@ -3371,6 +3349,17 @@
     g_main_context_wakeup (context);
 
   return res;
+
+  /* ERRORS */
+too_much_backlog:
+  {
+    GST_WARNING ("too much backlog: max_bytes %" G_GSIZE_FORMAT ", current %"
+        G_GSIZE_FORMAT ", max_messages %u, current %u", watch->max_bytes,
+        watch->messages_bytes, watch->max_messages, watch->messages->length);
+    g_mutex_unlock (&watch->mutex);
+    g_free ((gpointer) data);
+    return GST_RTSP_ENOMEM;
+  }
 }
 
 /**
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.h b/gst-libs/gst/rtsp/gstrtspconnection.h
index c004535..dbd3ada 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.h
+++ b/gst-libs/gst/rtsp/gstrtspconnection.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -72,6 +72,9 @@
 GstRTSPResult      gst_rtsp_connection_close          (GstRTSPConnection *conn);
 GstRTSPResult      gst_rtsp_connection_free           (GstRTSPConnection *conn);
 
+/* TLS connections */
+GTlsConnection *   gst_rtsp_connection_get_tls        (GstRTSPConnection * conn, GError ** error);
+
 
 /* sending/receiving raw bytes */
 GstRTSPResult      gst_rtsp_connection_read           (GstRTSPConnection * conn, guint8 * data,
@@ -131,6 +134,9 @@
 const gchar *      gst_rtsp_connection_get_tunnelid   (const GstRTSPConnection *conn);
 GstRTSPResult      gst_rtsp_connection_do_tunnel      (GstRTSPConnection *conn, GstRTSPConnection *conn2);
 
+void               gst_rtsp_connection_set_remember_session_id (GstRTSPConnection *conn, gboolean remember);
+gboolean           gst_rtsp_connection_get_remember_session_id (GstRTSPConnection *conn);
+
 /* async IO */
 
 /**
@@ -187,6 +193,11 @@
 guint              gst_rtsp_watch_attach             (GstRTSPWatch *watch,
                                                       GMainContext *context);
 
+void               gst_rtsp_watch_set_send_backlog  (GstRTSPWatch *watch,
+                                                     gsize bytes, guint messages);
+void               gst_rtsp_watch_get_send_backlog  (GstRTSPWatch *watch,
+                                                     gsize *bytes, guint *messages);
+
 GstRTSPResult      gst_rtsp_watch_write_data         (GstRTSPWatch *watch,
                                                       const guint8 *data,
                                                       guint size, guint *id);
diff --git a/gst-libs/gst/rtsp/gstrtspdefs.c b/gst-libs/gst/rtsp/gstrtspdefs.c
index 96f1ef9..2fdc9c9 100644
--- a/gst-libs/gst/rtsp/gstrtspdefs.c
+++ b/gst-libs/gst/rtsp/gstrtspdefs.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -466,6 +466,46 @@
 }
 
 /**
+ * gst_rtsp_options_from_text:
+ * @options: a comma separated list of options
+ *
+ * Convert the comma separated list @options to a #GstRTSPMethod bitwise or
+ * of methods. This functions is the reverse of gst_rtsp_options_as_text().
+ *
+ * Returns: a #GstRTSPMethod
+ *
+ * Since: 1.1.1
+ */
+GstRTSPMethod
+gst_rtsp_options_from_text (const gchar * options)
+{
+  GstRTSPMethod methods;
+  gchar **ostr;
+  gint i;
+
+  /* The string is like:
+   * OPTIONS, DESCRIBE, ANNOUNCE, PLAY, SETUP, ...
+   */
+  ostr = g_strsplit (options, ",", 0);
+
+  methods = 0;
+  for (i = 0; ostr[i]; i++) {
+    gchar *stripped;
+    GstRTSPMethod method;
+
+    stripped = g_strstrip (ostr[i]);
+    method = gst_rtsp_find_method (stripped);
+
+    /* keep bitfield of supported methods */
+    if (method != GST_RTSP_INVALID)
+      methods |= method;
+  }
+  g_strfreev (ostr);
+
+  return methods;
+}
+
+/**
  * gst_rtsp_header_allow_multiple:
  * @field: a #GstRTSPHeaderField
  *
diff --git a/gst-libs/gst/rtsp/gstrtspdefs.h b/gst-libs/gst/rtsp/gstrtspdefs.h
index e0b3793..6a10ec3 100644
--- a/gst-libs/gst/rtsp/gstrtspdefs.h
+++ b/gst-libs/gst/rtsp/gstrtspdefs.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -399,6 +399,7 @@
 const gchar*       gst_rtsp_status_as_text     (GstRTSPStatusCode code);
 
 gchar*             gst_rtsp_options_as_text    (GstRTSPMethod options);
+GstRTSPMethod      gst_rtsp_options_from_text  (const gchar *options);
 
 GstRTSPHeaderField gst_rtsp_find_header_field  (const gchar *header);
 GstRTSPMethod      gst_rtsp_find_method        (const gchar *method);
diff --git a/gst-libs/gst/rtsp/gstrtspextension.c b/gst-libs/gst/rtsp/gstrtspextension.c
index 54457fb..89936aa 100644
--- a/gst-libs/gst/rtsp/gstrtspextension.c
+++ b/gst-libs/gst/rtsp/gstrtspextension.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/rtsp/gstrtspextension.h b/gst-libs/gst/rtsp/gstrtspextension.h
index 66aa7ac..19d01a5 100644
--- a/gst-libs/gst/rtsp/gstrtspextension.h
+++ b/gst-libs/gst/rtsp/gstrtspextension.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_RTSP_EXTENSION_H__
diff --git a/gst-libs/gst/rtsp/gstrtspmessage.c b/gst-libs/gst/rtsp/gstrtspmessage.c
index 6bc6b0d..3eece20 100644
--- a/gst-libs/gst/rtsp/gstrtspmessage.c
+++ b/gst-libs/gst/rtsp/gstrtspmessage.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -500,7 +500,7 @@
  * gst_rtsp_message_take_header:
  * @msg: a #GstRTSPMessage
  * @field: a #GstRTSPHeaderField
- * @value: the value of the header
+ * @value: (transfer full): the value of the header
  *
  * Add a header with key @field and @value to @msg. This function takes
  * ownership of @value.
diff --git a/gst-libs/gst/rtsp/gstrtspmessage.h b/gst-libs/gst/rtsp/gstrtspmessage.h
index b430ce2..657f3fb 100644
--- a/gst-libs/gst/rtsp/gstrtspmessage.h
+++ b/gst-libs/gst/rtsp/gstrtspmessage.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst-libs/gst/rtsp/gstrtsprange.c b/gst-libs/gst/rtsp/gstrtsprange.c
index a5f4b84..7197455 100644
--- a/gst-libs/gst/rtsp/gstrtsprange.c
+++ b/gst-libs/gst/rtsp/gstrtsprange.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -49,7 +49,7 @@
  * Last reviewed on 2007-07-25 (0.10.14)
  */
 
-
+#include <math.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -81,16 +81,21 @@
 {
   if (strncmp (str, "now", 3) == 0) {
     time->type = GST_RTSP_TIME_NOW;
-  } else if (str[0] == '\0') {
+  } else if (str[0] == '\0' || str[0] == '-') {
     time->type = GST_RTSP_TIME_END;
   } else if (strstr (str, ":")) {
     gint hours, mins;
 
-    sscanf (str, "%2d:%2d:", &hours, &mins);
-    str = strchr (str, ':') + 1;
-    str = strchr (str, ':') + 1;
+    if (sscanf (str, "%2d:%2d:", &hours, &mins) != 2)
+      return GST_RTSP_EINVAL;
+
+    str = strchr (str, ':');
+    str = strchr (str + 1, ':');
+    if (str == NULL)
+      return GST_RTSP_EINVAL;
+
     time->type = GST_RTSP_TIME_SECONDS;
-    time->seconds = ((hours * 60) + mins) * 60 + gst_strtod (str);
+    time->seconds = ((hours * 60) + mins) * 60 + gst_strtod (str + 1);
   } else {
     time->type = GST_RTSP_TIME_SECONDS;
     time->seconds = gst_strtod (str);
@@ -118,20 +123,133 @@
 
   res = parse_npt_time (p + 1, &range->max);
 
+  /* a single - is not allowed */
+  if (range->min.type == GST_RTSP_TIME_END
+      && range->max.type == GST_RTSP_TIME_END)
+    return GST_RTSP_EINVAL;
+
 done:
   return res;
 }
 
+/*   utc-time     =   utc-date "T" utc-time "Z"
+ *   utc-date     =   8DIGIT                    ; < YYYYMMDD >
+ *   utc-time     =   6DIGIT [ "." fraction ]   ; < HHMMSS.fraction >
+ *
+ *   Example for November 8, 1996 at 14h37 and 20 and a quarter seconds
+ *   UTC:
+ *
+ *   19961108T143720.25Z
+ */
 static GstRTSPResult
-parse_clock_range (const gchar * str, GstRTSPTimeRange * range)
+parse_utc_time (const gchar * str, GstRTSPTime * time, GstRTSPTime2 * time2,
+    const gchar * limit)
 {
-  return GST_RTSP_ENOTIMPL;
+
+  if (str[0] == '\0') {
+    time->type = GST_RTSP_TIME_END;
+    return GST_RTSP_OK;
+  } else {
+    gint year, month, day;
+    gint hours, mins;
+    gdouble secs;
+    gchar *T, *Z;
+
+    T = strchr (str, 'T');
+    if (T == NULL || T != str + 8)
+      return GST_RTSP_EINVAL;
+
+    Z = strchr (T + 1, 'Z');
+    if (Z == NULL)
+      return GST_RTSP_EINVAL;
+
+    time->type = GST_RTSP_TIME_UTC;
+
+    if (sscanf (str, "%4d%2d%2dT%2d%2d%lfZ", &year, &month, &day, &hours,
+            &mins, &secs) != 6)
+      return GST_RTSP_EINVAL;
+
+    time2->year = year;
+    time2->month = month;
+    time2->day = day;
+    time->seconds = ((hours * 60) + mins) * 60 + secs;
+  }
+  return GST_RTSP_OK;
 }
 
+/*   utc-range    =   "clock" "=" utc-time "-" [ utc-time ]
+ */
+static GstRTSPResult
+parse_utc_range (const gchar * str, GstRTSPTimeRange * range)
+{
+  GstRTSPResult res;
+  gchar *p;
+
+  range->unit = GST_RTSP_RANGE_CLOCK;
+
+  /* find '-' separator, can't have a single - */
+  p = strstr (str, "-");
+  if (p == NULL || p == str)
+    return GST_RTSP_EINVAL;
+
+  if ((res = parse_utc_time (str, &range->min, &range->min2, p)) != GST_RTSP_OK)
+    goto done;
+
+  res = parse_utc_time (p + 1, &range->max, &range->max2, NULL);
+
+done:
+  return res;
+}
+
+/* smpte-time   =   1*2DIGIT ":" 1*2DIGIT ":" 1*2DIGIT [ ":" 1*2DIGIT ]
+ *                     [ "." 1*2DIGIT ]
+ *  hours:minutes:seconds:frames.subframes
+*/
+static GstRTSPResult
+parse_smpte_time (const gchar * str, GstRTSPTime * time, GstRTSPTime2 * time2,
+    const gchar * limit)
+{
+  gint hours, mins, secs;
+
+  if (str[0] == '\0') {
+    time->type = GST_RTSP_TIME_END;
+    return GST_RTSP_OK;
+  } else {
+    if (sscanf (str, "%2d:%2d:%2d", &hours, &mins, &secs) != 3)
+      return GST_RTSP_EINVAL;
+
+    time->type = GST_RTSP_TIME_FRAMES;
+    time->seconds = ((hours * 60) + mins) * 60 + secs;
+    str = strchr (str, ':');
+    str = strchr (str + 1, ':');
+    str = strchr (str + 1, ':');
+    if (str && (limit == NULL || str < limit))
+      time2->frames = gst_strtod (str + 1);
+  }
+  return GST_RTSP_OK;
+}
+
+/* smpte-range  =   smpte-type "=" smpte-time "-" [ smpte-time ]
+ */
 static GstRTSPResult
 parse_smpte_range (const gchar * str, GstRTSPTimeRange * range)
 {
-  return GST_RTSP_ENOTIMPL;
+  GstRTSPResult res;
+  gchar *p;
+
+  /* find '-' separator, can't have a single - */
+  p = strstr (str, "-");
+  if (p == NULL || p == str)
+    return GST_RTSP_EINVAL;
+
+  if ((res =
+          parse_smpte_time (str, &range->min, &range->min2, p)) != GST_RTSP_OK)
+    goto done;
+
+  res = parse_smpte_time (p + 1, &range->max, &range->max2, NULL);
+
+done:
+  return res;
 }
 
 /**
@@ -160,7 +278,7 @@
   if (g_str_has_prefix (p, "npt=")) {
     ret = parse_npt_range (p + 4, res);
   } else if (g_str_has_prefix (p, "clock=")) {
-    ret = parse_clock_range (p + 6, res);
+    ret = parse_utc_range (p + 6, res);
   } else if (g_str_has_prefix (p, "smpte=")) {
     res->unit = GST_RTSP_RANGE_SMPTE;
     ret = parse_smpte_range (p + 6, res);
@@ -187,23 +305,93 @@
   }
 }
 
-static gboolean
-npt_time_string (const GstRTSPTime * time, GString * string)
+static void
+string_append_dtostr (GString * string, gdouble value, guint precision)
 {
   gchar dstrbuf[G_ASCII_DTOSTR_BUF_SIZE] = { 0, };
+  gchar *dot;
+  guint len;
+
+  precision++;
+
+  if (value != 0.0)
+    value += 4.9 * pow (10.0, precision * -1.0);
+
+  g_ascii_dtostr (dstrbuf, G_ASCII_DTOSTR_BUF_SIZE, value);
+
+  dot = strchr (dstrbuf, '.');
+
+  if (dot == NULL)
+    goto done;
+
+  for (; *dot != '.' && *dot != '0'; dot++);
+
+  if ((dot - dstrbuf) + precision < G_ASCII_DTOSTR_BUF_SIZE)
+    dot[precision] = 0;
+
+  len = strlen (dstrbuf);
+  while (dstrbuf[len - 1] == '0')
+    dstrbuf[--len] = 0;
+  if (dstrbuf[len - 1] == '.')
+    dstrbuf[--len] = 0;
+
+done:
+
+  g_string_append (string, dstrbuf);
+}
+
+static gboolean
+time_to_string (const GstRTSPTime * t1, const GstRTSPTime2 * t2,
+    GString * string)
+{
   gboolean res = TRUE;;
 
-  switch (time->type) {
+  switch (t1->type) {
     case GST_RTSP_TIME_SECONDS:
       /* need to format floating point value strings as in C locale */
-      g_ascii_dtostr (dstrbuf, G_ASCII_DTOSTR_BUF_SIZE, time->seconds);
-      g_string_append (string, dstrbuf);
+      string_append_dtostr (string, t1->seconds +
+          (t1->seconds ? 0.00000000005 : 0), 9);
       break;
     case GST_RTSP_TIME_NOW:
       g_string_append (string, "now");
       break;
     case GST_RTSP_TIME_END:
       break;
+    case GST_RTSP_TIME_FRAMES:
+    {
+      gint64 sec = t1->seconds;
+
+      /* need to format floating point value strings as in C locale */
+      g_string_append_printf (string, "%d:%02d:%02d", (gint) sec / (60 * 60),
+          (gint) (sec % (60 * 60)) / 60, (gint) sec % 60);
+
+      if (t2->frames > 0.0) {
+        g_string_append_printf (string, ":%s", t2->frames < 10 ? "0" : "");
+        string_append_dtostr (string, t2->frames + 0.005, 2);
+      }
+      break;
+    }
+    case GST_RTSP_TIME_UTC:
+    {
+      gint64 sec = t1->seconds;
+      gint hours, minutes;
+      gdouble seconds;
+
+      hours = sec / (60 * 60);
+      sec -= hours * 60 * 60;
+      minutes = sec / 60;
+      sec = ((hours * 60) + minutes) * 60;
+      seconds = t1->seconds - sec;
+      if (seconds)
+        seconds += 0.00000000005;
+
+      g_string_append_printf (string, "%04d%02d%02dT%02d%02d%s",
+          t2->year, t2->month, t2->day, hours, minutes,
+          seconds < 10 ? "0" : "");
+      string_append_dtostr (string, seconds, 9);
+      g_string_append (string, "Z");
+      break;
+    }
     default:
       res = FALSE;
       break;
@@ -212,16 +400,16 @@
 }
 
 static gboolean
-npt_range_string (const GstRTSPTimeRange * range, GString * string)
+range_to_string (const GstRTSPTimeRange * range, GString * string)
 {
   gboolean res;
 
-  if (!(res = npt_time_string (&range->min, string)))
+  if (!(res = time_to_string (&range->min, &range->min2, string)))
     goto done;
 
   g_string_append (string, "-");
 
-  if (!(res = npt_time_string (&range->max, string)))
+  if (!(res = time_to_string (&range->max, &range->max2, string)))
     goto done;
 
 done:
@@ -239,35 +427,44 @@
 gchar *
 gst_rtsp_range_to_string (const GstRTSPTimeRange * range)
 {
-  gchar *result = NULL;
   GString *string;
 
   g_return_val_if_fail (range != NULL, NULL);
 
-  string = g_string_new ("");
-
   switch (range->unit) {
     case GST_RTSP_RANGE_NPT:
-      g_string_append (string, "npt=");
-      if (!npt_range_string (range, string)) {
-        g_string_free (string, TRUE);
-        string = NULL;
-      }
+      string = g_string_new ("npt=");
       break;
     case GST_RTSP_RANGE_SMPTE:
     case GST_RTSP_RANGE_SMPTE_30_DROP:
-    case GST_RTSP_RANGE_SMPTE_25:
-    case GST_RTSP_RANGE_CLOCK:
-    default:
-      g_warning ("time range unit not yet implemented");
-      g_string_free (string, TRUE);
-      string = NULL;
+      string = g_string_new ("smpte=");
       break;
+    case GST_RTSP_RANGE_SMPTE_25:
+      string = g_string_new ("smpte-25=");
+      break;
+    case GST_RTSP_RANGE_CLOCK:
+      string = g_string_new ("clock=");
+      break;
+    default:
+      goto not_implemented;
   }
-  if (string)
-    result = g_string_free (string, FALSE);
 
-  return result;
+  if (!range_to_string (range, string))
+    goto format_failed;
+
+  return g_string_free (string, FALSE);
+
+  /* ERRORS */
+not_implemented:
+  {
+    g_warning ("time range unit not yet implemented");
+    return NULL;
+  }
+format_failed:
+  {
+    g_string_free (string, TRUE);
+    return NULL;
+  }
 }
 
 /**
@@ -279,5 +476,217 @@
 void
 gst_rtsp_range_free (GstRTSPTimeRange * range)
 {
+  g_return_if_fail (range != NULL);
+
   g_free (range);
 }
+
+static GstClockTime
+get_seconds (const GstRTSPTime * t)
+{
+  if (t->seconds < G_MAXINT) {
+    gint num, denom;
+    /* Don't do direct multiply with GST_SECOND to avoid rounding
+     * errors.
+     * This only works for "small" numbers, because num is limited to 32-bit
+     */
+    gst_util_double_to_fraction (t->seconds, &num, &denom);
+    return gst_util_uint64_scale_int (GST_SECOND, num, denom);
+  } else {
+    return gst_util_gdouble_to_guint64 (t->seconds * GST_SECOND);
+  }
+}
+
+static GstClockTime
+get_frames (const GstRTSPTime2 * t, GstRTSPRangeUnit unit)
+{
+  gint num, denom;
+
+  gst_util_double_to_fraction (t->frames, &num, &denom);
+
+  switch (unit) {
+    case GST_RTSP_RANGE_SMPTE_25:
+      denom *= 25;
+      break;
+    case GST_RTSP_RANGE_SMPTE:
+    case GST_RTSP_RANGE_SMPTE_30_DROP:
+    default:
+      num *= 1001;
+      denom *= 30003;
+      break;
+  }
+  return gst_util_uint64_scale_int (GST_SECOND, num, denom);
+}
+
+static GstClockTime
+get_time (GstRTSPRangeUnit unit, const GstRTSPTime * t1,
+    const GstRTSPTime2 * t2)
+{
+  GstClockTime res;
+
+  switch (t1->type) {
+    case GST_RTSP_TIME_SECONDS:
+    {
+      res = get_seconds (t1);
+      break;
+    }
+    case GST_RTSP_TIME_UTC:
+    {
+      GDateTime *dt, *bt;
+      GTimeSpan span;
+
+      /* make time base, we use 1900 */
+      bt = g_date_time_new_utc (1900, 1, 1, 0, 0, 0.0);
+      /* convert to GDateTime without the seconds */
+      dt = g_date_time_new_utc (t2->year, t2->month, t2->day, 0, 0, 0.0);
+      /* get amount of microseconds */
+      span = g_date_time_difference (dt, bt);
+      g_date_time_unref (bt);
+      g_date_time_unref (dt);
+      /* add seconds */
+      res = get_seconds (t1) + (span * 1000);
+      break;
+    }
+    case GST_RTSP_TIME_FRAMES:
+      res = get_seconds (t1);
+      res += get_frames (t2, unit);
+      break;
+    default:
+    case GST_RTSP_TIME_NOW:
+    case GST_RTSP_TIME_END:
+      res = GST_CLOCK_TIME_NONE;
+      break;
+  }
+  return res;
+}
+
+/**
+ * gst_rtsp_range_get_times:
+ * @range: a #GstRTSPTimeRange
+ * @min: result minimum #GstClockTime
+ * @max: result maximum #GstClockTime
+ *
+ * Retrieve the minimum and maximum values from @range converted to
+ * #GstClockTime in @min and @max.
+ *
+ * A value of %GST_CLOCK_TIME_NONE will be used to signal #GST_RTSP_TIME_NOW
+ * and #GST_RTSP_TIME_END for @min and @max respectively.
+ *
+ * UTC times will be converted to nanoseconds since 1900.
+ *
+ * Returns: %TRUE on success.
+ *
+ * Since: 1.1.1
+ */
+gboolean
+gst_rtsp_range_get_times (const GstRTSPTimeRange * range,
+    GstClockTime * min, GstClockTime * max)
+{
+  g_return_val_if_fail (range != NULL, FALSE);
+
+  if (min)
+    *min = get_time (range->unit, &range->min, &range->min2);
+  if (max)
+    *max = get_time (range->unit, &range->max, &range->max2);
+
+  return TRUE;
+}
+
+static void
+set_time (GstRTSPTime * time, GstRTSPTime2 * time2, GstRTSPRangeUnit unit,
+    GstClockTime clock_time)
+{
+  memset (time, 0, sizeof (GstRTSPTime));
+  memset (time2, 0, sizeof (GstRTSPTime2));
+
+  if (clock_time == GST_CLOCK_TIME_NONE) {
+    time->type = GST_RTSP_TIME_END;
+    return;
+  }
+
+  switch (unit) {
+    case GST_RTSP_RANGE_SMPTE:
+    case GST_RTSP_RANGE_SMPTE_30_DROP:
+    {
+      time->seconds = (guint64) (clock_time / GST_SECOND);
+      time2->frames = 30003 * (clock_time % GST_SECOND) /
+          (gdouble) (1001 * GST_SECOND);
+      time->type = GST_RTSP_TIME_FRAMES;
+      g_assert (time2->frames < 30);
+      break;
+    }
+    case GST_RTSP_RANGE_SMPTE_25:
+    {
+      time->seconds = (guint64) (clock_time / GST_SECOND);
+      time2->frames = (25 * (clock_time % GST_SECOND)) / (gdouble) GST_SECOND;
+      time->type = GST_RTSP_TIME_FRAMES;
+      g_assert (time2->frames < 25);
+      break;
+    }
+    case GST_RTSP_RANGE_NPT:
+    {
+      time->seconds = (gdouble) clock_time / (gdouble) GST_SECOND;
+      time->type = GST_RTSP_TIME_SECONDS;
+      break;
+    }
+    case GST_RTSP_RANGE_CLOCK:
+    {
+      GDateTime *bt, *datetime;
+      GstClockTime subsecond = clock_time % GST_SECOND;
+
+      bt = g_date_time_new_utc (1900, 1, 1, 0, 0, 0.0);
+      datetime = g_date_time_add_seconds (bt, clock_time / GST_SECOND);
+
+      time2->year = g_date_time_get_year (datetime);
+      time2->month = g_date_time_get_month (datetime);
+      time2->day = g_date_time_get_day_of_month (datetime);
+
+      time->seconds = g_date_time_get_hour (datetime) * 60 * 60;
+      time->seconds += g_date_time_get_minute (datetime) * 60;
+      time->seconds += g_date_time_get_seconds (datetime);
+      time->seconds += (gdouble) subsecond / (gdouble) GST_SECOND;
+      time->type = GST_RTSP_TIME_UTC;
+
+      g_date_time_unref (bt);
+      g_date_time_unref (datetime);
+      break;
+    }
+  }
+
+  if (time->seconds < 0.000000001)
+    time->seconds = 0;
+  if (time2->frames < 0.000000001)
+    time2->frames = 0;
+}
+
+/**
+ * gst_rtsp_range_convert_units:
+ * @range: a #GstRTSPTimeRange
+ * @unit: the unit to convert the range into
+ *
+ * Converts the range in-place between different types of units.
+ * Ranges containing the special value #GST_RTSP_TIME_NOW can not be
+ * converted as these are only valid for #GST_RTSP_RANGE_NPT.
+ *
+ * Returns: %TRUE if the range could be converted
+ */
+
+gboolean
+gst_rtsp_range_convert_units (GstRTSPTimeRange * range, GstRTSPRangeUnit unit)
+{
+  if (range->unit == unit)
+    return TRUE;
+
+  if (range->min.type == GST_RTSP_TIME_NOW ||
+      range->max.type == GST_RTSP_TIME_NOW)
+    return FALSE;
+
+  set_time (&range->min, &range->min2, unit,
+      get_time (range->unit, &range->min, &range->min2));
+  set_time (&range->max, &range->max2, unit,
+      get_time (range->unit, &range->max, &range->max2));
+
+  range->unit = unit;
+
+  return TRUE;
+}
diff --git a/gst-libs/gst/rtsp/gstrtsprange.h b/gst-libs/gst/rtsp/gstrtsprange.h
index 6778fea..2dc0469 100644
--- a/gst-libs/gst/rtsp/gstrtsprange.h
+++ b/gst-libs/gst/rtsp/gstrtsprange.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -44,6 +44,7 @@
 #define __GST_RTSP_RANGE_H__
 
 #include <glib.h>
+#include <gst/gst.h>
 
 #include <gst/rtsp/gstrtspdefs.h>
 
@@ -70,25 +71,31 @@
 
 typedef struct _GstRTSPTimeRange GstRTSPTimeRange;
 typedef struct _GstRTSPTime GstRTSPTime;
+typedef struct _GstRTSPTime2 GstRTSPTime2;
 
 /**
  * GstRTSPTimeType:
  * @GST_RTSP_TIME_SECONDS: seconds
  * @GST_RTSP_TIME_NOW: now
  * @GST_RTSP_TIME_END: end
+ * @GST_RTSP_TIME_FRAMES: frames and subframes
+ * @GST_RTSP_TIME_UTC: UTC time
  *
  * Possible time types.
  */
 typedef enum {
   GST_RTSP_TIME_SECONDS,
   GST_RTSP_TIME_NOW,
-  GST_RTSP_TIME_END
+  GST_RTSP_TIME_END,
+  GST_RTSP_TIME_FRAMES,
+  GST_RTSP_TIME_UTC
 } GstRTSPTimeType;
 
 /**
  * GstRTSPTime:
  * @type: the time of the time
- * @seconds: seconds when @type is GST_RTSP_TIME_SECONDS
+ * @seconds: seconds when @type is GST_RTSP_TIME_SECONDS,
+ *           GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES
  *
  * A time indication.
  */
@@ -98,24 +105,53 @@
 };
 
 /**
+ * GstRTSPTime2:
+ * @frames: frames and subframes when type in GstRTSPTime is
+ *          GST_RTSP_TIME_FRAMES
+ * @year: year when type is GST_RTSP_TIME_UTC
+ * @month: month when type is GST_RTSP_TIME_UTC
+ * @day: day when type is GST_RTSP_TIME_UTC
+ *
+ * Extra fields for a time indication.
+ *
+ * Since: 1.1.1
+ */
+struct _GstRTSPTime2 {
+  gdouble         frames;
+  guint           year;
+  guint           month;
+  guint           day;
+};
+
+/**
  * GstRTSPTimeRange:
  * @unit: the time units used
  * @min: the minimum interval
  * @max: the maximum interval
+ * @min2: extra fields in the minimum interval (Since: 1.1.1)
+ * @max2: extra fields in the maximum interval (Since: 1.1.1)
  *
  * A time range.
  */
 struct _GstRTSPTimeRange {
   GstRTSPRangeUnit unit;
 
-  GstRTSPTime min;
-  GstRTSPTime max;
+  GstRTSPTime  min;
+  GstRTSPTime  max;
+  GstRTSPTime2 min2;
+  GstRTSPTime2 max2;
 };
 
 GstRTSPResult   gst_rtsp_range_parse        (const gchar *rangestr, GstRTSPTimeRange **range);
 gchar *         gst_rtsp_range_to_string    (const GstRTSPTimeRange *range);
 void            gst_rtsp_range_free         (GstRTSPTimeRange *range);
 
+gboolean        gst_rtsp_range_get_times     (const GstRTSPTimeRange *range,
+                                              GstClockTime *min, GstClockTime *max);
+
+gboolean        gst_rtsp_range_convert_units (GstRTSPTimeRange * range,
+                                              GstRTSPRangeUnit unit);
+
 G_END_DECLS
 
 #endif /* __GST_RTSP_RANGE_H__ */
diff --git a/gst-libs/gst/rtsp/gstrtsptransport.c b/gst-libs/gst/rtsp/gstrtsptransport.c
index d2b6450..e5d8f26 100644
--- a/gst-libs/gst/rtsp/gstrtsptransport.c
+++ b/gst-libs/gst/rtsp/gstrtsptransport.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -124,6 +124,7 @@
         "udp-multicast"},
     {GST_RTSP_LOWER_TRANS_TCP, "GST_RTSP_LOWER_TRANS_TCP", "tcp"},
     {GST_RTSP_LOWER_TRANS_HTTP, "GST_RTSP_LOWER_TRANS_HTTP", "http"},
+    {GST_RTSP_LOWER_TRANS_TLS, "GST_RTSP_LOWER_TRANS_TLS", "tls"},
     {0, NULL, NULL},
   };
 
diff --git a/gst-libs/gst/rtsp/gstrtsptransport.h b/gst-libs/gst/rtsp/gstrtsptransport.h
index e971ef7..014b9b9 100644
--- a/gst-libs/gst/rtsp/gstrtsptransport.h
+++ b/gst-libs/gst/rtsp/gstrtsptransport.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -83,6 +83,7 @@
  * @GST_RTSP_LOWER_TRANS_UDP_MCAST: stream data over UDP multicast
  * @GST_RTSP_LOWER_TRANS_TCP: stream data over TCP
  * @GST_RTSP_LOWER_TRANS_HTTP: stream data tunneled over HTTP.
+ * @GST_RTSP_LOWER_TRANS_TLS: encrypt TCP and HTTP with TLS
  *
  * The different transport methods.
  */
@@ -91,7 +92,8 @@
   GST_RTSP_LOWER_TRANS_UDP       = (1 << 0),
   GST_RTSP_LOWER_TRANS_UDP_MCAST = (1 << 1),
   GST_RTSP_LOWER_TRANS_TCP       = (1 << 2),
-  GST_RTSP_LOWER_TRANS_HTTP      = (1 << 4)
+  GST_RTSP_LOWER_TRANS_HTTP      = (1 << 4),
+  GST_RTSP_LOWER_TRANS_TLS       = (1 << 5)
 } GstRTSPLowerTrans;
 
 #define GST_TYPE_RTSP_LOWER_TRANS (gst_rtsp_lower_trans_get_type())
diff --git a/gst-libs/gst/rtsp/gstrtspurl.c b/gst-libs/gst/rtsp/gstrtspurl.c
index ffd4407..654f2aa 100644
--- a/gst-libs/gst/rtsp/gstrtspurl.c
+++ b/gst-libs/gst/rtsp/gstrtspurl.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -67,7 +67,16 @@
         GST_RTSP_LOWER_TRANS_UDP_MCAST}, {
   "rtspu", GST_RTSP_LOWER_TRANS_UDP | GST_RTSP_LOWER_TRANS_UDP_MCAST}, {
   "rtspt", GST_RTSP_LOWER_TRANS_TCP}, {
-  "rtsph", GST_RTSP_LOWER_TRANS_HTTP | GST_RTSP_LOWER_TRANS_TCP}
+  "rtsph", GST_RTSP_LOWER_TRANS_HTTP | GST_RTSP_LOWER_TRANS_TCP}, {
+  "rtsps", GST_RTSP_LOWER_TRANS_TCP | GST_RTSP_LOWER_TRANS_UDP |
+        GST_RTSP_LOWER_TRANS_UDP_MCAST | GST_RTSP_LOWER_TRANS_TLS}, {
+  "rtspsu",
+        GST_RTSP_LOWER_TRANS_UDP | GST_RTSP_LOWER_TRANS_UDP_MCAST |
+        GST_RTSP_LOWER_TRANS_TLS}, {
+  "rtspst", GST_RTSP_LOWER_TRANS_TCP | GST_RTSP_LOWER_TRANS_TLS}, {
+  "rtspsh",
+        GST_RTSP_LOWER_TRANS_HTTP | GST_RTSP_LOWER_TRANS_TCP |
+        GST_RTSP_LOWER_TRANS_TLS}
 };
 
 /* format is rtsp[u]://[user:passwd@]host[:port]/abspath[?query] where host
@@ -184,7 +193,10 @@
       res->abspath = g_strndup (p, delim - p);
     p = delim;
   } else {
-    res->abspath = g_strdup ("/");
+    /* IQinVision IQeye 1080p fails if a path '/' is provided
+     * and RTSP does not mandate that a non-zero-length path
+     * must be used */
+    res->abspath = g_strdup ("");
   }
 
   if (p && *p == '?')
diff --git a/gst-libs/gst/rtsp/gstrtspurl.h b/gst-libs/gst/rtsp/gstrtspurl.h
index 61b2dfa..59700b5 100644
--- a/gst-libs/gst/rtsp/gstrtspurl.h
+++ b/gst-libs/gst/rtsp/gstrtspurl.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst-libs/gst/rtsp/rtsp.h b/gst-libs/gst/rtsp/rtsp.h
new file mode 100644
index 0000000..3044b1f
--- /dev/null
+++ b/gst-libs/gst/rtsp/rtsp.h
@@ -0,0 +1,35 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstrtsp.h: single include header for gst-rtsp library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTSP__H__
+#define __GST_RTSP__H__
+
+#include <gst/rtsp/gstrtsp.h>
+#include <gst/rtsp/gstrtspconnection.h>
+#include <gst/rtsp/gstrtspdefs.h>
+#include <gst/rtsp/gstrtsp-enumtypes.h>
+#include <gst/rtsp/gstrtspextension.h>
+#include <gst/rtsp/gstrtspmessage.h>
+#include <gst/rtsp/gstrtsprange.h>
+#include <gst/rtsp/gstrtsptransport.h>
+#include <gst/rtsp/gstrtspurl.h>
+
+#endif /* __GST_RTSP__H__ */
diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
index 43948c4..70fba4b 100644
--- a/gst-libs/gst/sdp/Makefile.am
+++ b/gst-libs/gst/sdp/Makefile.am
@@ -1,6 +1,7 @@
 libgstsdpincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/sdp
 
-libgstsdpinclude_HEADERS = gstsdp.h            \
+libgstsdpinclude_HEADERS = sdp.h \
+			   gstsdp.h \
 			   gstsdpmessage.h
 
 lib_LTLIBRARIES = libgstsdp-@GST_API_VERSION@.la
@@ -16,16 +17,15 @@
 
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstsdpinclude_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstsdp_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/sdp/%',$(libgstsdpinclude_HEADERS))
 
 GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstSdp \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/sdp/sdp.h" \
 		-I$(top_srcdir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 		--library=libgstsdp-@GST_API_VERSION@.la \
diff --git a/gst-libs/gst/sdp/Makefile.in b/gst-libs/gst/sdp/Makefile.in
index e36483a..c5d021a 100644
--- a/gst-libs/gst/sdp/Makefile.in
+++ b/gst-libs/gst/sdp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,14 +82,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst-libs/gst/sdp
-DIST_COMMON = $(libgstsdpinclude_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(libgstsdpinclude_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -141,10 +167,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstsdp_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstsdp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstsdp_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -157,20 +196,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstsdp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstsdp_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
@@ -180,6 +215,23 @@
   esac
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstsdpinclude_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -474,7 +526,8 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 libgstsdpincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/sdp
-libgstsdpinclude_HEADERS = gstsdp.h            \
+libgstsdpinclude_HEADERS = sdp.h \
+			   gstsdp.h \
 			   gstsdpmessage.h
 
 lib_LTLIBRARIES = libgstsdp-@GST_API_VERSION@.la
@@ -485,7 +538,6 @@
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstSdp-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstsdpinclude_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstsdp_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/sdp/%',$(libgstsdpinclude_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -528,6 +580,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -554,12 +607,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstsdp-@GST_API_VERSION@.la: $(libgstsdp_@GST_API_VERSION@_la_OBJECTS) $(libgstsdp_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstsdp_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstsdp_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstsdp_@GST_API_VERSION@_la_OBJECTS) $(libgstsdp_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -668,26 +724,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstsdpincludedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -699,15 +744,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -716,6 +757,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -863,32 +919,32 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-libgstsdpincludeHEADERS \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip install-typelibsDATA installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
-	uninstall-libLTLIBRARIES uninstall-libgstsdpincludeHEADERS \
-	uninstall-typelibsDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-libgstsdpincludeHEADERS install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	install-typelibsDATA installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-girDATA uninstall-libLTLIBRARIES \
+	uninstall-libgstsdpincludeHEADERS uninstall-typelibsDATA
 
 
 @HAVE_INTROSPECTION_TRUE@GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstSdp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/sdp/sdp.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--library=libgstsdp-@GST_API_VERSION@.la \
diff --git a/gst-libs/gst/sdp/gstsdp.h b/gst-libs/gst/sdp/gstsdp.h
index 3dbd86d..1eb5483 100644
--- a/gst-libs/gst/sdp/gstsdp.h
+++ b/gst-libs/gst/sdp/gstsdp.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
diff --git a/gst-libs/gst/sdp/gstsdpmessage.c b/gst-libs/gst/sdp/gstsdpmessage.c
index 421366e..78ee27c 100644
--- a/gst-libs/gst/sdp/gstsdpmessage.c
+++ b/gst-libs/gst/sdp/gstsdpmessage.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -65,12 +65,15 @@
 
 #include "gstsdpmessage.h"
 
-/* FIXME, is currently allocated on the stack */
-#define MAX_LINE_LEN    1024 * 16
-
 #define FREE_STRING(field)              g_free (field); (field) = NULL
 #define REPLACE_STRING(field, val)      FREE_STRING(field); (field) = g_strdup (val)
 
+static void
+free_string (gchar ** str)
+{
+  FREE_STRING (*str);
+}
+
 #define INIT_ARRAY(field, type, init_func)              \
 G_STMT_START {                                          \
   if (field) {                                          \
@@ -90,20 +93,6 @@
   (field) = NULL;                 \
 } G_STMT_END
 
-#define INIT_PTR_ARRAY(field, type, init_func)          \
-G_STMT_START {                                          \
-  if (field) {                                          \
-    guint i;                                            \
-    for(i = 0; i < (field)->len; i++)                   \
-      init_func (g_array_index ((field), type, i));     \
-    g_array_set_size ((field), 0);                      \
-  }                                                     \
-  else                                                  \
-    (field) = g_array_new (FALSE, TRUE, sizeof (type)); \
-} G_STMT_END
-
-#define FREE_PTR_ARRAY(field) FREE_ARRAY(field)
-
 #define DEFINE_STRING_SETTER(field)                                     \
 GstSDPResult gst_sdp_message_set_##field (GstSDPMessage *msg, const gchar *val) { \
   g_free (msg->field);                                                  \
@@ -120,22 +109,81 @@
   return msg->field->len;                                               \
 }
 #define DEFINE_ARRAY_GETTER(method, field, type)                        \
-type * gst_sdp_message_get_##method (const GstSDPMessage *msg, guint idx) {  \
+const type * gst_sdp_message_get_##method (const GstSDPMessage *msg, guint idx) {  \
   return &g_array_index (msg->field, type, idx);                        \
 }
-
-#define DEFINE_PTR_ARRAY_LEN(field) DEFINE_ARRAY_LEN(field)
 #define DEFINE_PTR_ARRAY_GETTER(method, field, type)                    \
-type gst_sdp_message_get_##method (const GstSDPMessage *msg, guint idx) {    \
+const type gst_sdp_message_get_##method (const GstSDPMessage *msg, guint idx) {    \
   return g_array_index (msg->field, type, idx);                         \
 }
-#define DEFINE_PTR_ARRAY_ADDER(method, field, type, dup_method)         \
-GstSDPResult gst_sdp_message_add_##method (GstSDPMessage *msg, type val) {   \
-  type v = dup_method (val);                                            \
-  g_array_append_val (msg->field, v);                                   \
+#define DEFINE_ARRAY_INSERT(method, field, intype, dup_method, type)         \
+GstSDPResult gst_sdp_message_insert_##method (GstSDPMessage *msg, gint idx, intype val) {   \
+  type vt;                                                              \
+  type* v = &vt;                                                         \
+  dup_method (v, val);                                                  \
+  if (idx == -1)                                                        \
+    g_array_append_val (msg->field, vt);                                \
+  else                                                                  \
+    g_array_insert_val (msg->field, idx, vt);                           \
   return GST_SDP_OK;                                                    \
 }
 
+#define DEFINE_ARRAY_REPLACE(method, field, intype, free_method, dup_method, type)         \
+GstSDPResult gst_sdp_message_replace_##method (GstSDPMessage *msg, guint idx, intype val) {   \
+  type *v = &g_array_index (msg->field, type, idx);                   \
+  free_method (v);                                                    \
+  dup_method (v, val);                                                  \
+  return GST_SDP_OK;                                                    \
+}
+#define DEFINE_ARRAY_REMOVE(method, field, type, free_method)                        \
+GstSDPResult gst_sdp_message_remove_##method (GstSDPMessage *msg, guint idx) {  \
+  type *v = &g_array_index (msg->field, type, idx);                     \
+  free_method (v);                                                      \
+  g_array_remove_index (msg->field, idx);                               \
+  return GST_SDP_OK;                                                    \
+}
+#define DEFINE_ARRAY_ADDER(method, type)                                \
+GstSDPResult gst_sdp_message_add_##method (GstSDPMessage *msg, const type val) {   \
+  return gst_sdp_message_insert_##method (msg, -1, val);                \
+}
+
+#define dup_string(v,val) ((*v) = g_strdup (val))
+#define INIT_STR_ARRAY(field) \
+    INIT_ARRAY (field, gchar *, free_string)
+#define DEFINE_STR_ARRAY_GETTER(method, field) \
+    DEFINE_PTR_ARRAY_GETTER(method, field, gchar *)
+#define DEFINE_STR_ARRAY_INSERT(method, field) \
+    DEFINE_ARRAY_INSERT (method, field, const gchar *, dup_string, gchar *)
+#define DEFINE_STR_ARRAY_ADDER(method, field) \
+    DEFINE_ARRAY_ADDER (method, gchar *)
+#define DEFINE_STR_ARRAY_REPLACE(method, field) \
+    DEFINE_ARRAY_REPLACE (method, field, const gchar *, free_string, dup_string, gchar *)
+#define DEFINE_STR_ARRAY_REMOVE(method, field) \
+    DEFINE_ARRAY_REMOVE (method, field, gchar *, free_string)
+
+static GstSDPMessage *gst_sdp_message_boxed_copy (GstSDPMessage * orig);
+static void gst_sdp_message_boxed_free (GstSDPMessage * msg);
+
+G_DEFINE_BOXED_TYPE (GstSDPMessage, gst_sdp_message, gst_sdp_message_boxed_copy,
+    gst_sdp_message_boxed_free);
+
+static GstSDPMessage *
+gst_sdp_message_boxed_copy (GstSDPMessage * orig)
+{
+  GstSDPMessage *copy;
+
+  if (gst_sdp_message_copy (orig, &copy) == GST_SDP_OK)
+    return copy;
+
+  return NULL;
+}
+
+static void
+gst_sdp_message_boxed_free (GstSDPMessage * msg)
+{
+  gst_sdp_message_free (msg);
+}
+
 static void
 gst_sdp_origin_init (GstSDPOrigin * origin)
 {
@@ -148,52 +196,12 @@
 }
 
 static void
-gst_sdp_connection_init (GstSDPConnection * connection)
-{
-  FREE_STRING (connection->nettype);
-  FREE_STRING (connection->addrtype);
-  FREE_STRING (connection->address);
-  connection->ttl = 0;
-  connection->addr_number = 0;
-}
-
-static void
-gst_sdp_bandwidth_init (GstSDPBandwidth * bandwidth)
-{
-  FREE_STRING (bandwidth->bwtype);
-  bandwidth->bandwidth = 0;
-}
-
-static void
-gst_sdp_time_init (GstSDPTime * t)
-{
-  FREE_STRING (t->start);
-  FREE_STRING (t->stop);
-  INIT_PTR_ARRAY (t->repeat, gchar *, g_free);
-  FREE_PTR_ARRAY (t->repeat);
-}
-
-static void
-gst_sdp_zone_init (GstSDPZone * zone)
-{
-  FREE_STRING (zone->time);
-  FREE_STRING (zone->typed_time);
-}
-
-static void
 gst_sdp_key_init (GstSDPKey * key)
 {
   FREE_STRING (key->type);
   FREE_STRING (key->data);
 }
 
-static void
-gst_sdp_attribute_init (GstSDPAttribute * attr)
-{
-  FREE_STRING (attr->key);
-  FREE_STRING (attr->value);
-}
-
 /**
  * gst_sdp_message_new:
  * @msg: (out) (transfer full): pointer to new #GstSDPMessage
@@ -239,14 +247,14 @@
   FREE_STRING (msg->session_name);
   FREE_STRING (msg->information);
   FREE_STRING (msg->uri);
-  INIT_PTR_ARRAY (msg->emails, gchar *, g_free);
-  INIT_PTR_ARRAY (msg->phones, gchar *, g_free);
-  gst_sdp_connection_init (&msg->connection);
-  INIT_ARRAY (msg->bandwidths, GstSDPBandwidth, gst_sdp_bandwidth_init);
-  INIT_ARRAY (msg->times, GstSDPTime, gst_sdp_time_init);
-  INIT_ARRAY (msg->zones, GstSDPZone, gst_sdp_zone_init);
+  INIT_STR_ARRAY (msg->emails);
+  INIT_STR_ARRAY (msg->phones);
+  gst_sdp_connection_clear (&msg->connection);
+  INIT_ARRAY (msg->bandwidths, GstSDPBandwidth, gst_sdp_bandwidth_clear);
+  INIT_ARRAY (msg->times, GstSDPTime, gst_sdp_time_clear);
+  INIT_ARRAY (msg->zones, GstSDPZone, gst_sdp_zone_clear);
   gst_sdp_key_init (&msg->key);
-  INIT_ARRAY (msg->attributes, GstSDPAttribute, gst_sdp_attribute_init);
+  INIT_ARRAY (msg->attributes, GstSDPAttribute, gst_sdp_attribute_clear);
   INIT_ARRAY (msg->medias, GstSDPMedia, gst_sdp_media_uninit);
 
   return GST_SDP_OK;
@@ -269,8 +277,8 @@
 
   gst_sdp_message_init (msg);
 
-  FREE_PTR_ARRAY (msg->emails);
-  FREE_PTR_ARRAY (msg->phones);
+  FREE_ARRAY (msg->emails);
+  FREE_ARRAY (msg->phones);
   FREE_ARRAY (msg->bandwidths);
   FREE_ARRAY (msg->times);
   FREE_ARRAY (msg->zones);
@@ -281,6 +289,110 @@
 }
 
 /**
+ * gst_sdp_message_copy:
+ * @msg: a #GstSDPMessage
+ * @copy: (out) (transfer full): pointer to new #GstSDPMessage
+ *
+ * Allocate a new copy of @msg and store the result in @copy. The value in
+ * @copy should be release with gst_sdp_message_free function.
+ *
+ * Returns: a #GstSDPResult
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_message_copy (const GstSDPMessage * msg, GstSDPMessage ** copy)
+{
+  GstSDPResult ret;
+  GstSDPMessage *cp;
+  guint i, len;
+
+  if (msg == NULL)
+    return GST_SDP_EINVAL;
+
+  ret = gst_sdp_message_new (copy);
+  if (ret != GST_SDP_OK)
+    return ret;
+
+  cp = *copy;
+
+  REPLACE_STRING (cp->version, msg->version);
+  gst_sdp_message_set_origin (cp, msg->origin.username, msg->origin.sess_id,
+      msg->origin.sess_version, msg->origin.nettype, msg->origin.addrtype,
+      msg->origin.addr);
+  REPLACE_STRING (cp->session_name, msg->session_name);
+  REPLACE_STRING (cp->information, msg->information);
+  REPLACE_STRING (cp->uri, msg->uri);
+
+  len = gst_sdp_message_emails_len (msg);
+  for (i = 0; i < len; i++) {
+    gst_sdp_message_add_email (cp, gst_sdp_message_get_email (msg, i));
+  }
+
+  len = gst_sdp_message_phones_len (msg);
+  for (i = 0; i < len; i++) {
+    gst_sdp_message_add_phone (cp, gst_sdp_message_get_phone (msg, i));
+  }
+
+  gst_sdp_message_set_connection (cp, msg->connection.nettype,
+      msg->connection.addrtype, msg->connection.address, msg->connection.ttl,
+      msg->connection.addr_number);
+
+  len = gst_sdp_message_bandwidths_len (msg);
+  for (i = 0; i < len; i++) {
+    const GstSDPBandwidth *bw = gst_sdp_message_get_bandwidth (msg, i);
+    gst_sdp_message_add_bandwidth (cp, bw->bwtype, bw->bandwidth);
+  }
+
+  len = gst_sdp_message_times_len (msg);
+  for (i = 0; i < len; i++) {
+    const gchar **repeat = NULL;
+    const GstSDPTime *time = gst_sdp_message_get_time (msg, i);
+
+    if (time->repeat != NULL) {
+      guint j;
+
+      repeat = g_malloc0 ((time->repeat->len + 1) * sizeof (gchar *));
+      for (j = 0; j < time->repeat->len; j++) {
+        repeat[j] = g_array_index (time->repeat, char *, j);
+      }
+      repeat[j] = NULL;
+    }
+
+    gst_sdp_message_add_time (cp, time->start, time->stop, repeat);
+
+    g_free (repeat);
+  }
+
+  len = gst_sdp_message_zones_len (msg);
+  for (i = 0; i < len; i++) {
+    const GstSDPZone *zone = gst_sdp_message_get_zone (msg, i);
+    gst_sdp_message_add_zone (cp, zone->time, zone->typed_time);
+  }
+
+  gst_sdp_message_set_key (cp, msg->key.type, msg->key.data);
+
+  len = gst_sdp_message_attributes_len (msg);
+  for (i = 0; i < len; i++) {
+    const GstSDPAttribute *attr = gst_sdp_message_get_attribute (msg, i);
+    gst_sdp_message_add_attribute (cp, attr->key, attr->value);
+  }
+
+  len = gst_sdp_message_medias_len (msg);
+  for (i = 0; i < len; i++) {
+    GstSDPMedia *media_copy;
+    const GstSDPMedia *media = gst_sdp_message_get_media (msg, i);
+
+    if (gst_sdp_media_copy (media, &media_copy) == GST_SDP_OK) {
+      gst_sdp_message_add_media (cp, media_copy);
+      gst_sdp_media_free (media_copy);
+    }
+  }
+
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_message_free:
  * @msg: a #GstSDPMessage
  *
@@ -773,7 +885,49 @@
  *
  * Returns: the email at position @idx.
  */
-DEFINE_PTR_ARRAY_GETTER (email, emails, const gchar *);
+DEFINE_STR_ARRAY_GETTER (email, emails);
+
+/**
+ * gst_sdp_message_insert_email:
+ * @msg: a #GstSDPMessage
+ * @idx: an index
+ * @email: an email
+ *
+ * Insert @email into the array of emails in @msg at index @idx.
+ * When -1 is given as @idx, the email is inserted at the end.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_STR_ARRAY_INSERT (email, emails);
+
+/**
+ * gst_sdp_message_replace_email:
+ * @msg: a #GstSDPMessage
+ * @idx: an email index
+ * @email: an email
+ *
+ * Replace the email in @msg at index @idx with @email.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_STR_ARRAY_REPLACE (email, emails);
+
+/**
+ * gst_sdp_message_remove_email:
+ * @msg: a #GstSDPMessage
+ * @idx: an email index
+ *
+ * Remove the email in @msg at index @idx.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_STR_ARRAY_REMOVE (email, emails);
 
 /**
  * gst_sdp_message_add_email:
@@ -784,7 +938,7 @@
  *
  * Returns: a #GstSDPResult.
  */
-DEFINE_PTR_ARRAY_ADDER (email, emails, const gchar *, g_strdup);
+DEFINE_STR_ARRAY_ADDER (email, emails);
 
 /**
  * gst_sdp_message_phones_len:
@@ -804,7 +958,49 @@
  *
  * Returns: the phone at position @idx.
  */
-DEFINE_PTR_ARRAY_GETTER (phone, phones, const gchar *);
+DEFINE_STR_ARRAY_GETTER (phone, phones);
+
+/**
+ * gst_sdp_message_insert_phone:
+ * @msg: a #GstSDPMessage
+ * @idx: a phone index
+ * @phone: a phone
+ *
+ * Insert @phone into the array of phone numbers in @msg at index @idx.
+ * When -1 is given as @idx, the phone is inserted at the end.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_STR_ARRAY_INSERT (phone, phones);
+
+/**
+ * gst_sdp_message_replace_phone:
+ * @msg: a #GstSDPMessage
+ * @idx: a phone index
+ * @phone: a phone
+ *
+ * Replace the phone number in @msg at index @idx with @phone.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_STR_ARRAY_REPLACE (phone, phones);
+
+/**
+ * gst_sdp_message_remove_phone:
+ * @msg: a #GstSDPMessage
+ * @idx: a phone index
+ *
+ * Remove the phone number in @msg at index @idx.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_STR_ARRAY_REMOVE (phone, phones);
 
 /**
  * gst_sdp_message_add_phone:
@@ -815,7 +1011,8 @@
  *
  * Returns: a #GstSDPResult.
  */
-DEFINE_PTR_ARRAY_ADDER (phone, phones, const gchar *, g_strdup);
+DEFINE_STR_ARRAY_ADDER (phone, phones);
+
 
 /**
  * gst_sdp_message_set_connection:
@@ -859,6 +1056,45 @@
 }
 
 /**
+ * gst_sdp_bandwidth_set:
+ * @bw: a #GstSDPBandwidth
+ * @bwtype: the bandwidth modifier type
+ * @bandwidth: the bandwidth in kilobits per second
+ *
+ * Set bandwidth information in @bw.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_bandwidth_set (GstSDPBandwidth * bw, const gchar * bwtype,
+    guint bandwidth)
+{
+  bw->bwtype = g_strdup (bwtype);
+  bw->bandwidth = bandwidth;
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_bandwidth_clear:
+ * @bw: a #GstSDPBandwidth
+ *
+ * Reset the bandwidth information in @bw.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_bandwidth_clear (GstSDPBandwidth * bw)
+{
+  FREE_STRING (bw->bwtype);
+  bw->bandwidth = 0;
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_message_bandwidths_len:
  * @msg: a #GstSDPMessage
  *
@@ -876,7 +1112,57 @@
  *
  * Returns: a #GstSDPBandwidth.
  */
-DEFINE_ARRAY_GETTER (bandwidth, bandwidths, const GstSDPBandwidth);
+DEFINE_ARRAY_GETTER (bandwidth, bandwidths, GstSDPBandwidth);
+
+#define DUP_BANDWIDTH(v, val) memcpy (v, val, sizeof (GstSDPBandwidth))
+#define FREE_BANDWIDTH(v) gst_sdp_bandwidth_clear(v)
+
+/**
+ * gst_sdp_message_insert_bandwidth:
+ * @msg: a #GstSDPMessage
+ * @idx: an index
+ * @bwtype: the bandwidth modifier type
+ * @bandwidth: the bandwidth in kilobits per second
+ *
+ * Insert bandwidth parameters into the array of bandwidths in @msg
+ * at index @idx.
+ * When -1 is given as @idx, the bandwidth is inserted at the end.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_INSERT (bandwidth, bandwidths, GstSDPBandwidth *, DUP_BANDWIDTH,
+    GstSDPBandwidth);
+
+/**
+ * gst_sdp_message_replace_bandwidth:
+ * @msg: a #GstSDPMessage
+ * @idx: the bandwidth index
+ * @bwtype: the bandwidth modifier type
+ * @bandwidth: the bandwidth in kilobits per second
+ *
+ * Replace the bandwidth information in @msg at index @idx with @bwtype and @bandwidth.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REPLACE (bandwidth, bandwidths, GstSDPBandwidth *, FREE_BANDWIDTH,
+    DUP_BANDWIDTH, GstSDPBandwidth);
+
+/**
+ * gst_sdp_message_remove_bandwidth:
+ * @msg: a #GstSDPMessage
+ * @idx: the bandwidth index
+ *
+ * Remove the bandwidth information in @msg at index @idx.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REMOVE (bandwidth, bandwidths, GstSDPBandwidth, FREE_BANDWIDTH);
 
 /**
  * gst_sdp_message_add_bandwidth:
@@ -888,17 +1174,65 @@
  *
  * Returns: a #GstSDPResult.
  */
-
 GstSDPResult
 gst_sdp_message_add_bandwidth (GstSDPMessage * msg, const gchar * bwtype,
     guint bandwidth)
 {
   GstSDPBandwidth bw;
 
-  bw.bwtype = g_strdup (bwtype);
-  bw.bandwidth = bandwidth;
+  gst_sdp_bandwidth_set (&bw, bwtype, bandwidth);
+  return gst_sdp_message_insert_bandwidth (msg, -1, &bw);
+}
 
-  g_array_append_val (msg->bandwidths, bw);
+/**
+ * gst_sdp_time_set:
+ * @t: a #GstSDPTime
+ * @start: the start time
+ * @stop: the stop time
+ * @repeat: (array): the repeat times
+ *
+ * Set time information @start, @stop and @repeat in @t.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_time_set (GstSDPTime * t, const gchar * start,
+    const gchar * stop, const gchar ** repeat)
+{
+  t->start = g_strdup (start);
+  t->stop = g_strdup (stop);
+  if (repeat) {
+    t->repeat = g_array_new (FALSE, TRUE, sizeof (gchar *));
+    for (; *repeat; repeat++) {
+      gchar *r = g_strdup (*repeat);
+
+      g_array_append_val (t->repeat, r);
+    }
+  } else
+    t->repeat = NULL;
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_time_clear:
+ * @t: a #GstSDPTime
+ *
+ * Reset the time information in @t.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_time_clear (GstSDPTime * t)
+{
+  FREE_STRING (t->start);
+  FREE_STRING (t->stop);
+  INIT_STR_ARRAY (t->repeat);
+  FREE_ARRAY (t->repeat);
 
   return GST_SDP_OK;
 }
@@ -922,7 +1256,54 @@
  *
  * Returns: a #GstSDPTime.
  */
-DEFINE_ARRAY_GETTER (time, times, const GstSDPTime);
+DEFINE_ARRAY_GETTER (time, times, GstSDPTime);
+
+#define DUP_TIME(v, val) memcpy (v, val, sizeof (GstSDPTime))
+#define FREE_TIME(v) gst_sdp_time_clear(v)
+
+/**
+ * gst_sdp_message_insert_time:
+ * @msg: a #GstSDPMessage
+ * @idx: an index
+ * @t: a #GstSDPTime
+ *
+ * Insert time parameters into the array of times in @msg
+ * at index @idx.
+ * When -1 is given as @idx, the times are inserted at the end.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_INSERT (time, times, GstSDPTime *, DUP_TIME, GstSDPTime);
+
+/**
+ * gst_sdp_message_replace_time:
+ * @msg: a #GstSDPMessage
+ * @idx: the index
+ * @t: a #GstSDPTime
+ *
+ * Replace the time information in @msg at index @idx with @t.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REPLACE (time, times, GstSDPTime *, FREE_TIME,
+    DUP_TIME, GstSDPTime);
+
+/**
+ * gst_sdp_message_remove_time:
+ * @msg: a #GstSDPMessage
+ * @idx: the index
+ *
+ * Remove the time information in @msg at index @idx.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REMOVE (time, times, GstSDPTime, FREE_TIME);
 
 /**
  * gst_sdp_message_add_time:
@@ -941,23 +1322,52 @@
 {
   GstSDPTime times;
 
-  times.start = g_strdup (start);
-  times.stop = g_strdup (stop);
-  if (repeat) {
-    times.repeat = g_array_new (FALSE, TRUE, sizeof (gchar *));
-    for (; *repeat; repeat++) {
-      gchar *r = g_strdup (*repeat);
-
-      g_array_append_val (times.repeat, r);
-    }
-  } else
-    times.repeat = NULL;
+  gst_sdp_time_set (&times, start, stop, repeat);
   g_array_append_val (msg->times, times);
 
   return GST_SDP_OK;
 }
 
 /**
+ * gst_sdp_zone_set:
+ * @zone: a #GstSDPZone
+ * @adj_time: the NTP time that a time zone adjustment happens
+ * @typed_time: the offset from the time when the session was first scheduled
+ *
+ * Set zone information in @zone.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_zone_set (GstSDPZone * zone, const gchar * adj_time,
+    const gchar * typed_time)
+{
+  zone->time = g_strdup (adj_time);
+  zone->typed_time = g_strdup (typed_time);
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_zone_clear:
+ * @zone: a #GstSDPZone
+ *
+ * Reset the zone information in @zone.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_zone_clear (GstSDPZone * zone)
+{
+  FREE_STRING (zone->time);
+  FREE_STRING (zone->typed_time);
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_message_zones_len:
  * @msg: a #GstSDPMessage
  *
@@ -977,6 +1387,53 @@
  */
 DEFINE_ARRAY_GETTER (zone, zones, const GstSDPZone);
 
+#define DUP_ZONE(v, val) memcpy (v, val, sizeof (GstSDPZone))
+#define FREE_ZONE(v) gst_sdp_zone_clear(v)
+
+/**
+ * gst_sdp_message_insert_zone:
+ * @msg: a #GstSDPMessage
+ * @idx: an index
+ * @zone a #GstSDPZone
+ *
+ * Insert zone parameters into the array of zones in @msg
+ * at index @idx.
+ * When -1 is given as @idx, the zone is inserted at the end.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_INSERT (zone, zones, GstSDPZone *, DUP_ZONE, GstSDPZone);
+
+/**
+ * gst_sdp_message_replace_zone:
+ * @msg: a #GstSDPMessage
+ * @idx: the index
+ * @zone: a #GstSDPZone
+ *
+ * Replace the zone information in @msg at index @idx with @zone.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REPLACE (zone, zones, GstSDPZone *, FREE_ZONE,
+    DUP_ZONE, GstSDPZone);
+
+/**
+ * gst_sdp_message_remove_zone:
+ * @msg: a #GstSDPMessage
+ * @idx: the index
+ *
+ * Remove the zone information in @msg at index @idx.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REMOVE (zone, zones, GstSDPZone, FREE_ZONE);
+
 /**
  * gst_sdp_message_add_zone:
  * @msg: a #GstSDPMessage
@@ -993,9 +1450,7 @@
 {
   GstSDPZone zone;
 
-  zone.time = g_strdup (adj_time);
-  zone.typed_time = g_strdup (typed_time);
-
+  gst_sdp_zone_set (&zone, adj_time, typed_time);
   g_array_append_val (msg->zones, zone);
 
   return GST_SDP_OK;
@@ -1036,6 +1491,45 @@
 }
 
 /**
+ * gst_sdp_attribute_set:
+ * @attr: a #GstSDPAttribute
+ * @key: the key
+ * @value: the value
+ *
+ * Set the attribute with @key and @value.
+ *
+ * Returns: @GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_attribute_set (GstSDPAttribute * attr, const gchar * key,
+    const gchar * value)
+{
+  attr->key = g_strdup (key);
+  attr->value = g_strdup (value);
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_attribute_clear:
+ * @attr: a #GstSDPAttribute
+ *
+ * Clear the attribute.
+ *
+ * Returns: @GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_attribute_clear (GstSDPAttribute * attr)
+{
+  FREE_STRING (attr->key);
+  FREE_STRING (attr->value);
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_message_attributes_len:
  * @msg: a #GstSDPMessage
  *
@@ -1101,6 +1595,54 @@
   return gst_sdp_message_get_attribute_val_n (msg, key, 0);
 }
 
+#define DUP_ATTRIBUTE(v, val) memcpy (v, val, sizeof (GstSDPAttribute))
+#define FREE_ATTRIBUTE(v) gst_sdp_attribute_clear(v)
+
+/**
+ * gst_sdp_message_insert_attribute:
+ * @msg: a #GstSDPMessage
+ * @idx: an index
+ * @attribute a #GstSDPAttribute
+ *
+ * Insert attribute into the array of attributes in @msg
+ * at index @idx.
+ * When -1 is given as @idx, the attribute is inserted at the end.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_INSERT (attribute, attributes, GstSDPAttribute *, DUP_ATTRIBUTE,
+    GstSDPAttribute);
+
+/**
+ * gst_sdp_message_replace_attribute:
+ * @msg: a #GstSDPMessage
+ * @idx: the index
+ * @attribute: a #GstSDPAttribute
+ *
+ * Replace the attribute in @msg at index @idx with @attribute.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REPLACE (attribute, attributes, GstSDPAttribute *, FREE_ATTRIBUTE,
+    DUP_ATTRIBUTE, GstSDPAttribute);
+
+/**
+ * gst_sdp_message_remove_attribute:
+ * @msg: a #GstSDPMessage
+ * @idx: the index
+ *
+ * Remove the attribute in @msg at index @idx.
+ *
+ * Returns: a #GstSDPResult.
+ *
+ * Since: 1.2
+ */
+DEFINE_ARRAY_REMOVE (attribute, attributes, GstSDPAttribute, FREE_ATTRIBUTE);
+
 /**
  * gst_sdp_message_add_attribute:
  * @msg: a #GstSDPMessage
@@ -1117,9 +1659,7 @@
 {
   GstSDPAttribute attr;
 
-  attr.key = g_strdup (key);
-  attr.value = g_strdup (value);
-
+  gst_sdp_attribute_set (&attr, key, value);
   g_array_append_val (msg->attributes, attr);
 
   return GST_SDP_OK;
@@ -1218,12 +1758,12 @@
   media->port = 0;
   media->num_ports = 0;
   FREE_STRING (media->proto);
-  INIT_PTR_ARRAY (media->fmts, gchar *, g_free);
+  INIT_STR_ARRAY (media->fmts);
   FREE_STRING (media->information);
-  INIT_ARRAY (media->connections, GstSDPConnection, gst_sdp_connection_init);
-  INIT_ARRAY (media->bandwidths, GstSDPBandwidth, gst_sdp_bandwidth_init);
+  INIT_ARRAY (media->connections, GstSDPConnection, gst_sdp_connection_clear);
+  INIT_ARRAY (media->bandwidths, GstSDPBandwidth, gst_sdp_bandwidth_clear);
   gst_sdp_key_init (&media->key);
-  INIT_ARRAY (media->attributes, GstSDPAttribute, gst_sdp_attribute_init);
+  INIT_ARRAY (media->attributes, GstSDPAttribute, gst_sdp_attribute_clear);
 
   return GST_SDP_OK;
 }
@@ -1244,7 +1784,7 @@
   g_return_val_if_fail (media != NULL, GST_SDP_EINVAL);
 
   gst_sdp_media_init (media);
-  FREE_PTR_ARRAY (media->fmts);
+  FREE_ARRAY (media->fmts);
   FREE_ARRAY (media->connections);
   FREE_ARRAY (media->bandwidths);
   FREE_ARRAY (media->attributes);
@@ -1274,6 +1814,71 @@
 }
 
 /**
+ * gst_sdp_media_copy:
+ * @media: a #GstSDPMedia
+ * @copy: (out) (transfer full): pointer to new #GstSDPMedia
+ *
+ * Allocate a new copy of @media and store the result in @copy. The value in
+ * @copy should be release with gst_sdp_media_free function.
+ *
+ * Returns: a #GstSDPResult
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_copy (const GstSDPMedia * media, GstSDPMedia ** copy)
+{
+  GstSDPResult ret;
+  GstSDPMedia *cp;
+  guint i, len;
+
+  if (media == NULL)
+    return GST_SDP_EINVAL;
+
+  ret = gst_sdp_media_new (copy);
+  if (ret != GST_SDP_OK)
+    return ret;
+
+  cp = *copy;
+
+  REPLACE_STRING (cp->media, media->media);
+  cp->port = media->port;
+  cp->num_ports = media->num_ports;
+  REPLACE_STRING (cp->proto, media->proto);
+
+  len = gst_sdp_media_formats_len (media);
+  for (i = 0; i < len; i++) {
+    gst_sdp_media_add_format (cp, gst_sdp_media_get_format (media, i));
+  }
+
+  REPLACE_STRING (cp->information, media->information);
+
+  len = gst_sdp_media_connections_len (media);
+  for (i = 0; i < len; i++) {
+    const GstSDPConnection *connection =
+        gst_sdp_media_get_connection (media, i);
+    gst_sdp_media_add_connection (cp, connection->nettype, connection->addrtype,
+        connection->address, connection->ttl, connection->addr_number);
+  }
+
+  len = gst_sdp_media_bandwidths_len (media);
+  for (i = 0; i < len; i++) {
+    const GstSDPBandwidth *bw = gst_sdp_media_get_bandwidth (media, i);
+    gst_sdp_media_add_bandwidth (cp, bw->bwtype, bw->bandwidth);
+  }
+
+  gst_sdp_media_set_key (cp, media->key.type, media->key.data);
+
+  len = gst_sdp_media_attributes_len (media);
+  for (i = 0; i < len; i++) {
+    const GstSDPAttribute *att = gst_sdp_media_get_attribute (media, i);
+    gst_sdp_media_add_attribute (cp, att->key, att->value);
+  }
+
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_media_as_text:
  * @media: a #GstSDPMedia
  *
@@ -1497,6 +2102,83 @@
 }
 
 /**
+ * gst_sdp_media_insert_format:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @format: the format
+ *
+ * Insert the format information to @media at @idx. When @idx is -1,
+ * the format is appended.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_insert_format (GstSDPMedia * media, gint idx,
+    const gchar * format)
+{
+  gchar *fmt;
+
+  fmt = g_strdup (format);
+
+  if (idx == -1)
+    g_array_append_val (media->fmts, fmt);
+  else
+    g_array_insert_val (media->fmts, idx, fmt);
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_replace_format:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @format: the format
+ *
+ * Replace the format information in @media at @idx with @format.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_replace_format (GstSDPMedia * media, guint idx,
+    const gchar * format)
+{
+  gchar **old;
+
+  old = &g_array_index (media->fmts, gchar *, idx);
+  g_free (*old);
+  *old = g_strdup (format);
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_remove_format:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ *
+ * Remove the format information in @media at @idx.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_remove_format (GstSDPMedia * media, guint idx)
+{
+  gchar **old;
+
+  old = &g_array_index (media->fmts, gchar *, idx);
+  g_free (*old);
+  g_array_remove_index (media->fmts, idx);
+
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_media_add_format:
  * @media: a #GstSDPMedia
  * @format: the format
@@ -1550,6 +2232,56 @@
 }
 
 /**
+ * gst_sdp_connection_set:
+ * @conn: a #GstSDPConnection
+ * @nettype: the type of network. "IN" is defined to have the meaning
+ * "Internet".
+ * @addrtype: the type of address.
+ * @address: the address
+ * @ttl: the time to live of the address
+ * @addr_number: the number of layers
+ *
+ * Set the connection with the given parameters.
+ *
+ * Returns: @GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_connection_set (GstSDPConnection * conn, const gchar * nettype,
+    const gchar * addrtype, const gchar * address, guint ttl, guint addr_number)
+{
+  conn->nettype = g_strdup (nettype);
+  conn->addrtype = g_strdup (addrtype);
+  conn->address = g_strdup (address);
+  conn->ttl = ttl;
+  conn->addr_number = addr_number;
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_connection_clear:
+ * @conn: a #GstSDPConnection
+ *
+ * Clear the connection.
+ *
+ * Returns: @GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_connection_clear (GstSDPConnection * conn)
+{
+  FREE_STRING (conn->nettype);
+  FREE_STRING (conn->addrtype);
+  FREE_STRING (conn->address);
+  conn->ttl = 0;
+  conn->addr_number = 0;
+  return GST_SDP_OK;
+}
+
+
+/**
  * gst_sdp_media_connections_len:
  * @media: a #GstSDPMedia
  *
@@ -1579,6 +2311,79 @@
 }
 
 /**
+ * gst_sdp_media_insert_connection:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @conn: a #GstSDPConnection
+ *
+ * Insert the connection information to @media at @idx. When @idx is -1,
+ * the connection is appended.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_insert_connection (GstSDPMedia * media, gint idx,
+    GstSDPConnection * conn)
+{
+  if (idx == -1)
+    g_array_append_val (media->connections, *conn);
+  else
+    g_array_insert_val (media->connections, idx, *conn);
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_replace_connection:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @conn: a #GstSDPConnection
+ *
+ * Replace the connection information in @media at @idx with @conn.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_replace_connection (GstSDPMedia * media, guint idx,
+    GstSDPConnection * conn)
+{
+  GstSDPConnection *old;
+
+  old = &g_array_index (media->connections, GstSDPConnection, idx);
+  gst_sdp_connection_clear (old);
+  *old = *conn;
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_remove_connection:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ *
+ * Remove the connection information in @media at @idx.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_remove_connection (GstSDPMedia * media, guint idx)
+{
+  GstSDPConnection *old;
+
+  old = &g_array_index (media->connections, GstSDPConnection, idx);
+  gst_sdp_connection_clear (old);
+  g_array_remove_index (media->connections, idx);
+
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_media_add_connection:
  * @media: a #GstSDPMedia
  * @nettype: the type of network. "IN" is defined to have the meaning
@@ -1598,12 +2403,7 @@
 {
   GstSDPConnection conn;
 
-  conn.nettype = g_strdup (nettype);
-  conn.addrtype = g_strdup (addrtype);
-  conn.address = g_strdup (address);
-  conn.ttl = ttl;
-  conn.addr_number = addr_number;
-
+  gst_sdp_connection_set (&conn, nettype, addrtype, address, ttl, addr_number);
   g_array_append_val (media->connections, conn);
 
   return GST_SDP_OK;
@@ -1639,6 +2439,79 @@
 }
 
 /**
+ * gst_sdp_media_insert_bandwidth:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @bw: a #GstSDPBandwidth
+ *
+ * Insert the bandwidth information to @media at @idx. When @idx is -1,
+ * the bandwidth is appended.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_insert_bandwidth (GstSDPMedia * media, gint idx,
+    GstSDPBandwidth * bw)
+{
+  if (idx == -1)
+    g_array_append_val (media->bandwidths, *bw);
+  else
+    g_array_insert_val (media->bandwidths, idx, *bw);
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_replace_bandwidth:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @bw: a #GstSDPBandwidth
+ *
+ * Replace the bandwidth information in @media at @idx with @bw.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_replace_bandwidth (GstSDPMedia * media, guint idx,
+    GstSDPBandwidth * bw)
+{
+  GstSDPBandwidth *old;
+
+  old = &g_array_index (media->bandwidths, GstSDPBandwidth, idx);
+  gst_sdp_bandwidth_clear (old);
+  *old = *bw;
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_remove_bandwidth:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ *
+ * Remove the bandwidth information in @media at @idx.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_remove_bandwidth (GstSDPMedia * media, guint idx)
+{
+  GstSDPBandwidth *old;
+
+  old = &g_array_index (media->bandwidths, GstSDPBandwidth, idx);
+  gst_sdp_bandwidth_clear (old);
+  g_array_remove_index (media->bandwidths, idx);
+
+  return GST_SDP_OK;
+}
+
+/**
  * gst_sdp_media_add_bandwidth:
  * @media: a #GstSDPMedia
  * @bwtype: the bandwidth modifier type
@@ -1654,9 +2527,7 @@
 {
   GstSDPBandwidth bw;
 
-  bw.bwtype = g_strdup (bwtype);
-  bw.bandwidth = bandwidth;
-
+  gst_sdp_bandwidth_set (&bw, bwtype, bandwidth);
   g_array_append_val (media->bandwidths, bw);
 
   return GST_SDP_OK;
@@ -1728,9 +2599,7 @@
 {
   GstSDPAttribute attr;
 
-  attr.key = g_strdup (key);
-  attr.value = g_strdup (value);
-
+  gst_sdp_attribute_set (&attr, key, value);
   g_array_append_val (media->attributes, attr);
 
   return GST_SDP_OK;
@@ -1796,6 +2665,79 @@
   return gst_sdp_media_get_attribute_val_n (media, key, 0);
 }
 
+/**
+ * gst_sdp_media_insert_attribute:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @attr: a #GstSDPAttribute
+ *
+ * Insert the attribute to @media at @idx. When @idx is -1,
+ * the attribute is appended.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_insert_attribute (GstSDPMedia * media, gint idx,
+    GstSDPAttribute * attr)
+{
+  if (idx == -1)
+    g_array_append_val (media->attributes, *attr);
+  else
+    g_array_insert_val (media->attributes, idx, *attr);
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_replace_attribute:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ * @attr: a #GstSDPAttribute
+ *
+ * Replace the attribute in @media at @idx with @attr.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_replace_attribute (GstSDPMedia * media, guint idx,
+    GstSDPAttribute * attr)
+{
+  GstSDPAttribute *old;
+
+  old = &g_array_index (media->attributes, GstSDPAttribute, idx);
+  gst_sdp_attribute_clear (old);
+  *old = *attr;
+
+  return GST_SDP_OK;
+}
+
+/**
+ * gst_sdp_media_remove_attribute:
+ * @media: a #GstSDPMedia
+ * @idx: an index
+ *
+ * Remove the attribute in @media at @idx.
+ *
+ * Returns: #GST_SDP_OK.
+ *
+ * Since: 1.2
+ */
+GstSDPResult
+gst_sdp_media_remove_attribute (GstSDPMedia * media, guint idx)
+{
+  GstSDPAttribute *old;
+
+  old = &g_array_index (media->attributes, GstSDPAttribute, idx);
+  gst_sdp_attribute_clear (old);
+  g_array_remove_index (media->attributes, idx);
+
+  return GST_SDP_OK;
+}
+
 static void
 read_string (gchar * dest, guint size, gchar ** src)
 {
@@ -1914,12 +2856,12 @@
         gst_sdp_media_add_connection (c->media, conn.nettype, conn.addrtype,
             conn.address, conn.ttl, conn.addr_number);
       }
-      gst_sdp_connection_init (&conn);
+      gst_sdp_connection_clear (&conn);
       break;
     }
     case 'b':
     {
-      gchar str2[MAX_LINE_LEN];
+      gchar str2[32];
 
       read_string_del (str, sizeof (str), ':', &p);
       if (*p != '\0')
@@ -1997,11 +2939,12 @@
 gst_sdp_message_parse_buffer (const guint8 * data, guint size,
     GstSDPMessage * msg)
 {
-  gchar *p;
+  gchar *p, *s;
   SDPContext c;
   gchar type;
-  gchar buffer[MAX_LINE_LEN];
-  guint idx = 0;
+  gchar *buffer = NULL;
+  guint bufsize = 0;
+  guint len = 0;
 
   g_return_val_if_fail (msg != NULL, GST_SDP_EINVAL);
   g_return_val_if_fail (data != NULL, GST_SDP_EINVAL);
@@ -2024,13 +2967,18 @@
       goto line_done;
     p++;
 
-    idx = 0;
-    while (*p != '\n' && *p != '\r' && *p != '\0') {
-      if (idx < sizeof (buffer) - 1)
-        buffer[idx++] = *p;
+    s = p;
+    while (*p != '\n' && *p != '\r' && *p != '\0')
       p++;
+
+    len = p - s;
+    if (bufsize <= len) {
+      buffer = g_realloc (buffer, len + 1);
+      bufsize = len + 1;
     }
-    buffer[idx] = '\0';
+    memcpy (buffer, s, len);
+    buffer[len] = '\0';
+
     gst_sdp_parse_line (&c, type, buffer);
 
   line_done:
@@ -2040,6 +2988,9 @@
       p++;
   }
 
+  if (buffer)
+    g_free (buffer);
+
   return GST_SDP_OK;
 }
 
diff --git a/gst-libs/gst/sdp/gstsdpmessage.h b/gst-libs/gst/sdp/gstsdpmessage.h
index d1e65dd..62f5a03 100644
--- a/gst-libs/gst/sdp/gstsdpmessage.h
+++ b/gst-libs/gst/sdp/gstsdpmessage.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /*
  * Unless otherwise indicated, Source Code is licensed under MIT license.
@@ -95,6 +95,14 @@
   guint  addr_number;
 } GstSDPConnection;
 
+GstSDPResult    gst_sdp_connection_set   (GstSDPConnection *conn,
+                                          const gchar *nettype,
+                                          const gchar *addrtype,
+                                          const gchar *address,
+                                          guint ttl, guint addr_number);
+GstSDPResult    gst_sdp_connection_clear (GstSDPConnection *conn);
+
+
 /**
  * GST_SDP_BWTYPE_CT:
  *
@@ -147,6 +155,10 @@
   guint  bandwidth;
 } GstSDPBandwidth;
 
+GstSDPResult    gst_sdp_bandwidth_set    (GstSDPBandwidth *bw, const gchar *bwtype,
+                                          guint bandwidth);
+GstSDPResult    gst_sdp_bandwidth_clear  (GstSDPBandwidth *bw);
+
 /**
  * GstSDPTime:
  * @start: start time for the conference. The value is the decimal
@@ -164,6 +176,10 @@
   GArray *repeat;
 } GstSDPTime;
 
+GstSDPResult    gst_sdp_time_set    (GstSDPTime *t, const gchar *start,
+                                     const gchar *stop, const gchar **repeat);
+GstSDPResult    gst_sdp_time_clear  (GstSDPTime *t);
+
 /**
  * GstSDPZone:
  * @time: the NTP time that a time zone adjustment happens
@@ -178,6 +194,11 @@
   gchar *typed_time;
 } GstSDPZone;
 
+GstSDPResult    gst_sdp_zone_set    (GstSDPZone *zone, const gchar *adj_time,
+                                     const gchar *typed_time);
+GstSDPResult    gst_sdp_zone_clear  (GstSDPZone *zone);
+
+
 /**
  * GstSDPKey:
  * @type: the encryption type
@@ -203,6 +224,10 @@
   gchar *value;
 } GstSDPAttribute;
 
+GstSDPResult    gst_sdp_attribute_set    (GstSDPAttribute *attr, const gchar *key,
+                                          const gchar *value);
+GstSDPResult    gst_sdp_attribute_clear  (GstSDPAttribute *attr);
+
 /**
  * GstSDPMedia:
  * @media: the media type
@@ -267,11 +292,19 @@
   GArray           *medias;
 } GstSDPMessage;
 
+
+GType                   gst_sdp_message_get_type            (void);
+
+#define GST_TYPE_SDP_MESSAGE           (gst_sdp_message_get_type())
+#define GST_SDP_MESSAGE_CAST(object)   ((GstSDPMessage *)(object))
+#define GST_SDP_MESSAGE(object)        (GST_SDP_MESSAGE_CAST(object))
+
 /* Session descriptions */
 GstSDPResult            gst_sdp_message_new                 (GstSDPMessage **msg);
 GstSDPResult            gst_sdp_message_init                (GstSDPMessage *msg);
 GstSDPResult            gst_sdp_message_uninit              (GstSDPMessage *msg);
 GstSDPResult            gst_sdp_message_free                (GstSDPMessage *msg);
+GstSDPResult            gst_sdp_message_copy                (const GstSDPMessage *msg, GstSDPMessage **copy);
 
 GstSDPResult            gst_sdp_message_parse_buffer        (const guint8 *data, guint size, GstSDPMessage *msg);
 gchar*                  gst_sdp_message_as_text             (const GstSDPMessage *msg);
@@ -309,14 +342,25 @@
 /* e=<email-address> */
 guint                   gst_sdp_message_emails_len          (const GstSDPMessage *msg);
 const gchar*            gst_sdp_message_get_email           (const GstSDPMessage *msg, guint idx);
+GstSDPResult            gst_sdp_message_insert_email        (GstSDPMessage *msg, gint idx,
+                                                             const gchar *email);
+GstSDPResult            gst_sdp_message_replace_email       (GstSDPMessage *msg, guint idx,
+                                                             const gchar *email);
+GstSDPResult            gst_sdp_message_remove_email        (GstSDPMessage *msg, guint idx);
 GstSDPResult            gst_sdp_message_add_email           (GstSDPMessage *msg, const gchar *email);
 
 /* p=<phone-number> */
 guint                   gst_sdp_message_phones_len          (const GstSDPMessage *msg);
 const gchar*            gst_sdp_message_get_phone           (const GstSDPMessage *msg, guint idx);
+GstSDPResult            gst_sdp_message_insert_phone        (GstSDPMessage *msg, gint idx,
+                                                             const gchar *phone);
+GstSDPResult            gst_sdp_message_replace_phone       (GstSDPMessage *msg, guint idx,
+                                                             const gchar *phone);
+GstSDPResult            gst_sdp_message_remove_phone        (GstSDPMessage *msg, guint idx);
 GstSDPResult            gst_sdp_message_add_phone           (GstSDPMessage *msg, const gchar *phone);
 
 /* c=<nettype> <addrtype> <connection-address>[/<ttl>][/<number of addresses>] */
+
 const GstSDPConnection* gst_sdp_message_get_connection      (const GstSDPMessage *msg);
 GstSDPResult            gst_sdp_message_set_connection      (GstSDPMessage *msg, const gchar *nettype,
                                                              const gchar *addrtype, const gchar *address,
@@ -324,17 +368,34 @@
 /* b=<bwtype>:<bandwidth> */
 guint                   gst_sdp_message_bandwidths_len      (const GstSDPMessage *msg);
 const GstSDPBandwidth*  gst_sdp_message_get_bandwidth       (const GstSDPMessage *msg, guint idx);
+GstSDPResult            gst_sdp_message_insert_bandwidth    (GstSDPMessage * msg, gint idx,
+                                                             GstSDPBandwidth * bw);
+GstSDPResult            gst_sdp_message_replace_bandwidth   (GstSDPMessage * msg, guint idx,
+                                                             GstSDPBandwidth * bw);
+GstSDPResult            gst_sdp_message_remove_bandwidth    (GstSDPMessage * msg, guint idx);
 GstSDPResult            gst_sdp_message_add_bandwidth       (GstSDPMessage *msg, const gchar *bwtype,
                                                              guint bandwidth);
+
 /* t=<start-time> <stop-time> and
  * r=<repeat interval> <active duration> <offsets from start-time> */
 guint                   gst_sdp_message_times_len           (const GstSDPMessage *msg);
 const GstSDPTime*       gst_sdp_message_get_time            (const GstSDPMessage *msg, guint idx);
-GstSDPResult            gst_sdp_message_add_time            (GstSDPMessage *msg, const gchar *start, const gchar *stop, const gchar **repeat);
+GstSDPResult            gst_sdp_message_insert_time         (GstSDPMessage *msg, gint idx,
+                                                             GstSDPTime *t);
+GstSDPResult            gst_sdp_message_replace_time        (GstSDPMessage *msg, guint idx,
+                                                             GstSDPTime *t);
+GstSDPResult            gst_sdp_message_remove_time         (GstSDPMessage *msg, guint idx);
+GstSDPResult            gst_sdp_message_add_time            (GstSDPMessage *msg, const gchar *start,
+                                                             const gchar *stop, const gchar **repeat);
 
 /* z=<adjustment time> <offset> <adjustment time> <offset> .... */
 guint                   gst_sdp_message_zones_len           (const GstSDPMessage *msg);
 const GstSDPZone*       gst_sdp_message_get_zone            (const GstSDPMessage *msg, guint idx);
+GstSDPResult            gst_sdp_message_insert_zone         (GstSDPMessage *msg, gint idx,
+                                                             GstSDPZone *zone);
+GstSDPResult            gst_sdp_message_replace_zone        (GstSDPMessage *msg, guint idx,
+                                                             GstSDPZone *zone);
+GstSDPResult            gst_sdp_message_remove_zone         (GstSDPMessage *msg, guint idx);
 GstSDPResult            gst_sdp_message_add_zone            (GstSDPMessage *msg, const gchar *adj_time,
                                                              const gchar *typed_time);
 
@@ -345,9 +406,15 @@
 /* a=... */
 guint                   gst_sdp_message_attributes_len      (const GstSDPMessage *msg);
 const GstSDPAttribute*  gst_sdp_message_get_attribute       (const GstSDPMessage *msg, guint idx);
-const gchar*            gst_sdp_message_get_attribute_val   (const GstSDPMessage *msg, const gchar *key);
-const gchar*            gst_sdp_message_get_attribute_val_n (const GstSDPMessage *msg, const gchar *key,
-                                                             guint nth);
+const gchar*            gst_sdp_message_get_attribute_val   (const GstSDPMessage *msg,
+                                                             const gchar *key);
+const gchar*            gst_sdp_message_get_attribute_val_n (const GstSDPMessage *msg,
+                                                             const gchar *key, guint nth);
+GstSDPResult            gst_sdp_message_insert_attribute    (GstSDPMessage *msg, gint idx,
+                                                             GstSDPAttribute *attr);
+GstSDPResult            gst_sdp_message_replace_attribute   (GstSDPMessage *msg, guint idx,
+                                                             GstSDPAttribute *attr);
+GstSDPResult            gst_sdp_message_remove_attribute    (GstSDPMessage *msg, guint idx);
 GstSDPResult            gst_sdp_message_add_attribute       (GstSDPMessage *msg, const gchar *key,
                                                              const gchar *value);
 
@@ -363,6 +430,7 @@
 GstSDPResult            gst_sdp_media_init                  (GstSDPMedia *media);
 GstSDPResult            gst_sdp_media_uninit                (GstSDPMedia *media);
 GstSDPResult            gst_sdp_media_free                  (GstSDPMedia *media);
+GstSDPResult            gst_sdp_media_copy                  (const GstSDPMedia *media, GstSDPMedia **copy);
 
 gchar*                  gst_sdp_media_as_text               (const GstSDPMedia *media);
 
@@ -380,6 +448,11 @@
 
 guint                   gst_sdp_media_formats_len           (const GstSDPMedia *media);
 const gchar*            gst_sdp_media_get_format            (const GstSDPMedia *media, guint idx);
+GstSDPResult            gst_sdp_media_insert_format         (GstSDPMedia *media, gint idx,
+                                                             const gchar *format);
+GstSDPResult            gst_sdp_media_replace_format        (GstSDPMedia *media, guint idx,
+                                                             const gchar *format);
+GstSDPResult            gst_sdp_media_remove_format         (GstSDPMedia *media, guint idx);
 GstSDPResult            gst_sdp_media_add_format            (GstSDPMedia *media, const gchar *format);
 
 /* i=<session description> */
@@ -389,13 +462,25 @@
 /* c=<nettype> <addrtype> <connection-address>[/<ttl>][/<number of addresses>] */
 guint                   gst_sdp_media_connections_len       (const GstSDPMedia *media);
 const GstSDPConnection* gst_sdp_media_get_connection        (const GstSDPMedia *media, guint idx);
-GstSDPResult            gst_sdp_media_add_connection        (GstSDPMedia *media, const gchar *nettype,
-                                                             const gchar *addrtype, const gchar *address,
+GstSDPResult            gst_sdp_media_insert_connection     (GstSDPMedia *media, gint idx,
+                                                             GstSDPConnection *conn);
+GstSDPResult            gst_sdp_media_replace_connection    (GstSDPMedia *media, guint idx,
+                                                             GstSDPConnection *conn);
+GstSDPResult            gst_sdp_media_remove_connection     (GstSDPMedia *media, guint idx);
+GstSDPResult            gst_sdp_media_add_connection        (GstSDPMedia *media,
+                                                             const gchar *nettype,
+                                                             const gchar *addrtype,
+                                                             const gchar *address,
                                                              guint ttl, guint addr_number);
 
 /* b=<bwtype>:<bandwidth> */
 guint                   gst_sdp_media_bandwidths_len        (const GstSDPMedia *media);
 const GstSDPBandwidth*  gst_sdp_media_get_bandwidth         (const GstSDPMedia *media, guint idx);
+GstSDPResult            gst_sdp_media_insert_bandwidth      (GstSDPMedia *media, gint idx,
+                                                             GstSDPBandwidth *bw);
+GstSDPResult            gst_sdp_media_replace_bandwidth     (GstSDPMedia *media, guint idx,
+                                                             GstSDPBandwidth *bw);
+GstSDPResult            gst_sdp_media_remove_bandwidth      (GstSDPMedia *media, guint idx);
 GstSDPResult            gst_sdp_media_add_bandwidth         (GstSDPMedia *media, const gchar *bwtype,
                                                              guint bandwidth);
 
@@ -409,6 +494,11 @@
 const gchar*            gst_sdp_media_get_attribute_val     (const GstSDPMedia *media, const gchar *key);
 const gchar*            gst_sdp_media_get_attribute_val_n   (const GstSDPMedia *media, const gchar *key,
                                                              guint nth);
+GstSDPResult            gst_sdp_media_insert_attribute      (GstSDPMedia *media, gint idx,
+                                                             GstSDPAttribute *attr);
+GstSDPResult            gst_sdp_media_replace_attribute     (GstSDPMedia *media, guint idx,
+                                                             GstSDPAttribute *attr);
+GstSDPResult            gst_sdp_media_remove_attribute      (GstSDPMedia *media, guint idx);
 GstSDPResult            gst_sdp_media_add_attribute         (GstSDPMedia *media, const gchar *key,
                                                              const gchar *value);
 
diff --git a/gst-libs/gst/sdp/sdp.h b/gst-libs/gst/sdp/sdp.h
new file mode 100644
index 0000000..0647bf6
--- /dev/null
+++ b/gst-libs/gst/sdp/sdp.h
@@ -0,0 +1,28 @@
+/* GStreamer
+ * Copyright (C) 2012 GStreamer developers
+ *
+ * gstsdp.h: single include header for gst-sdp library
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_SDP__H__
+#define __GST_SDP__H__
+
+#include <gst/sdp/gstsdp.h>
+#include <gst/sdp/gstsdpmessage.h>
+
+#endif /* __GST_SDP__H__ */
diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
index 2358f19..1883636 100644
--- a/gst-libs/gst/tag/Makefile.am
+++ b/gst-libs/gst/tag/Makefile.am
@@ -28,16 +28,17 @@
 
 gir_headers=$(patsubst %,$(srcdir)/%, $(libgsttaginclude_HEADERS))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgsttag_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/tag/%',$(libgsttaginclude_HEADERS))
 
 GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstTag \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/tag/tag.h" \
+		-I$(top_srcdir)/gst-libs \
+		-I$(top_builddir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
 		--library=libgsttag-@GST_API_VERSION@.la \
diff --git a/gst-libs/gst/tag/Makefile.in b/gst-libs/gst/tag/Makefile.in
index 31070fa..d957def 100644
--- a/gst-libs/gst/tag/Makefile.in
+++ b/gst-libs/gst/tag/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,14 +83,14 @@
 target_triplet = @target@
 EXTRA_PROGRAMS = mklangtables$(EXEEXT) mklicensestables$(EXEEXT)
 subdir = gst-libs/gst/tag
-DIST_COMMON = $(libgsttaginclude_HEADERS) $(noinst_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(libgsttaginclude_HEADERS) \
+	$(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -156,6 +183,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsttag_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgsttag_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
@@ -174,6 +202,18 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(mklicensestables_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -186,20 +226,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgsttag_@GST_API_VERSION@_la_SOURCES) \
 	$(mklangtables_SOURCES) $(mklicensestables_SOURCES)
 DIST_SOURCES = $(libgsttag_@GST_API_VERSION@_la_SOURCES) \
@@ -211,6 +247,23 @@
   esac
 DATA = $(gir_DATA) $(licensetrans_DATA) $(typelibs_DATA)
 HEADERS = $(libgsttaginclude_HEADERS) $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -530,7 +583,6 @@
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstTag-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgsttaginclude_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgsttag_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/tag/%',$(libgsttaginclude_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -591,6 +643,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -617,17 +670,22 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsttag-@GST_API_VERSION@.la: $(libgsttag_@GST_API_VERSION@_la_OBJECTS) $(libgsttag_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgsttag_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsttag_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgsttag_@GST_API_VERSION@_la_OBJECTS) $(libgsttag_@GST_API_VERSION@_la_LIBADD) $(LIBS)
+
 mklangtables$(EXEEXT): $(mklangtables_OBJECTS) $(mklangtables_DEPENDENCIES) $(EXTRA_mklangtables_DEPENDENCIES) 
 	@rm -f mklangtables$(EXEEXT)
 	$(AM_V_CCLD)$(mklangtables_LINK) $(mklangtables_OBJECTS) $(mklangtables_LDADD) $(LIBS)
+
 mklicensestables$(EXEEXT): $(mklicensestables_OBJECTS) $(mklicensestables_DEPENDENCIES) $(EXTRA_mklicensestables_DEPENDENCIES) 
 	@rm -f mklicensestables$(EXEEXT)
 	$(AM_V_CCLD)$(mklicensestables_LINK) $(mklicensestables_OBJECTS) $(mklicensestables_LDADD) $(LIBS)
@@ -884,26 +942,15 @@
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgsttagincludedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -915,15 +962,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -932,6 +975,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1080,33 +1138,35 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-girDATA \
-	install-html install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-libgsttagincludeHEADERS \
-	install-licensetransDATA install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	install-typelibsDATA installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
-	uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-libgsttagincludeHEADERS uninstall-licensetransDATA \
-	uninstall-typelibsDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-libgsttagincludeHEADERS install-licensetransDATA \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip install-typelibsDATA installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
+	uninstall-libLTLIBRARIES uninstall-libgsttagincludeHEADERS \
+	uninstall-licensetransDATA uninstall-typelibsDATA
 
 
 @HAVE_INTROSPECTION_TRUE@GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstTag \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/tag/tag.h" \
+@HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
+@HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
 @HAVE_INTROSPECTION_TRUE@		--library=libgsttag-@GST_API_VERSION@.la \
diff --git a/gst-libs/gst/tag/gstexiftag.c b/gst-libs/gst/tag/gstexiftag.c
index 38d0432..0d4a478 100644
--- a/gst-libs/gst/tag/gstexiftag.c
+++ b/gst-libs/gst/tag/gstexiftag.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/gstid3tag.c b/gst-libs/gst/tag/gstid3tag.c
index a329088..7b38062 100644
--- a/gst-libs/gst/tag/gstid3tag.c
+++ b/gst-libs/gst/tag/gstid3tag.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
index 565d7a2..6233631 100644
--- a/gst-libs/gst/tag/gsttagdemux.c
+++ b/gst-libs/gst/tag/gsttagdemux.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/gsttagdemux.h b/gst-libs/gst/tag/gsttagdemux.h
index ba49447..5903674 100644
--- a/gst-libs/gst/tag/gsttagdemux.h
+++ b/gst-libs/gst/tag/gsttagdemux.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TAG_DEMUX_H__
diff --git a/gst-libs/gst/tag/gsttageditingprivate.c b/gst-libs/gst/tag/gsttageditingprivate.c
index 0626874..0d18e89 100644
--- a/gst-libs/gst/tag/gsttageditingprivate.c
+++ b/gst-libs/gst/tag/gsttageditingprivate.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gsttageditingprivate.h"
diff --git a/gst-libs/gst/tag/gsttageditingprivate.h b/gst-libs/gst/tag/gsttageditingprivate.h
index 0cc70d0..04febba 100644
--- a/gst-libs/gst/tag/gsttageditingprivate.h
+++ b/gst-libs/gst/tag/gsttageditingprivate.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst-libs/gst/tag/gsttagmux.c b/gst-libs/gst/tag/gsttagmux.c
index 7fe9fbd..1140fe9 100644
--- a/gst-libs/gst/tag/gsttagmux.c
+++ b/gst-libs/gst/tag/gsttagmux.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/gsttagmux.h b/gst-libs/gst/tag/gsttagmux.h
index 8b103e0..ebb8b04 100644
--- a/gst-libs/gst/tag/gsttagmux.h
+++ b/gst-libs/gst/tag/gsttagmux.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef GST_TAG_MUX_H
diff --git a/gst-libs/gst/tag/gstvorbistag.c b/gst-libs/gst/tag/gstvorbistag.c
index 99574fb..ae4702c 100644
--- a/gst-libs/gst/tag/gstvorbistag.c
+++ b/gst-libs/gst/tag/gstvorbistag.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -53,7 +53,9 @@
   {GST_TAG_TRACK_NUMBER, "TRACKNUMBER"},
   {GST_TAG_ALBUM_VOLUME_NUMBER, "DISCNUMBER"},
   {GST_TAG_TRACK_COUNT, "TRACKTOTAL"},
+  {GST_TAG_TRACK_COUNT, "TOTALTRACKS"}, /* old / non-standard */
   {GST_TAG_ALBUM_VOLUME_COUNT, "DISCTOTAL"},
+  {GST_TAG_ALBUM_VOLUME_COUNT, "TOTALDISCS"},   /* old / non-standard */
   {GST_TAG_ARTIST, "ARTIST"},
   {GST_TAG_PERFORMER, "PERFORMER"},
   {GST_TAG_COMPOSER, "COMPOSER"},
diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c
index b26824c..5f217dc 100644
--- a/gst-libs/gst/tag/gstxmptag.c
+++ b/gst-libs/gst/tag/gstxmptag.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -44,6 +44,24 @@
 #include <time.h>
 #include <ctype.h>
 
+#define GST_CAT_DEFAULT gst_tag_ensure_debug_category()
+
+static GstDebugCategory *
+gst_tag_ensure_debug_category (void)
+{
+  static gsize cat_gonce = 0;
+
+  if (g_once_init_enter (&cat_gonce)) {
+    GstDebugCategory *cat = NULL;
+
+    GST_DEBUG_CATEGORY_INIT (cat, "xmp-tags", 0, "XMP GstTag helper functions");
+
+    g_once_init_leave (&cat_gonce, (gsize) cat);
+  }
+
+  return (GstDebugCategory *) cat_gonce;
+}
+
 static const gchar *schema_list[] = {
   "dc",
   "xap",
diff --git a/gst-libs/gst/tag/id3v2.c b/gst-libs/gst/tag/id3v2.c
index 8c2c32f..451f4e1 100644
--- a/gst-libs/gst/tag/id3v2.c
+++ b/gst-libs/gst/tag/id3v2.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/tag/id3v2.h b/gst-libs/gst/tag/id3v2.h
index fd21bb6..3280ed9 100644
--- a/gst-libs/gst/tag/id3v2.h
+++ b/gst-libs/gst/tag/id3v2.h
@@ -12,8 +12,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __ID3TAGS_H__
diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c
index 46fbadd..3785c2a 100644
--- a/gst-libs/gst/tag/id3v2frames.c
+++ b/gst-libs/gst/tag/id3v2frames.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/tag/lang.c b/gst-libs/gst/tag/lang.c
index d726c2a..b64cb92 100644
--- a/gst-libs/gst/tag/lang.c
+++ b/gst-libs/gst/tag/lang.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/licenses.c b/gst-libs/gst/tag/licenses.c
index 2450032..6b74810 100644
--- a/gst-libs/gst/tag/licenses.c
+++ b/gst-libs/gst/tag/licenses.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/mklangtables.c b/gst-libs/gst/tag/mklangtables.c
index 3a6156f..90777cb 100644
--- a/gst-libs/gst/tag/mklangtables.c
+++ b/gst-libs/gst/tag/mklangtables.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* mklangtables.c:
diff --git a/gst-libs/gst/tag/mklicensestables.c b/gst-libs/gst/tag/mklicensestables.c
index 3a8de07..03abc58 100644
--- a/gst-libs/gst/tag/mklicensestables.c
+++ b/gst-libs/gst/tag/mklicensestables.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* mklicensestables.c:
diff --git a/gst-libs/gst/tag/tag.h b/gst-libs/gst/tag/tag.h
index 452e6a2..896bc1c 100644
--- a/gst-libs/gst/tag/tag.h
+++ b/gst-libs/gst/tag/tag.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -23,6 +23,9 @@
 #define __GST_TAG_TAG_H__
 
 #include <gst/gst.h>
+#include <gst/tag/gsttagdemux.h>
+#include <gst/tag/gsttagmux.h>
+#include <gst/tag/xmpwriter.h>
 
 G_BEGIN_DECLS
 
diff --git a/gst-libs/gst/tag/tags.c b/gst-libs/gst/tag/tags.c
index 62b5c24..7845d4b 100644
--- a/gst-libs/gst/tag/tags.c
+++ b/gst-libs/gst/tag/tags.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/tag/xmpwriter.c b/gst-libs/gst/tag/xmpwriter.c
index 3a38f29..69f090c 100644
--- a/gst-libs/gst/tag/xmpwriter.c
+++ b/gst-libs/gst/tag/xmpwriter.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/tag/xmpwriter.h b/gst-libs/gst/tag/xmpwriter.h
index a7f6e4a..838a6bd 100644
--- a/gst-libs/gst/tag/xmpwriter.h
+++ b/gst-libs/gst/tag/xmpwriter.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __TAG_XMP_WRITER_H__
diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index f1ecbeb..292415e 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
@@ -3,7 +3,7 @@
 include $(top_srcdir)/common/orc.mak
 
 glib_enum_headers = video.h video-format.h video-color.h video-info.h \
-			colorbalance.h navigation.h
+			colorbalance.h navigation.h video-chroma.h
 glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
 glib_gen_basename = video
@@ -23,6 +23,7 @@
 	video.c          	\
 	video-event.c          	\
 	video-format.c         	\
+	video-chroma.c         	\
 	video-color.c         	\
 	video-info.c         	\
 	video-frame.c         	\
@@ -49,6 +50,7 @@
 	video.h			\
 	video-event.h          	\
 	video-format.h         	\
+	video-chroma.h         	\
 	video-color.h         	\
 	video-info.h         	\
 	video-frame.h         	\
@@ -80,17 +82,15 @@
 gir_headers+=$(patsubst %,$(builddir)/%, $(built_headers))
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_API_VERSION@_la_SOURCES))
 gir_sources+=$(patsubst %,$(builddir)/%, $(built_sources))
-gir_cincludes=$(patsubst %,--c-include='gst/video/%',$(libgstvideo_@GST_API_VERSION@include_HEADERS))
-gir_cincludes+=$(patsubst %,--c-include='gst/video/%',$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS))
 
 GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstVideo \
 		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
 		--warn-all \
-		$(gir_cincludes) \
+		--c-include "gst/video/video.h" \
 		-I$(top_srcdir)/gst-libs \
 		-I$(top_builddir)/gst-libs \
 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index de91fd9..3bb60c8 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -48,23 +47,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,10 +111,10 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(libgstvideo_@GST_API_VERSION@include_HEADERS) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/gst-glib-gen.mak \
-	$(top_srcdir)/common/orc.mak TODO
+DIST_COMMON = $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/common/gst-glib-gen.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
+	$(libgstvideo_@GST_API_VERSION@include_HEADERS) TODO
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/video
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -95,7 +122,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -176,6 +202,7 @@
 	libgstvideo_@GST_API_VERSION@_la-video.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-event.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-format.lo \
+	libgstvideo_@GST_API_VERSION@_la-video-chroma.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-color.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-info.lo \
 	libgstvideo_@GST_API_VERSION@_la-video-frame.lo \
@@ -202,10 +229,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideo_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideo_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -218,20 +258,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideo_@GST_API_VERSION@_la_SOURCES) \
 	$(nodist_libgstvideo_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstvideo_@GST_API_VERSION@_la_SOURCES)
@@ -243,8 +279,7 @@
 DATA = $(gir_DATA) $(typelibs_DATA)
 HEADERS = $(libgstvideo_@GST_API_VERSION@include_HEADERS) \
 	$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -550,7 +585,7 @@
 cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
 cp_v_gen_0 = @echo "  CP     $@";
 glib_enum_headers = video.h video-format.h video-color.h video-info.h \
-			colorbalance.h navigation.h
+			colorbalance.h navigation.h video-chroma.h
 
 glib_enum_define = GST_VIDEO
 glib_gen_prefix = gst_video
@@ -566,6 +601,7 @@
 	video.c          	\
 	video-event.c          	\
 	video-format.c         	\
+	video-chroma.c         	\
 	video-color.c         	\
 	video-info.c         	\
 	video-frame.c         	\
@@ -591,6 +627,7 @@
 	video.h			\
 	video-event.h          	\
 	video-format.h         	\
+	video-chroma.h         	\
 	video-color.h         	\
 	video-info.h         	\
 	video-frame.h         	\
@@ -622,10 +659,6 @@
 @HAVE_INTROSPECTION_TRUE@	$(libgstvideo_@GST_API_VERSION@_la_SOURCES)) \
 @HAVE_INTROSPECTION_TRUE@	$(patsubst %,$(builddir)/%, \
 @HAVE_INTROSPECTION_TRUE@	$(built_sources))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/video/%',$(libgstvideo_@GST_API_VERSION@include_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@	$(patsubst \
-@HAVE_INTROSPECTION_TRUE@	%,--c-include='gst/video/%',$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -669,6 +702,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -695,12 +729,15 @@
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideo-@GST_API_VERSION@.la: $(libgstvideo_@GST_API_VERSION@_la_OBJECTS) $(libgstvideo_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstvideo_@GST_API_VERSION@_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideo_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstvideo_@GST_API_VERSION@_la_OBJECTS) $(libgstvideo_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
@@ -723,6 +760,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-navigation.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-tmp-orc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-blend.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-chroma.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-color.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-enumtypes.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-event.Plo@am__quote@
@@ -797,6 +835,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-format.lo `test -f 'video-format.c' || echo '$(srcdir)/'`video-format.c
 
+libgstvideo_@GST_API_VERSION@_la-video-chroma.lo: video-chroma.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-chroma.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-chroma.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-chroma.lo `test -f 'video-chroma.c' || echo '$(srcdir)/'`video-chroma.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-chroma.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-chroma.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='video-chroma.c' object='libgstvideo_@GST_API_VERSION@_la-video-chroma.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-chroma.lo `test -f 'video-chroma.c' || echo '$(srcdir)/'`video-chroma.c
+
 libgstvideo_@GST_API_VERSION@_la-video-color.lo: video-color.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-color.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-color.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-color.lo `test -f 'video-color.c' || echo '$(srcdir)/'`video-color.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-color.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-color.Plo
@@ -1005,58 +1050,12 @@
 	@list='$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstvideo_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ctags CTAGS:
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+cscope cscopelist:
 
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1140,8 +1139,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -1211,10 +1209,10 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool clean-local ctags dist-hook \
-	distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
+.PHONY: all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
+	ctags-am dist-hook distclean distclean-compile \
+	distclean-generic distclean-libtool distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-girDATA install-html install-html-am \
@@ -1227,7 +1225,7 @@
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
 	uninstall-libgstvideo_@GST_API_VERSION@includeHEADERS \
 	uninstall-nodist_libgstvideo_@GST_API_VERSION@includeHEADERS \
@@ -1308,12 +1306,12 @@
 
 @HAVE_INTROSPECTION_TRUE@GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstVideo \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
-@HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
+@HAVE_INTROSPECTION_TRUE@		--c-include "gst/video/video.h" \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir)/gst-libs \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
diff --git a/gst-libs/gst/video/colorbalance.c b/gst-libs/gst/video/colorbalance.c
index 12e86b9..ebae5a1 100644
--- a/gst-libs/gst/video/colorbalance.c
+++ b/gst-libs/gst/video/colorbalance.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -51,7 +51,7 @@
   LAST_SIGNAL
 };
 
-static void gst_color_balance_class_init (GstColorBalanceInterface * iface);
+static void gst_color_balance_base_init (GstColorBalanceInterface * iface);
 
 static guint gst_color_balance_signals[LAST_SIGNAL] = { 0 };
 
@@ -63,7 +63,7 @@
   if (!gst_color_balance_type) {
     static const GTypeInfo gst_color_balance_info = {
       sizeof (GstColorBalanceInterface),
-      (GBaseInitFunc) gst_color_balance_class_init,
+      (GBaseInitFunc) gst_color_balance_base_init,
       NULL,
       NULL,
       NULL,
@@ -81,7 +81,7 @@
 }
 
 static void
-gst_color_balance_class_init (GstColorBalanceInterface * iface)
+gst_color_balance_base_init (GstColorBalanceInterface * iface)
 {
   static gboolean initialized = FALSE;
 
diff --git a/gst-libs/gst/video/colorbalance.h b/gst-libs/gst/video/colorbalance.h
index ec5d172..f73d261 100644
--- a/gst-libs/gst/video/colorbalance.h
+++ b/gst-libs/gst/video/colorbalance.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_COLOR_BALANCE_H__
diff --git a/gst-libs/gst/video/colorbalancechannel.c b/gst-libs/gst/video/colorbalancechannel.c
index bcd6b78..14c0f49 100644
--- a/gst-libs/gst/video/colorbalancechannel.c
+++ b/gst-libs/gst/video/colorbalancechannel.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/video/colorbalancechannel.h b/gst-libs/gst/video/colorbalancechannel.h
index ca23ee2..431d083 100644
--- a/gst-libs/gst/video/colorbalancechannel.h
+++ b/gst-libs/gst/video/colorbalancechannel.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_COLOR_BALANCE_CHANNEL_H__
diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c
index 4155e20..4abfb5e 100644
--- a/gst-libs/gst/video/convertframe.c
+++ b/gst-libs/gst/video/convertframe.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <string.h>
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index c2940d1..98e6be7 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -296,6 +296,7 @@
 #include "gstvideodecoder.h"
 #include "gstvideoutils.h"
 
+#include <gst/video/video.h>
 #include <gst/video/video-event.h>
 #include <gst/video/gstvideopool.h>
 #include <gst/video/gstvideometa.h>
@@ -340,6 +341,8 @@
   GstVideoCodecFrame *current_frame;
   /* events that should apply to the current frame */
   GList *current_frame_events;
+  /* events that should be pushed before the next frame */
+  GList *pending_events;
 
   /* relative offset of input data */
   guint64 input_offset;
@@ -452,6 +455,8 @@
 static gboolean gst_video_decoder_propose_allocation_default (GstVideoDecoder *
     decoder, GstQuery * query);
 static gboolean gst_video_decoder_negotiate_default (GstVideoDecoder * decoder);
+static GstFlowReturn gst_video_decoder_parse_available (GstVideoDecoder * dec,
+    gboolean at_eos, gboolean new_buffer);
 
 /* we can't use G_DEFINE_ABSTRACT_TYPE because we need the klass in the _init
  * method to get to the padtemplates */
@@ -874,6 +879,8 @@
     g_list_free_full (priv->current_frame_events,
         (GDestroyNotify) gst_event_unref);
     priv->current_frame_events = NULL;
+    g_list_free_full (priv->pending_events, (GDestroyNotify) gst_event_unref);
+    priv->pending_events = NULL;
   }
   /* and get (re)set for the sequel */
   gst_video_decoder_reset (dec, FALSE);
@@ -913,6 +920,35 @@
 }
 
 static GstFlowReturn
+gst_video_decoder_parse_available (GstVideoDecoder * dec, gboolean at_eos,
+    gboolean new_buffer)
+{
+  GstVideoDecoderClass *decoder_class = GST_VIDEO_DECODER_GET_CLASS (dec);
+  GstVideoDecoderPrivate *priv = dec->priv;
+  GstFlowReturn ret = GST_FLOW_OK;
+  gsize start_size, available;
+
+  available = gst_adapter_available (priv->input_adapter);
+  start_size = 0;
+
+  while (ret == GST_FLOW_OK && ((available && start_size != available)
+          || new_buffer)) {
+    new_buffer = FALSE;
+    /* current frame may have been parsed and handled,
+     * so we need to set up a new one when asking subclass to parse */
+    if (priv->current_frame == NULL)
+      priv->current_frame = gst_video_decoder_new_frame (dec);
+
+    start_size = available;
+    ret = decoder_class->parse (dec, priv->current_frame,
+        priv->input_adapter, at_eos);
+    available = gst_adapter_available (priv->input_adapter);
+  }
+
+  return ret;
+}
+
+static GstFlowReturn
 gst_video_decoder_drain_out (GstVideoDecoder * dec, gboolean at_eos)
 {
   GstVideoDecoderClass *decoder_class = GST_VIDEO_DECODER_GET_CLASS (dec);
@@ -925,13 +961,7 @@
     /* Forward mode, if unpacketized, give the child class
      * a final chance to flush out packets */
     if (!priv->packetized) {
-      while (ret == GST_FLOW_OK && gst_adapter_available (priv->input_adapter)) {
-        if (priv->current_frame == NULL)
-          priv->current_frame = gst_video_decoder_new_frame (dec);
-
-        ret = decoder_class->parse (dec, priv->current_frame,
-            priv->input_adapter, TRUE);
-      }
+      ret = gst_video_decoder_parse_available (dec, TRUE, FALSE);
     }
   } else {
     /* Reverse playback mode */
@@ -959,6 +989,20 @@
   priv = decoder->priv;
 
   switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_STREAM_START:
+    {
+      GstFlowReturn flow_ret = GST_FLOW_OK;
+
+      flow_ret = gst_video_decoder_drain_out (decoder, FALSE);
+      ret = (flow_ret == GST_FLOW_OK);
+
+      /* Forward STREAM_START immediately. Everything is drained after
+       * the STREAM_START event and we can forward this event immediately
+       * now without having buffers out of order.
+       */
+      forward_immediate = TRUE;
+      break;
+    }
     case GST_EVENT_CAPS:
     {
       GstCaps *caps;
@@ -1713,24 +1757,11 @@
     }
     priv->current_frame = NULL;
   } else {
-
     gst_adapter_push (priv->input_adapter, buf);
 
-    if (G_UNLIKELY (!gst_adapter_available (priv->input_adapter)))
-      goto beach;
-
-    do {
-      /* current frame may have been parsed and handled,
-       * so we need to set up a new one when asking subclass to parse */
-      if (priv->current_frame == NULL)
-        priv->current_frame = gst_video_decoder_new_frame (decoder);
-
-      ret = klass->parse (decoder, priv->current_frame,
-          priv->input_adapter, at_eos);
-    } while (ret == GST_FLOW_OK && gst_adapter_available (priv->input_adapter));
+    ret = gst_video_decoder_parse_available (decoder, at_eos, TRUE);
   }
 
-beach:
   if (ret == GST_VIDEO_DECODER_FLOW_NEED_DATA)
     return GST_FLOW_OK;
 
@@ -1980,7 +2011,7 @@
 not_negotiated:
   {
     GST_ELEMENT_ERROR (decoder, CORE, NEGOTIATION, (NULL),
-        ("encoder not initialized"));
+        ("decoder not initialized"));
     gst_buffer_unref (buf);
     return GST_FLOW_NOT_NEGOTIATED;
   }
@@ -2023,6 +2054,9 @@
       g_list_free_full (decoder->priv->current_frame_events,
           (GDestroyNotify) gst_event_unref);
       decoder->priv->current_frame_events = NULL;
+      g_list_free_full (decoder->priv->pending_events,
+          (GDestroyNotify) gst_event_unref);
+      decoder->priv->pending_events = NULL;
       GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
@@ -2129,11 +2163,27 @@
       break;
   }
 
-  for (l = g_list_last (events); l; l = g_list_previous (l)) {
-    GST_LOG_OBJECT (decoder, "pushing %s event", GST_EVENT_TYPE_NAME (l->data));
-    gst_video_decoder_push_event (decoder, l->data);
+  if (dropping || !decoder->priv->output_state) {
+    /* Push before the next frame that is not dropped */
+    decoder->priv->pending_events =
+        g_list_concat (decoder->priv->pending_events, events);
+  } else {
+    for (l = g_list_last (decoder->priv->pending_events); l;
+        l = g_list_previous (l)) {
+      GST_LOG_OBJECT (decoder, "pushing %s event",
+          GST_EVENT_TYPE_NAME (l->data));
+      gst_video_decoder_push_event (decoder, l->data);
+    }
+    g_list_free (decoder->priv->pending_events);
+    decoder->priv->pending_events = NULL;
+
+    for (l = g_list_last (events); l; l = g_list_previous (l)) {
+      GST_LOG_OBJECT (decoder, "pushing %s event",
+          GST_EVENT_TYPE_NAME (l->data));
+      gst_video_decoder_push_event (decoder, l->data);
+    }
+    g_list_free (events);
   }
-  g_list_free (events);
 
   /* Check if the data should not be displayed. For example altref/invisible
    * frame in vp8. In this case we should not update the timestamps. */
@@ -2328,6 +2378,8 @@
 
   timestamp = frame->pts;
   segment = &dec->output_segment;
+  if (G_UNLIKELY (segment->format == GST_FORMAT_UNDEFINED))
+    segment = &dec->input_segment;
   stream_time =
       gst_segment_to_stream_time (segment, GST_FORMAT_TIME, timestamp);
   qostime = gst_segment_to_running_time (segment, GST_FORMAT_TIME, timestamp);
@@ -2377,8 +2429,15 @@
   GST_VIDEO_DECODER_STREAM_LOCK (decoder);
 
   if (G_UNLIKELY (priv->output_state_changed || (priv->output_state
-              && gst_pad_check_reconfigure (decoder->srcpad))))
-    gst_video_decoder_negotiate (decoder);
+              && gst_pad_check_reconfigure (decoder->srcpad)))) {
+    if (!gst_video_decoder_negotiate (decoder)) {
+      if (GST_PAD_IS_FLUSHING (decoder->srcpad))
+        ret = GST_FLOW_FLUSHING;
+      else
+        ret = GST_FLOW_NOT_NEGOTIATED;
+      goto done;
+    }
+  }
 
   gst_video_decoder_prepare_finish_frame (decoder, frame, FALSE);
   priv->processed++;
@@ -2656,20 +2715,19 @@
   frame->dts = GST_BUFFER_DTS (frame->input_buffer);
   frame->duration = GST_BUFFER_DURATION (frame->input_buffer);
 
-  /* For keyframes, PTS = DTS */
+  /* For keyframes, PTS = DTS + constant_offset, usually 0 to 3 frame
+   * durations. */
   /* FIXME upstream can be quite wrong about the keyframe aspect,
    * so we could be going off here as well,
    * maybe let subclass decide if it really is/was a keyframe */
-  if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
-    if (!GST_CLOCK_TIME_IS_VALID (frame->pts)) {
-      frame->pts = frame->dts;
-    } else if (GST_CLOCK_TIME_IS_VALID (frame->dts)) {
-      /* just in case they are not equal as might ideally be,
-       * e.g. quicktime has a (positive) delta approach */
-      priv->pts_delta = frame->pts - frame->dts;
-      GST_DEBUG_OBJECT (decoder, "PTS delta %d ms",
-          (gint) (priv->pts_delta / GST_MSECOND));
-    }
+  if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame) &&
+      GST_CLOCK_TIME_IS_VALID (frame->pts)
+      && GST_CLOCK_TIME_IS_VALID (frame->dts)) {
+    /* just in case they are not equal as might ideally be,
+     * e.g. quicktime has a (positive) delta approach */
+    priv->pts_delta = frame->pts - frame->dts;
+    GST_DEBUG_OBJECT (decoder, "PTS delta %d ms",
+        (gint) (priv->pts_delta / GST_MSECOND));
   }
 
   frame->abidata.ABI.ts = frame->dts;
@@ -2681,6 +2739,12 @@
 
   gst_video_codec_frame_ref (frame);
   priv->frames = g_list_append (priv->frames, frame);
+
+  if (g_list_length (priv->frames) > 10) {
+    GST_DEBUG_OBJECT (decoder, "decoder frame list getting long: %d frames,"
+        "possible internal leaking?", g_list_length (priv->frames));
+  }
+
   frame->deadline =
       gst_segment_to_running_time (&decoder->input_segment, GST_FORMAT_TIME,
       frame->pts);
@@ -2941,6 +3005,7 @@
   GstAllocator *allocator;
   GstAllocationParams params;
   gboolean ret = TRUE;
+  GstVideoCodecFrame *frame;
 
   g_return_val_if_fail (GST_VIDEO_INFO_WIDTH (&state->info) != 0, FALSE);
   g_return_val_if_fail (GST_VIDEO_INFO_HEIGHT (&state->info) != 0, FALSE);
@@ -2951,12 +3016,40 @@
       state->info.par_n, state->info.par_d,
       state->info.fps_n, state->info.fps_d);
 
-  if (G_UNLIKELY (state->caps == NULL))
+  if (state->caps == NULL)
     state->caps = gst_video_info_to_caps (&state->info);
 
   GST_DEBUG_OBJECT (decoder, "setting caps %" GST_PTR_FORMAT, state->caps);
 
+  /* Push all pending pre-caps events of the oldest frame before
+   * setting caps */
+  frame = decoder->priv->frames ? decoder->priv->frames->data : NULL;
+  if (frame || decoder->priv->current_frame_events) {
+    GList **events, *l;
+
+    if (frame) {
+      events = &frame->events;
+    } else {
+      events = &decoder->priv->current_frame_events;
+    }
+
+    ret = FALSE;
+    for (l = g_list_last (*events); l;) {
+      GstEvent *event = GST_EVENT (l->data);
+      GList *tmp;
+
+      if (GST_EVENT_TYPE (event) < GST_EVENT_CAPS) {
+        gst_video_decoder_push_event (decoder, event);
+        tmp = l;
+        l = l->prev;
+        *events = g_list_delete_link (*events, tmp);
+      } else {
+        l = l->prev;
+      }
+    }
+  }
   ret = gst_pad_set_caps (decoder->srcpad, state->caps);
+
   if (!ret)
     goto done;
   decoder->priv->output_state_changed = FALSE;
@@ -3038,6 +3131,7 @@
   gboolean ret = TRUE;
 
   g_return_val_if_fail (GST_IS_VIDEO_DECODER (decoder), FALSE);
+  g_return_val_if_fail (decoder->priv->output_state, FALSE);
 
   klass = GST_VIDEO_DECODER_GET_CLASS (decoder);
 
@@ -3066,25 +3160,38 @@
 gst_video_decoder_allocate_output_buffer (GstVideoDecoder * decoder)
 {
   GstFlowReturn flow;
-  GstBuffer *buffer;
+  GstBuffer *buffer = NULL;
+
+  g_return_val_if_fail (decoder->priv->output_state, NULL);
 
   GST_DEBUG ("alloc src buffer");
 
   GST_VIDEO_DECODER_STREAM_LOCK (decoder);
   if (G_UNLIKELY (decoder->priv->output_state_changed
-          || (decoder->priv->output_state
-              && gst_pad_check_reconfigure (decoder->srcpad))))
-    gst_video_decoder_negotiate (decoder);
+          || gst_pad_check_reconfigure (decoder->srcpad))) {
+    if (!gst_video_decoder_negotiate (decoder)) {
+      GST_DEBUG_OBJECT (decoder, "Failed to negotiate, fallback allocation");
+      goto fallback;
+    }
+  }
 
   flow = gst_buffer_pool_acquire_buffer (decoder->priv->pool, &buffer, NULL);
 
-  GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
-
   if (flow != GST_FLOW_OK) {
     GST_INFO_OBJECT (decoder, "couldn't allocate output buffer, flow %s",
         gst_flow_get_name (flow));
-    buffer = NULL;
+    goto fallback;
   }
+  GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+  return buffer;
+
+fallback:
+  buffer =
+      gst_buffer_new_allocate (NULL, decoder->priv->output_state->info.size,
+      NULL);
+
+  GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
 
   return buffer;
 }
@@ -3111,6 +3218,7 @@
   GstVideoCodecState *state;
   int num_bytes;
 
+  g_return_val_if_fail (decoder->priv->output_state, GST_FLOW_NOT_NEGOTIATED);
   g_return_val_if_fail (frame->output_buffer == NULL, GST_FLOW_ERROR);
 
   GST_VIDEO_DECODER_STREAM_LOCK (decoder);
@@ -3127,8 +3235,7 @@
   }
 
   if (G_UNLIKELY (decoder->priv->output_state_changed
-          || (decoder->priv->output_state
-              && gst_pad_check_reconfigure (decoder->srcpad))))
+          || gst_pad_check_reconfigure (decoder->srcpad)))
     gst_video_decoder_negotiate (decoder);
 
   GST_LOG_OBJECT (decoder, "alloc buffer size %d", num_bytes);
diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h
index 8e2b7c7..e5fcacf 100644
--- a/gst-libs/gst/video/gstvideodecoder.h
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_VIDEO_DECODER_H_
diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
index 823a37a..cdd7372 100644
--- a/gst-libs/gst/video/gstvideoencoder.c
+++ b/gst-libs/gst/video/gstvideoencoder.c
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -110,11 +110,11 @@
 
 /* TODO
  *
- * * Change _set_output_format() to steal the reference of the provided caps
  * * Calculate actual latency based on input/output timestamp/frame_number
  *   and if it exceeds the recorded one, save it and emit a GST_MESSAGE_LATENCY
  */
 
+#include <gst/video/video.h>
 #include "gstvideoencoder.h"
 #include "gstvideoutils.h"
 
@@ -1451,6 +1451,7 @@
   GstVideoCodecState *state = encoder->priv->output_state;
   GstVideoInfo *info = &state->info;
   GstQuery *query = NULL;
+  GstVideoCodecFrame *frame;
 
   g_return_val_if_fail (state->caps != NULL, FALSE);
 
@@ -1477,6 +1478,34 @@
     encoder->priv->output_state_changed = FALSE;
   }
 
+  /* Push all pending pre-caps events of the oldest frame before
+   * setting caps */
+  frame = encoder->priv->frames ? encoder->priv->frames->data : NULL;
+  if (frame || encoder->priv->current_frame_events) {
+    GList **events, *l;
+
+    if (frame) {
+      events = &frame->events;
+    } else {
+      events = &encoder->priv->current_frame_events;
+    }
+
+    ret = FALSE;
+    for (l = g_list_last (*events); l;) {
+      GstEvent *event = GST_EVENT (l->data);
+      GList *tmp;
+
+      if (GST_EVENT_TYPE (event) < GST_EVENT_CAPS) {
+        gst_video_encoder_push_event (encoder, event);
+        tmp = l;
+        l = l->prev;
+        *events = g_list_delete_link (*events, tmp);
+      } else {
+        l = l->prev;
+      }
+    }
+  }
+
   ret = gst_pad_set_caps (encoder->srcpad, state->caps);
   if (!ret)
     goto done;
@@ -1538,6 +1567,7 @@
   gboolean ret = TRUE;
 
   g_return_val_if_fail (GST_IS_VIDEO_ENCODER (encoder), FALSE);
+  g_return_val_if_fail (encoder->priv->output_state, FALSE);
 
   klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
 
@@ -1571,12 +1601,27 @@
   GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
   if (G_UNLIKELY (encoder->priv->output_state_changed
           || (encoder->priv->output_state
-              && gst_pad_check_reconfigure (encoder->srcpad))))
-    gst_video_encoder_negotiate (encoder);
+              && gst_pad_check_reconfigure (encoder->srcpad)))) {
+    if (!gst_video_encoder_negotiate (encoder)) {
+      GST_DEBUG_OBJECT (encoder, "Failed to negotiate, fallback allocation");
+      goto fallback;
+    }
+  }
 
   buffer =
       gst_buffer_new_allocate (encoder->priv->allocator, size,
       &encoder->priv->params);
+  if (!buffer) {
+    GST_INFO_OBJECT (encoder, "couldn't allocate output buffer");
+    goto fallback;
+  }
+
+  GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+  return buffer;
+
+fallback:
+  buffer = gst_buffer_new_allocate (NULL, size, NULL);
 
   GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
 
@@ -1678,9 +1723,15 @@
   GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
 
   if (G_UNLIKELY (priv->output_state_changed || (priv->output_state
-              && gst_pad_check_reconfigure (encoder->srcpad))))
-    gst_video_encoder_negotiate (encoder);
-
+              && gst_pad_check_reconfigure (encoder->srcpad)))) {
+    if (!gst_video_encoder_negotiate (encoder)) {
+      if (GST_PAD_IS_FLUSHING (encoder->srcpad))
+        ret = GST_FLOW_FLUSHING;
+      else
+        ret = GST_FLOW_NOT_NEGOTIATED;
+      goto done;
+    }
+  }
 
   if (G_UNLIKELY (priv->output_state == NULL))
     goto no_output_state;
diff --git a/gst-libs/gst/video/gstvideoencoder.h b/gst-libs/gst/video/gstvideoencoder.h
index da42036..1d0b618 100644
--- a/gst-libs/gst/video/gstvideoencoder.h
+++ b/gst-libs/gst/video/gstvideoencoder.h
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_VIDEO_ENCODER_H_
diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
index 017b0ca..f36c884 100644
--- a/gst-libs/gst/video/gstvideofilter.c
+++ b/gst-libs/gst/video/gstvideofilter.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
  /**
@@ -126,13 +126,13 @@
   GstStructure *config;
   guint min, max, size;
   gboolean update_pool;
+  GstCaps *outcaps = NULL;
 
   if (gst_query_get_n_allocation_pools (query) > 0) {
     gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
 
     update_pool = TRUE;
   } else {
-    GstCaps *outcaps;
     GstVideoInfo vinfo;
 
     gst_query_parse_allocation (query, &outcaps, NULL);
@@ -148,6 +148,8 @@
 
   config = gst_buffer_pool_get_config (pool);
   gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META);
+  if (outcaps)
+    gst_buffer_pool_config_set_params (config, outcaps, size, 0, 0);
   gst_buffer_pool_set_config (pool, config);
 
   if (update_pool)
diff --git a/gst-libs/gst/video/gstvideofilter.h b/gst-libs/gst/video/gstvideofilter.h
index 8e21ba5..11ca44f 100644
--- a/gst-libs/gst/video/gstvideofilter.h
+++ b/gst-libs/gst/video/gstvideofilter.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst-libs/gst/video/gstvideometa.c b/gst-libs/gst/video/gstvideometa.c
index 50030ce..33d17ac 100644
--- a/gst-libs/gst/video/gstvideometa.c
+++ b/gst-libs/gst/video/gstvideometa.c
@@ -13,12 +13,14 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gstvideometa.h"
 
+#include <string.h>
+
 static gboolean
 gst_video_meta_transform (GstBuffer * dest, GstMeta * meta,
     GstBuffer * buffer, GQuark type, gpointer data)
@@ -385,3 +387,144 @@
   }
   return _value;
 }
+
+
+GType
+gst_video_gl_texture_upload_meta_api_get_type (void)
+{
+  static volatile GType type = 0;
+  static const gchar *tags[] = { "memory", NULL };
+
+  if (g_once_init_enter (&type)) {
+    GType _type =
+        gst_meta_api_type_register ("GstVideoGLTextureUploadMetaAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
+
+static void
+gst_video_gl_texture_upload_meta_free (GstMeta * meta, GstBuffer * buffer)
+{
+  GstVideoGLTextureUploadMeta *vmeta = (GstVideoGLTextureUploadMeta *) meta;
+
+  if (vmeta->user_data_free)
+    vmeta->user_data_free (vmeta->user_data);
+}
+
+static gboolean
+gst_video_gl_texture_upload_meta_transform (GstBuffer * dest, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
+{
+  GstVideoGLTextureUploadMeta *dmeta, *smeta;
+
+  smeta = (GstVideoGLTextureUploadMeta *) meta;
+
+  if (GST_META_TRANSFORM_IS_COPY (type)) {
+    GstMetaTransformCopy *copy = data;
+
+    if (!copy->region) {
+      /* only copy if the complete data is copied as well */
+      dmeta =
+          (GstVideoGLTextureUploadMeta *) gst_buffer_add_meta (dest,
+          GST_VIDEO_GL_TEXTURE_UPLOAD_META_INFO, NULL);
+
+      if (!dmeta)
+        return FALSE;
+
+      dmeta->texture_orientation = smeta->texture_orientation;
+      dmeta->n_textures = smeta->n_textures;
+      memcpy (dmeta->texture_type, smeta->texture_type,
+          sizeof (smeta->texture_type[0] * 4));
+      dmeta->buffer = dest;
+      dmeta->upload = smeta->upload;
+      dmeta->user_data = smeta->user_data;
+      dmeta->user_data_copy = smeta->user_data_copy;
+      dmeta->user_data_free = smeta->user_data_free;
+      if (dmeta->user_data_copy)
+        dmeta->user_data = dmeta->user_data_copy (dmeta->user_data);
+    }
+  }
+  return TRUE;
+}
+
+const GstMetaInfo *
+gst_video_gl_texture_upload_meta_get_info (void)
+{
+  static const GstMetaInfo *info = NULL;
+
+  if (g_once_init_enter (&info)) {
+    const GstMetaInfo *meta =
+        gst_meta_register (GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE,
+        "GstVideoGLTextureUploadMeta",
+        sizeof (GstVideoGLTextureUploadMeta),
+        NULL,
+        gst_video_gl_texture_upload_meta_free,
+        gst_video_gl_texture_upload_meta_transform);
+    g_once_init_leave (&info, meta);
+  }
+  return info;
+}
+
+/**
+ * gst_buffer_add_video_gl_texture_upload_meta:
+ * @buffer: a #GstBuffer
+ * @upload: the function to upload the buffer to a specific texture ID
+ * @user_data: user data for the implementor of @upload
+ * @user_data_copy: function to copy @user_data
+ * @user_data_free: function to free @user_data
+ *
+ * Attaches GstVideoGLTextureUploadMeta metadata to @buffer with the given
+ * parameters.
+ *
+ * Returns: the #GstVideoGLTextureUploadMeta on @buffer.
+ */
+GstVideoGLTextureUploadMeta *
+gst_buffer_add_video_gl_texture_upload_meta (GstBuffer * buffer,
+    GstVideoGLTextureOrientation texture_orientation, guint n_textures,
+    GstVideoGLTextureType texture_type[4], GstVideoGLTextureUpload upload,
+    gpointer user_data, GBoxedCopyFunc user_data_copy,
+    GBoxedFreeFunc user_data_free)
+{
+  GstVideoGLTextureUploadMeta *meta;
+
+  g_return_val_if_fail (buffer != NULL, NULL);
+  g_return_val_if_fail (upload != NULL, NULL);
+  g_return_val_if_fail (n_textures > 0 && n_textures < 5, NULL);
+
+  meta =
+      (GstVideoGLTextureUploadMeta *) gst_buffer_add_meta (buffer,
+      GST_VIDEO_GL_TEXTURE_UPLOAD_META_INFO, NULL);
+
+  if (!meta)
+    return NULL;
+
+  meta->texture_orientation = texture_orientation;
+  meta->n_textures = n_textures;
+  memcpy (meta->texture_type, texture_type, sizeof (texture_type[0] * 4));
+  meta->buffer = buffer;
+  meta->upload = upload;
+  meta->user_data = user_data;
+  meta->user_data_copy = user_data_copy;
+  meta->user_data_free = user_data_free;
+
+  return meta;
+}
+
+/**
+ * gst_video_gl_texture_upload_meta_upload:
+ * @meta: a #GstVideoGLTextureUploadMeta
+ * @texture_id: the texture IDs to upload to
+ *
+ * Uploads the buffer which owns the meta to a specific texture ID.
+ *
+ * Returns: %TRUE if uploading succeeded, %FALSE otherwise.
+ */
+gboolean
+gst_video_gl_texture_upload_meta_upload (GstVideoGLTextureUploadMeta * meta,
+    guint texture_id[4])
+{
+  g_return_val_if_fail (meta != NULL, FALSE);
+
+  return meta->upload (meta, texture_id);
+}
diff --git a/gst-libs/gst/video/gstvideometa.h b/gst-libs/gst/video/gstvideometa.h
index ffba35e..916a3f7 100644
--- a/gst-libs/gst/video/gstvideometa.h
+++ b/gst-libs/gst/video/gstvideometa.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_META_H__
@@ -30,6 +30,8 @@
 #define GST_VIDEO_META_INFO  (gst_video_meta_get_info())
 typedef struct _GstVideoMeta GstVideoMeta;
 
+#define GST_CAPS_FEATURE_META_GST_VIDEO_META "meta:GstVideoMeta"
+
 #define GST_VIDEO_CROP_META_API_TYPE  (gst_video_crop_meta_api_get_type())
 #define GST_VIDEO_CROP_META_INFO  (gst_video_crop_meta_get_info())
 typedef struct _GstVideoCropMeta GstVideoCropMeta;
@@ -127,8 +129,8 @@
 
 /**
  * GstVideoMetaTransform:
- * @old_info: the old #GstVideoInfo
- * @new_info: the new #GstVideoInfo
+ * @in_info: the input #GstVideoInfo
+ * @out_info: the output #GstVideoInfo
  *
  * Extra data passed to a video transform #GstMetaTransformFunction such as:
  * "gst-video-scale".
@@ -138,6 +140,89 @@
   GstVideoInfo *out_info;
 } GstVideoMetaTransform;
 
+/**
+ * GstVideoGLTextureType:
+ * @GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE: Luminance texture, GL_LUMINANCE
+ * @GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA: Luminance-alpha texture, GL_LUMINANCE_ALPHA
+ * @GST_VIDEO_GL_TEXTURE_TYPE_RGB16: RGB 565 texture, GL_RGB
+ * @GST_VIDEO_GL_TEXTURE_TYPE_RGB: RGB texture, GL_RGB
+ * @GST_VIDEO_GL_TEXTURE_TYPE_RGBA: RGBA texture, GL_RGBA
+ * @GST_VIDEO_GL_TEXTURE_TYPE_R: R texture, GL_RED_EXT
+ * @GST_VIDEO_GL_TEXTURE_TYPE_RG: RG texture, GL_RG_EXT
+ *
+ * The GL texture type.
+ */
+typedef enum
+{
+  GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE,
+  GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA,
+  GST_VIDEO_GL_TEXTURE_TYPE_RGB16,
+  GST_VIDEO_GL_TEXTURE_TYPE_RGB,
+  GST_VIDEO_GL_TEXTURE_TYPE_RGBA,
+  GST_VIDEO_GL_TEXTURE_TYPE_R,
+  GST_VIDEO_GL_TEXTURE_TYPE_RG
+} GstVideoGLTextureType;
+
+/** GstVideoGLTextureOrientation:
+ * @GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL: Top line first in memory, left row first
+ * @GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_FLIP: Bottom line first in memory, left row first
+ * @GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_NORMAL: Top line first in memory, right row first
+ * @GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_FLIP: Bottom line first in memory, right row first
+ * 
+ * The orientation of the GL texture.
+ */
+typedef enum
+{
+  GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL,
+  GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_FLIP,
+  GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_NORMAL,
+  GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_FLIP
+} GstVideoGLTextureOrientation;
+
+#define GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE (gst_video_gl_texture_upload_meta_api_get_type())
+#define GST_VIDEO_GL_TEXTURE_UPLOAD_META_INFO  (gst_video_gl_texture_upload_meta_get_info())
+
+typedef struct _GstVideoGLTextureUploadMeta GstVideoGLTextureUploadMeta;
+typedef gboolean (*GstVideoGLTextureUpload) (GstVideoGLTextureUploadMeta *meta, guint texture_id[4]);
+
+#define GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META "meta:GstVideoGLTextureUploadMeta"
+
+/**
+ * GstVideoGLTextureUploadMeta:
+ * @meta: parent #GstMeta
+ * @texture_orientation: Orientation of the textures
+ * @n_textures: Number of textures that are generated
+ * @texture_type: Type of each texture
+ *
+ * Extra buffer metadata for uploading a buffer to an OpenGL texture
+ * ID. The caller of gst_video_gl_texture_upload_meta_upload() must
+ * have OpenGL set up and call this from a thread where it is valid
+ * to upload something to an OpenGL texture.
+ */
+
+struct _GstVideoGLTextureUploadMeta {
+  GstMeta       meta;
+
+  GstVideoGLTextureOrientation texture_orientation;
+  guint n_textures;
+  GstVideoGLTextureType texture_type[4];
+
+  /* <private> */
+  GstBuffer *buffer;
+  GstVideoGLTextureUpload upload;
+
+  gpointer      user_data;
+  GBoxedCopyFunc user_data_copy;
+  GBoxedFreeFunc user_data_free;
+};
+
+#define gst_buffer_get_video_gl_texture_upload_meta(b) ((GstVideoGLTextureUploadMeta*)gst_buffer_get_meta((b),GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE))
+GstVideoGLTextureUploadMeta * gst_buffer_add_video_gl_texture_upload_meta (GstBuffer *buffer, GstVideoGLTextureOrientation texture_orientation, guint n_textures, GstVideoGLTextureType texture_type[4], GstVideoGLTextureUpload upload, gpointer user_data, GBoxedCopyFunc user_data_copy, GBoxedFreeFunc user_data_free);
+gboolean gst_video_gl_texture_upload_meta_upload (GstVideoGLTextureUploadMeta *meta, guint texture_id[4]);
+
+GType gst_video_gl_texture_upload_meta_api_get_type (void);
+const GstMetaInfo * gst_video_gl_texture_upload_meta_get_info (void);
+
 G_END_DECLS
 
 #endif /* __GST_VIDEO_META_H__ */
diff --git a/gst-libs/gst/video/gstvideopool.c b/gst-libs/gst/video/gstvideopool.c
index c5a7881..63d2a2c 100644
--- a/gst-libs/gst/video/gstvideopool.c
+++ b/gst-libs/gst/video/gstvideopool.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gst/video/gstvideometa.h"
diff --git a/gst-libs/gst/video/gstvideopool.h b/gst-libs/gst/video/gstvideopool.h
index c1b3e1e..99f0863 100644
--- a/gst-libs/gst/video/gstvideopool.h
+++ b/gst-libs/gst/video/gstvideopool.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_POOL_H__
diff --git a/gst-libs/gst/video/gstvideosink.c b/gst-libs/gst/video/gstvideosink.c
index ee90036..4704593 100644
--- a/gst-libs/gst/video/gstvideosink.c
+++ b/gst-libs/gst/video/gstvideosink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst-libs/gst/video/gstvideosink.h b/gst-libs/gst/video/gstvideosink.h
index ac8dc95..23b97db 100644
--- a/gst-libs/gst/video/gstvideosink.h
+++ b/gst-libs/gst/video/gstvideosink.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: turn this into a proper base class */
diff --git a/gst-libs/gst/video/gstvideoutils.c b/gst-libs/gst/video/gstvideoutils.c
index 001e511..b4bf009 100644
--- a/gst-libs/gst/video/gstvideoutils.c
+++ b/gst-libs/gst/video/gstvideoutils.c
@@ -15,14 +15,15 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
+#include <gst/video/video.h>
 #include "gstvideoutils.h"
 
 #include <string.h>
diff --git a/gst-libs/gst/video/gstvideoutils.h b/gst-libs/gst/video/gstvideoutils.h
index 63833e2..2851521 100644
--- a/gst-libs/gst/video/gstvideoutils.h
+++ b/gst-libs/gst/video/gstvideoutils.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_VIDEO_UTILS_H_
diff --git a/gst-libs/gst/video/navigation.c b/gst-libs/gst/video/navigation.c
index 0bcbc1f..b743093 100644
--- a/gst-libs/gst/video/navigation.c
+++ b/gst-libs/gst/video/navigation.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -278,9 +278,7 @@
   va_end (ap);
 
   structure = gst_query_writable_structure (query);
-  gst_structure_set_value (structure, "commands", &list);
-
-  g_value_unset (&list);
+  gst_structure_take_value (structure, "commands", &list);
 }
 
 /**
@@ -307,9 +305,7 @@
     gst_query_list_add_command (&list, cmds[i]);
   }
   structure = gst_query_writable_structure (query);
-  gst_structure_set_value (structure, "commands", &list);
-
-  g_value_unset (&list);
+  gst_structure_take_value (structure, "commands", &list);
 }
 
 /**
diff --git a/gst-libs/gst/video/navigation.h b/gst-libs/gst/video/navigation.h
index 2cec16d..3630dc3 100644
--- a/gst-libs/gst/video/navigation.h
+++ b/gst-libs/gst/video/navigation.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_NAVIGATION_H__
diff --git a/gst-libs/gst/video/video-blend.c b/gst-libs/gst/video/video-blend.c
index 9cdccbb..835b7bb 100644
--- a/gst-libs/gst/video/video-blend.c
+++ b/gst-libs/gst/video/video-blend.c
@@ -20,8 +20,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -164,11 +164,13 @@
   guint dest_stride;
   guint src_stride;
   guint8 *dest_pixels;
-  guint8 *tmpbuf = g_malloc (dest_width * 8 * 4);
+  guint8 *tmpbuf;
   GstVideoFrame src_frame, dest_frame;
 
   g_return_if_fail (dest_buffer != NULL);
 
+  tmpbuf = g_malloc (dest_width * 8 * 4);
+
   gst_video_info_init (dest);
   gst_video_info_set_format (dest, GST_VIDEO_INFO_FORMAT (src),
       dest_width, dest_height);
diff --git a/gst-libs/gst/video/video-blend.h b/gst-libs/gst/video/video-blend.h
index 906752b..88c91fa 100644
--- a/gst-libs/gst/video/video-blend.h
+++ b/gst-libs/gst/video/video-blend.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst-libs/gst/video/video-chroma.c b/gst-libs/gst/video/video-chroma.c
new file mode 100644
index 0000000..ed2eb0a
--- /dev/null
+++ b/gst-libs/gst/video/video-chroma.c
@@ -0,0 +1,818 @@
+/* GStreamer
+ * Copyright (C) 2013 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+#include <stdio.h>
+
+#include "video-format.h"
+
+typedef struct
+{
+  const gchar *name;
+  GstVideoChromaSite site;
+} ChromaSiteInfo;
+
+static const ChromaSiteInfo chromasite[] = {
+  {"jpeg", GST_VIDEO_CHROMA_SITE_JPEG},
+  {"mpeg2", GST_VIDEO_CHROMA_SITE_MPEG2},
+  {"dv", GST_VIDEO_CHROMA_SITE_DV}
+};
+
+/**
+ * gst_video_chroma_from_string:
+ * @s: a chromasite string
+ *
+ * Convert @s to a #GstVideoChromaSite
+ *
+ * Returns: a #GstVideoChromaSite or %GST_VIDEO_CHROMA_SITE_UNKNOWN when @s does
+ * not contain a valid chroma description.
+ */
+GstVideoChromaSite
+gst_video_chroma_from_string (const gchar * s)
+{
+  gint i;
+  for (i = 0; i < G_N_ELEMENTS (chromasite); i++) {
+    if (g_str_equal (chromasite[i].name, s))
+      return chromasite[i].site;
+  }
+  return GST_VIDEO_CHROMA_SITE_UNKNOWN;
+}
+
+/**
+ * gst_video_chroma_to_string:
+ * @site: a #GstVideoChromaSite
+ *
+ * Converts @site to its string representation.
+ *
+ * Returns: a string describing @site.
+ */
+const gchar *
+gst_video_chroma_to_string (GstVideoChromaSite site)
+{
+  gint i;
+  for (i = 0; i < G_N_ELEMENTS (chromasite); i++) {
+    if (chromasite[i].site == site)
+      return chromasite[i].name;
+  }
+  return NULL;
+}
+
+struct _GstVideoChromaResample
+{
+  GstVideoChromaMethod method;
+  GstVideoChromaSite site;
+  GstVideoChromaFlags flags;
+  GstVideoFormat format;
+  gint h_factor, v_factor;
+  guint n_lines;
+  gint offset;
+  void (*h_resample) (GstVideoChromaResample * resample, gpointer pixels,
+      gint width);
+  void (*v_resample) (GstVideoChromaResample * resample, gpointer lines[],
+      gint width);
+};
+
+
+#define PR(i)          (p[2 + 4 * (i)])
+#define PB(i)          (p[3 + 4 * (i)])
+
+#define PR0(i)         (l0[2 + 4 * (i)])
+#define PR1(i)         (l1[2 + 4 * (i)])
+#define PR2(i)         (l2[2 + 4 * (i)])
+#define PR3(i)         (l3[2 + 4 * (i)])
+#define PB0(i)         (l0[3 + 4 * (i)])
+#define PB1(i)         (l1[3 + 4 * (i)])
+#define PB2(i)         (l2[3 + 4 * (i)])
+#define PB3(i)         (l3[3 + 4 * (i)])
+
+#define FILT_1_1(a,b)          ((a) + (b) + 1) >> 1
+#define FILT_1_1_1_1(a,b,c,d)  ((a) + (b) + (c) + (d) + 2) >> 2
+
+#define FILT_3_1(a,b)          (3*(a) + (b) + 2) >> 2
+#define FILT_1_3(a,b)          ((a) + 3*(b) + 2) >> 2
+#define FILT_1_2_1(a,b,c)      ((a) + 2*(b) + (c) + 2) >> 2
+
+#define FILT_7_1(a,b)          (7*(a) + 1*(b) + 4) >> 3
+#define FILT_1_7(a,b)          (1*(a) + 7*(b) + 4) >> 3
+
+#define FILT_5_3(a,b)          (5*(a) + 3*(b) + 4) >> 3
+#define FILT_3_5(a,b)          (3*(a) + 5*(b) + 4) >> 3
+
+#define FILT_10_3_2_1(a,b,c,d)      (10*(a) + 3*(b) + 2*(c) + (d) + 8) >> 16
+#define FILT_1_2_3_10(a,b,c,d)      ((a) + 2*(b) + 3*(c) + 10*(d) + 8) >> 16
+#define FILT_1_2_3_4_3_2_1(a,b,c,d,e,f,g) ((a) + 2*(b) + 3*(c) + 4*(d) + 3*(e) + 2*(f) + (g) + 8) >> 16
+
+/* 2x horizontal upsampling without cositing
+ *
+ * +----------    a
+ * | +------ (3*a +   b + 2) >> 2
+ * | | +---- (  a + 3*b + 2) >> 2
+ * v v v
+ * O-O-O-O-
+ *  x   x
+ *  a   b
+ */
+#define MAKE_UPSAMPLE_H2(type)                                          \
+static void                                                             \
+video_chroma_up_h2_##type (GstVideoChromaResample *resample,            \
+    gpointer pixels, gint width)                                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+  type tr0, tr1;                                                        \
+  type tb0, tb1;                                                        \
+                                                                        \
+  tr1 = PR(0);                                                          \
+  tb1 = PB(0);                                                          \
+  for (i = 1; i < width - 1; i += 2) {                                  \
+    tr0 = tr1, tr1 = PR(i+1);                                           \
+    tb0 = tb1, tb1 = PB(i+1);                                           \
+                                                                        \
+    PR(i) = FILT_3_1 (tr0, tr1);                                        \
+    PB(i) = FILT_3_1 (tb0, tb1);                                        \
+    PR(i+1) = FILT_1_3 (tr0, tr1);                                      \
+    PB(i+1) = FILT_1_3 (tb0, tb1);                                      \
+  }                                                                     \
+}
+
+/* 2x vertical upsampling without cositing
+ *
+ *   O--O--O-  <---- a
+ * a x  x  x
+ *   O--O--O-  <---- (3*a +   b + 2) >> 2
+ *   O--O--O-  <-----(  a + 3*b + 2) >> 2
+ * b x  x  x
+ *   O--O--O-  <---- b
+ */
+#define MAKE_UPSAMPLE_V2(type)                                          \
+static void                                                             \
+video_chroma_up_v2_##type (GstVideoChromaResample *resample,            \
+    gpointer lines[], gint width)                                       \
+{                                                                       \
+  gint i;                                                               \
+  type *l0 = lines[0];                                                  \
+  type *l1 = lines[1];                                                  \
+  type tr0, tr1;                                                        \
+  type tb0, tb1;                                                        \
+                                                                        \
+  if (resample->h_resample) {                                           \
+    resample->h_resample (resample, l0, width);                         \
+    if (l0 != l1)                                                       \
+      resample->h_resample (resample, l1, width);                       \
+  }                                                                     \
+  if (l0 != l1) {                                                       \
+    for (i = 0; i < width; i++) {                                       \
+      tr0 = PR0(i), tr1 = PR1(i);                                       \
+      tb0 = PB0(i), tb1 = PB1(i);                                       \
+                                                                        \
+      PR0(i) = FILT_3_1 (tr0, tr1);                                     \
+      PB0(i) = FILT_3_1 (tb0, tb1);                                     \
+      PR1(i) = FILT_1_3 (tr0, tr1);                                     \
+      PB1(i) = FILT_1_3 (tb0, tb1);                                     \
+    }                                                                   \
+  }                                                                     \
+}
+/* 2x vertical upsampling interlaced without cositing
+ *
+ *   even           odd
+ *
+ *   O--O--O--------------- <---  a
+ * a x  x  x
+ *   --------------O--O--O- <---  c
+ *   O--O--O--------------- <--- (5*a + 3*b + 4) >> 3
+ * c               x  x  x
+ *   --------------O--O--O- <--- (7*c +   d + 4) >> 3
+ *   O--O--O--------------- <--- (  a + 7*b + 4) >> 3
+ * b x  x  x
+ *   --------------O--O--O- <--- (3*c + 5*d + 4) >> 3
+ *   O--O--O---------------
+ * d               x  x  x
+ *   --------------O--O--O-
+ */
+#define MAKE_UPSAMPLE_VI2(type)                                         \
+static void                                                             \
+video_chroma_up_vi2_##type (GstVideoChromaResample *resample,           \
+    gpointer lines[], gint width)                                       \
+{                                                                       \
+  gint i;                                                               \
+  type *l0 = lines[0];                                                  \
+  type *l1 = lines[1];                                                  \
+  type *l2 = lines[2];                                                  \
+  type *l3 = lines[3];                                                  \
+  type tr0, tr1, tr2, tr3;                                              \
+  type tb0, tb1, tb2, tb3;                                              \
+                                                                        \
+  if (resample->h_resample) {                                           \
+    if (l0 != l1) {                                                     \
+      resample->h_resample (resample, l0, width);                       \
+      resample->h_resample (resample, l1, width);                       \
+    }                                                                   \
+    if (l2 != l3) {                                                     \
+      resample->h_resample (resample, l2, width);                       \
+      resample->h_resample (resample, l3, width);                       \
+    }                                                                   \
+  }                                                                     \
+  if (l0 != l1 && l2 != l3) {                                           \
+    for (i = 0; i < width; i++) {                                       \
+      tr0 = PR0(i), tr2 = PR2(i);                                       \
+      tb0 = PB0(i), tb2 = PB2(i);                                       \
+      tr1 = PR1(i), tr3 = PR3(i);                                       \
+      tb1 = PB1(i), tb3 = PB3(i);                                       \
+                                                                        \
+      PR0(i) = FILT_5_3 (tr0, tr2);                                     \
+      PB0(i) = FILT_5_3 (tb0, tb2);                                     \
+      PR1(i) = FILT_7_1 (tr1, tr3);                                     \
+      PB1(i) = FILT_7_1 (tb1, tb3);                                     \
+      PR2(i) = FILT_1_7 (tr0, tr2);                                     \
+      PB2(i) = FILT_1_7 (tb0, tb2);                                     \
+      PR3(i) = FILT_3_5 (tr1, tr3);                                     \
+      PB3(i) = FILT_3_5 (tb1, tb3);                                     \
+    }                                                                   \
+  }                                                                     \
+}
+
+/* 2x horizontal downsampling without cositing
+ *
+ *  +------ (a + b+ 1) >> 1
+ *  |
+ *  v
+ * -O---O--
+ * x x x x
+ * a b c d
+ */
+#define MAKE_DOWNSAMPLE_H2(type)                                        \
+static void                                                             \
+video_chroma_down_h2_##type (GstVideoChromaResample *resample,         \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+                                                                        \
+  for (i = 0; i < width - 1; i += 2) {                                  \
+    type tr0 = PR(i), tr1 = PR(i+1);                                    \
+    type tb0 = PB(i), tb1 = PB(i+1);                                    \
+                                                                        \
+    PR(i) = FILT_1_1 (tr0, tr1);                                        \
+    PB(i) = FILT_1_1 (tb0, tb1);                                        \
+  }                                                                     \
+}
+/* 2x vertical downsampling without cositing
+ *
+ * a x--x--x-
+ *   O  O  O <---- (a + b + 1) >> 1
+ * b x--x--x-
+ * c x--x--x-
+ *   O  O  O
+ * d x--x--x-
+ */
+#define MAKE_DOWNSAMPLE_V2(type)                                        \
+static void                                                             \
+video_chroma_down_v2_##type (GstVideoChromaResample *resample,          \
+    gpointer lines[], gint width)                                       \
+{                                                                       \
+  gint i;                                                               \
+  type *l0 = lines[0];                                                  \
+  type *l1 = lines[1];                                                  \
+                                                                        \
+  if (resample->h_resample) {                                           \
+    resample->h_resample (resample, l0, width);                         \
+    if (l0 != l1)                                                       \
+      resample->h_resample (resample, l1, width);                       \
+  }                                                                     \
+  if (l0 != l1) {                                                       \
+    for (i = 0; i < width; i++) {                                       \
+      type tr0 = PR0(i), tr1 = PR1(i);                                  \
+      type tb0 = PB0(i), tb1 = PB1(i);                                  \
+                                                                        \
+      PR0(i) = FILT_1_1 (tr0, tr1);                                     \
+      PB0(i) = FILT_1_1 (tb0, tb1);                                     \
+    }                                                                   \
+  }                                                                     \
+}
+
+MAKE_UPSAMPLE_H2 (guint16);
+MAKE_UPSAMPLE_H2 (guint8);
+MAKE_UPSAMPLE_V2 (guint16);
+MAKE_UPSAMPLE_V2 (guint8);
+MAKE_UPSAMPLE_VI2 (guint16);
+MAKE_UPSAMPLE_VI2 (guint8);
+MAKE_DOWNSAMPLE_H2 (guint16);
+MAKE_DOWNSAMPLE_H2 (guint8);
+MAKE_DOWNSAMPLE_V2 (guint16);
+MAKE_DOWNSAMPLE_V2 (guint8);
+
+/* 4x horizontal upsampling without cositing
+ *
+ *     +---------- (7*a +   b + 4) >> 3
+ *     | +-------- (5*a + 3*b + 4) >> 3
+ * a a | | +------ (3*a + 5*b + 4) >> 3
+ * | | | | | +---- (  a + 7*b + 4) >> 3
+ * v v v v v v
+ * O-O-O-O-O-O-O-O-
+ *    x       x
+ *    a       b
+ */
+#define MAKE_UPSAMPLE_H4(type)                                          \
+static void                                                             \
+video_chroma_up_h4_##type (GstVideoChromaResample *resample,           \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+  type tr0, tr1;                                                        \
+  type tb0, tb1;                                                        \
+                                                                        \
+  tr1 = PR(0);                                                          \
+  tb1 = PB(0);                                                          \
+  for (i = 2; i < width - 3; i += 4) {                                  \
+    tr0 = tr1, tr1 = PR(i+2);                                           \
+    tb0 = tb1, tb1 = PB(i+2);                                           \
+                                                                        \
+    PR(i) = FILT_7_1 (tr0, tr1);                                        \
+    PB(i) = FILT_7_1 (tb0, tb1);                                        \
+    PR(i+1) = FILT_5_3 (tr0, tr1);                                      \
+    PB(i+1) = FILT_5_3 (tb0, tb1);                                      \
+    PR(i+2) = FILT_3_5 (tr0, tr1);                                      \
+    PB(i+2) = FILT_3_5 (tb0, tb1);                                      \
+    PR(i+3) = FILT_1_7 (tr0, tr1);                                      \
+    PB(i+3) = FILT_1_7 (tb0, tb1);                                      \
+  }                                                                     \
+}
+
+/* 4x vertical upsampling without cositing
+ *
+ *   O--O--O-  <---- a
+ *   O--O--O-  <---- a
+ * a x  x  x
+ *   O--O--O-  <---- (7*a +   b + 4) >> 3
+ *   O--O--O-  <---- (5*a + 3*b + 4) >> 3
+ *   O--O--O-  <---- (3*a + 5*b + 4) >> 3
+ *   O--O--O-  <-----(  a + 7*b + 4) >> 3
+ * b x  x  x
+ *   O--O--O-
+ *   O--O--O-
+ */
+#define MAKE_UPSAMPLE_V4(type)                                          \
+static void                                                             \
+video_chroma_up_v4_##type (GstVideoChromaResample *resample,            \
+    gpointer lines[], gint width)                                       \
+{                                                                       \
+  gint i;                                                               \
+  type *l0 = lines[0];                                                  \
+  type *l1 = lines[1];                                                  \
+  type *l2 = lines[2];                                                  \
+  type *l3 = lines[3];                                                  \
+  type tr0, tr1;                                                        \
+  type tb0, tb1;                                                        \
+                                                                        \
+  if (resample->h_resample) {                                           \
+    if (l0 != l1) {                                                     \
+      resample->h_resample (resample, l0, width);                       \
+      resample->h_resample (resample, l1, width);                       \
+    }                                                                   \
+    if (l2 != l3) {                                                     \
+      resample->h_resample (resample, l2, width);                       \
+      resample->h_resample (resample, l3, width);                       \
+    }                                                                   \
+  }                                                                     \
+  if (l0 != l1 && l2 != l3) {                                           \
+    for (i = 0; i < width; i++) {                                       \
+      tr0 = PR0(i), tr1 = PR2(i);                                       \
+      tb0 = PB0(i), tb1 = PB2(i);                                       \
+                                                                        \
+      PR0(i) = FILT_7_1 (tr0, tr1);                                     \
+      PB0(i) = FILT_7_1 (tb0, tb1);                                     \
+      PR1(i) = FILT_5_3 (tr0, tr1);                                     \
+      PB1(i) = FILT_5_3 (tb0, tb1);                                     \
+      PR2(i) = FILT_3_5 (tr0, tr1);                                     \
+      PB2(i) = FILT_3_5 (tb0, tb1);                                     \
+      PR3(i) = FILT_1_7 (tr0, tr1);                                     \
+      PB3(i) = FILT_1_7 (tb0, tb1);                                     \
+    }                                                                   \
+  }                                                                     \
+}
+
+/* 4x horizontal downsampling without cositing
+ *
+ *    +------ (a + b + c + d + 2) >> 2
+ *    |
+ *    v
+ * ---O-------O---
+ * x x x x x x x x
+ * a b c d e f g h
+ */
+#define MAKE_DOWNSAMPLE_H4(type)                                        \
+static void                                                             \
+video_chroma_down_h4_##type (GstVideoChromaResample *resample,         \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+                                                                        \
+  for (i = 0; i < width - 4; i += 4) {                                  \
+    type tr0 = PR(i), tr1 = PR(i+1), tr2 = PR(i+2), tr3 = PR(i+3);      \
+    type tb0 = PB(i), tb1 = PB(i+1), tb2 = PB(i+2), tb3 = PB(i+3);      \
+                                                                        \
+    PR(i) = FILT_1_1_1_1 (tr0, tr1, tr2, tr3);                          \
+    PB(i) = FILT_1_1_1_1 (tb0, tb1, tb2, tb3);                          \
+  }                                                                     \
+}
+
+/* 4x vertical downsampling without cositing
+ *
+ * a x--x--x-
+ * b x--x--x-
+ *   O  O  O   <---- (a + b + c + d + 2) >> 2
+ * c x--x--x-
+ * d x--x--x-
+ * e x--x--x-
+ * f x--x--x-
+ *   O  O  O
+ * g x--x--x-
+ * h x--x--x-
+ */
+#define MAKE_DOWNSAMPLE_V4(type)                                        \
+static void                                                             \
+video_chroma_down_v4_##type (GstVideoChromaResample *resample,          \
+    gpointer lines[], gint width)                                       \
+{                                                                       \
+  gint i;                                                               \
+  type *l0 = lines[0];                                                  \
+  type *l1 = lines[1];                                                  \
+  type *l2 = lines[2];                                                  \
+  type *l3 = lines[3];                                                  \
+                                                                        \
+  if (resample->h_resample) {                                           \
+    resample->h_resample (resample, l0, width);                         \
+    if (l0 != l1)                                                       \
+      resample->h_resample (resample, l1, width);                       \
+    if (l1 != l2)                                                       \
+      resample->h_resample (resample, l2, width);                       \
+    if (l2 != l3)                                                       \
+      resample->h_resample (resample, l3, width);                       \
+  }                                                                     \
+  for (i = 0; i < width; i++) {                                         \
+    type tr0 = PR0(i), tr1 = PR1(i);                                    \
+    type tr2 = PR2(i), tr3 = PR3(i);                                    \
+    type tb0 = PB0(i), tb1 = PB1(i);                                    \
+    type tb2 = PB2(i), tb3 = PB3(i);                                    \
+                                                                        \
+    PR0(i) = FILT_1_1_1_1 (tr0, tr1, tr2, tr3);                         \
+    PB0(i) = FILT_1_1_1_1 (tb0, tb1, tb2, tb3);                         \
+  }                                                                     \
+}
+
+MAKE_UPSAMPLE_H4 (guint16);
+MAKE_UPSAMPLE_H4 (guint8);
+MAKE_UPSAMPLE_V4 (guint16);
+MAKE_UPSAMPLE_V4 (guint8);
+MAKE_DOWNSAMPLE_H4 (guint16);
+MAKE_DOWNSAMPLE_H4 (guint8);
+MAKE_DOWNSAMPLE_V4 (guint16);
+MAKE_DOWNSAMPLE_V4 (guint8);
+
+/* 2x upsampling with cositing
+ *
+ * a +------ (a + b + 1) >> 1
+ * | |
+ * v v
+ * O-O-O-O
+ * x   x
+ * a   b
+ */
+#define MAKE_UPSAMPLE_H2_CS(type)                                       \
+static void                                                             \
+video_chroma_up_h2_cs_##type (GstVideoChromaResample *resample,        \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+                                                                        \
+  for (i = 1; i < width - 1; i += 2) {                                  \
+    PR(i) = FILT_1_1 (PR(i-1), PR(i+1));                                \
+    PB(i) = FILT_1_1 (PB(i-1), PB(i+1));                                \
+  }                                                                     \
+}
+/* 2x downsampling with cositing
+ *
+ * a
+ * |   +------ (b + 2*c + d + 2) >> 2
+ * v   v
+ * O---O---O---
+ * x x x x x x
+ * a b c d e f
+ */
+#define MAKE_DOWNSAMPLE_H2_CS(type)                                     \
+static void                                                             \
+video_chroma_down_h2_cs_##type (GstVideoChromaResample *resample,      \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+                                                                        \
+  if (width < 2)                                                        \
+    return;                                                             \
+                                                                        \
+  PR(0) = FILT_3_1 (PR(0), PR(1));                                      \
+  PB(0) = FILT_3_1 (PB(0), PB(1));                                      \
+                                                                        \
+  for (i = 2; i < width - 2; i += 2) {                                  \
+    PR(i) = FILT_1_2_1 (PR(i-1), PR(i), PR(i+1));                       \
+    PB(i) = FILT_1_2_1 (PB(i-1), PB(i), PB(i+1));                       \
+  }                                                                     \
+  if (i < width) {                                                      \
+    PR(i) = FILT_1_3 (PR(i-1), PR(i));                                  \
+    PB(i) = FILT_1_3 (PB(i-1), PB(i));                                  \
+  }                                                                     \
+}
+
+MAKE_UPSAMPLE_H2_CS (guint16);
+MAKE_UPSAMPLE_H2_CS (guint8);
+MAKE_DOWNSAMPLE_H2_CS (guint16);
+MAKE_DOWNSAMPLE_H2_CS (guint8);
+
+/* 4x upsampling with cositing
+ *
+ *   +---------- (3*a +   b + 2) >> 2
+ * a | +-------- (  a +   b + 1) >> 1
+ * | | | +------ (  a + 3*b + 2) >> 2
+ * v v v v
+ * O-O-O-O-O-O-O-O
+ * x       x
+ * a       b
+ */
+#define MAKE_UPSAMPLE_H4_CS(type)                                       \
+static void                                                             \
+video_chroma_up_h4_cs_##type (GstVideoChromaResample *resample,        \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                        \
+  gint i;                                                               \
+                                                                        \
+  for (i = 0; i < width - 4; i += 4) {                                  \
+    type tr0 = PR(i), tr1 = PR(i+4);                                    \
+    type tb0 = PB(i), tb1 = PB(i+4);                                    \
+                                                                        \
+    PR(i+1) = FILT_3_1 (tr0, tr1);                                      \
+    PB(i+1) = FILT_3_1 (tb0, tb1);                                      \
+    PR(i+2) = FILT_1_1 (tr0, tr1);                                      \
+    PB(i+2) = FILT_1_1 (tb0, tb1);                                      \
+    PR(i+3) = FILT_1_3 (tr0, tr1);                                      \
+    PB(i+3) = FILT_1_3 (tb0, tb1);                                      \
+  }                                                                     \
+}
+/* 4x downsampling with cositing
+ *
+ * a
+ * |       +------ (b + 2*c + 3*d + 4*e + 3*f + 2*g + h + 8) >> 16
+ * v       v
+ * O-------O-------
+ * x x x x x x x x
+ * a b c d e f g h
+ */
+#define MAKE_DOWNSAMPLE_H4_CS(type)                                     \
+static void                                                             \
+video_chroma_down_h4_cs_##type (GstVideoChromaResample *resample,      \
+    gpointer pixels, gint width)                        \
+{                                                                       \
+  type *p = pixels;                                                     \
+  gint i;                                                               \
+                                                                        \
+  if (width < 4)                                                        \
+    return;                                                             \
+                                                                        \
+  PR(0) = FILT_10_3_2_1 (PR(0), PR(1), PR(2), PR(3));                   \
+  PB(0) = FILT_10_3_2_1 (PB(0), PB(1), PB(2), PB(3));                   \
+                                                                        \
+  for (i = 4; i < width - 4; i += 4) {                                  \
+    PR(i) = FILT_1_2_3_4_3_2_1 (PR(i-3), PR(i-2), PR(i-1), PR(i), PR(i+1), PR(i+2), PR(i+3));   \
+    PB(i) = FILT_1_2_3_4_3_2_1 (PB(i-3), PB(i-2), PB(i-1), PB(i), PB(i+1), PB(i+2), PB(i+3));   \
+  }                                                                     \
+  if (i < width) {                                                      \
+    PR(i) = FILT_1_2_3_10 (PR(i-3), PR(i-2), PR(i-1), PR(i));           \
+    PB(i) = FILT_1_2_3_10 (PB(i-3), PB(i-2), PB(i-1), PB(i));           \
+  }                                                                     \
+}
+
+MAKE_UPSAMPLE_H4_CS (guint16);
+MAKE_UPSAMPLE_H4_CS (guint8);
+MAKE_DOWNSAMPLE_H4_CS (guint16);
+MAKE_DOWNSAMPLE_H4_CS (guint8);
+
+typedef struct
+{
+  void (*resample) (GstVideoChromaResample * resample, gpointer pixels,
+      gint width);
+} HorizResampler;
+
+static const HorizResampler h_resamplers[] = {
+  {NULL},
+  {video_chroma_up_h2_guint8},
+  {video_chroma_down_h2_guint8},
+  {video_chroma_up_h2_guint16},
+  {video_chroma_down_h2_guint16},
+  {video_chroma_up_h2_cs_guint8},
+  {video_chroma_down_h2_cs_guint8},
+  {video_chroma_up_h2_cs_guint16},
+  {video_chroma_down_h2_cs_guint16},
+  {video_chroma_up_h4_guint8},
+  {video_chroma_down_h4_guint8},
+  {video_chroma_up_h4_guint16},
+  {video_chroma_down_h4_guint16},
+  {video_chroma_up_h4_cs_guint8},
+  {video_chroma_down_h4_cs_guint8},
+  {video_chroma_up_h4_cs_guint16},
+  {video_chroma_down_h4_cs_guint16}
+};
+
+typedef struct
+{
+  void (*resample) (GstVideoChromaResample * resample, gpointer lines[],
+      gint width);
+  guint n_lines;
+  gint offset;
+} VertResampler;
+
+static void
+video_chroma_none (GstVideoChromaResample * resample,
+    gpointer lines[], gint width)
+{
+  if (resample->h_resample)
+    resample->h_resample (resample, lines[0], width);
+}
+
+static const VertResampler v_resamplers[] = {
+  {video_chroma_none, 1, 0},
+  {video_chroma_up_v2_guint8, 2, -1},
+  {video_chroma_down_v2_guint8, 2, 0},
+  {video_chroma_up_v2_guint16, 2, -1},
+  {video_chroma_down_v2_guint16, 2, 0},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {video_chroma_up_v4_guint8, 4, -2},
+  {video_chroma_down_v4_guint8, 4, 0},
+  {video_chroma_up_v4_guint16, 4, -2},
+  {video_chroma_down_v4_guint16, 4, 0},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {video_chroma_up_vi2_guint8, 4, -2},
+  {NULL},
+  {video_chroma_up_vi2_guint16, 4, -2},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL},
+  {NULL}
+};
+
+/**
+ * gst_video_chroma_resample_new:
+ * @method: a #GstVideoChromaMethod
+ * @site: a #GstVideoChromaSite
+ * @flags: #GstVideoChromaFlags
+ * @format: the #GstVideoFormat
+ * @h_factor: horizontal resampling factor
+ * @v_factor: vertical resampling factor
+ *
+ * Create a new resampler object for the given parameters. When @h_factor or
+ * @v_factoris > 0, upsampling will be used, otherwise subsampling is
+ * performed.
+ *
+ * Returns: a new #GstVideoChromaResample that should be freed with
+ *     gst_video_chroma_resample_free() after usage.
+ */
+GstVideoChromaResample *
+gst_video_chroma_resample_new (GstVideoChromaMethod method,
+    GstVideoChromaSite site, GstVideoChromaFlags flags,
+    GstVideoFormat format, gint h_factor, gint v_factor)
+{
+  GstVideoChromaResample *result;
+  guint cosite, h_index, v_index, bits;
+
+  /* no resampling */
+  if (h_factor == 0 && v_factor == 0)
+    return NULL;
+
+  if (format == GST_VIDEO_FORMAT_AYUV)
+    bits = 8;
+  else if (format == GST_VIDEO_FORMAT_AYUV64)
+    bits = 16;
+  else
+    return NULL;
+
+  cosite = (site & GST_VIDEO_CHROMA_SITE_H_COSITED ? 1 : 0);
+  if (h_factor == 0)
+    h_index = 0;
+  else
+    h_index =
+        ((ABS (h_factor) - 1) * 8) + (cosite ? 4 : 0) + (bits ==
+        16 ? 2 : 0) + (h_factor < 0 ? 1 : 0) + 1;
+  cosite = (site & GST_VIDEO_CHROMA_SITE_V_COSITED ? 1 : 0);
+  if (v_factor == 0)
+    v_index = 0;
+  else
+    v_index =
+        ((ABS (v_factor) - 1) * 8) + (cosite ? 4 : 0) + (bits ==
+        16 ? 2 : 0) + (v_factor < 0 ? 1 : 0) + 1;
+
+  result = g_slice_new (GstVideoChromaResample);
+  result->method = method;
+  result->site = site;
+  result->flags = flags;
+  result->format = format;
+  result->h_factor = h_factor;
+  result->v_factor = v_factor;
+  result->h_resample = h_resamplers[h_index].resample;
+  result->v_resample = v_resamplers[v_index].resample;
+  result->n_lines = v_resamplers[v_index].n_lines;
+  result->offset = v_resamplers[v_index].offset;
+
+  GST_DEBUG ("select resample %p %d, factor %d, "
+      "cosite %d, bits %d", result, h_index, h_factor, cosite, bits);
+
+  return result;
+}
+
+/**
+ * gst_video_chroma_resample_get_info:
+ * @resample: a #GstVideoChromaResample
+ * @n_lines: the number of input lines
+ * @offset: the first line
+ *
+ * The resampler must be fed @n_lines at a time. The first line should be
+ * at @offset.
+ */
+void
+gst_video_chroma_resample_get_info (GstVideoChromaResample * resample,
+    guint * n_lines, gint * offset)
+{
+  g_return_if_fail (resample != NULL);
+
+  if (n_lines)
+    *n_lines = resample->n_lines;
+  if (offset)
+    *offset = resample->offset;
+}
+
+/**
+ * gst_video_chroma_resample_free:
+ * @resample: a #GstVideoChromaResample
+ *
+ * Free @resample
+ */
+void
+gst_video_chroma_resample_free (GstVideoChromaResample * resample)
+{
+  g_return_if_fail (resample != NULL);
+
+  g_slice_free (GstVideoChromaResample, resample);
+}
+
+/**
+ * gst_video_chroma_resample:
+ * @resample: a #GstVideoChromaResample
+ * @lines: pixel lines
+ * @width: the number of pixels on one line
+ *
+ * Perform resampling of @width chroma pixels in @lines.
+ */
+void
+gst_video_chroma_resample (GstVideoChromaResample * resample,
+    gpointer lines[], gint width)
+{
+  g_return_if_fail (resample != NULL);
+
+  resample->v_resample (resample, lines, width);
+}
diff --git a/gst-libs/gst/video/video-chroma.h b/gst-libs/gst/video/video-chroma.h
new file mode 100644
index 0000000..8c450d2
--- /dev/null
+++ b/gst-libs/gst/video/video-chroma.h
@@ -0,0 +1,100 @@
+/* GStreamer
+ * Copyright (C) <2013> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_VIDEO_CHROMA_H__
+#define __GST_VIDEO_CHROMA_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GstVideoChromaSite:
+ * @GST_VIDEO_CHROMA_SITE_UNKNOWN: unknown cositing
+ * @GST_VIDEO_CHROMA_SITE_NONE: no cositing
+ * @GST_VIDEO_CHROMA_SITE_H_COSITED: chroma is horizontally cosited
+ * @GST_VIDEO_CHROMA_SITE_V_COSITED: chroma is vertically cosited
+ * @GST_VIDEO_CHROMA_SITE_ALT_LINE: choma samples are sited on alternate lines
+ * @GST_VIDEO_CHROMA_SITE_COSITED: chroma samples cosited with luma samples
+ * @GST_VIDEO_CHROMA_SITE_JPEG: jpeg style cositing, also for mpeg1 and mjpeg
+ * @GST_VIDEO_CHROMA_SITE_MPEG2: mpeg2 style cositing
+ * @GST_VIDEO_CHROMA_SITE_DV: DV style cositing
+ *
+ * Various Chroma sitings.
+ */
+typedef enum {
+  GST_VIDEO_CHROMA_SITE_UNKNOWN   =  0,
+  GST_VIDEO_CHROMA_SITE_NONE      = (1 << 0),
+  GST_VIDEO_CHROMA_SITE_H_COSITED = (1 << 1),
+  GST_VIDEO_CHROMA_SITE_V_COSITED = (1 << 2),
+  GST_VIDEO_CHROMA_SITE_ALT_LINE  = (1 << 3),
+  /* some common chroma cositing */
+  GST_VIDEO_CHROMA_SITE_COSITED   = (GST_VIDEO_CHROMA_SITE_H_COSITED | GST_VIDEO_CHROMA_SITE_V_COSITED),
+  GST_VIDEO_CHROMA_SITE_JPEG      = (GST_VIDEO_CHROMA_SITE_NONE),
+  GST_VIDEO_CHROMA_SITE_MPEG2     = (GST_VIDEO_CHROMA_SITE_H_COSITED),
+  GST_VIDEO_CHROMA_SITE_DV        = (GST_VIDEO_CHROMA_SITE_COSITED | GST_VIDEO_CHROMA_SITE_ALT_LINE),
+} GstVideoChromaSite;
+
+GstVideoChromaSite    gst_video_chroma_from_string   (const gchar * s);
+const gchar *         gst_video_chroma_to_string     (GstVideoChromaSite site);
+
+/**
+ * GstVideoChromaMethod:
+ * @GST_VIDEO_CHROMA_METHOD_NEAREST: Duplicates the chroma samples when
+ *    upsampling and drops when subsampling
+ * @GST_VIDEO_CHROMA_METHOD_LINEAR: Uses linear interpolation to reconstruct
+ *    missing chroma and averaging to subsample
+ *
+ * Different subsampling and upsampling methods
+ */
+typedef enum {
+  GST_VIDEO_CHROMA_METHOD_NEAREST,
+  GST_VIDEO_CHROMA_METHOD_LINEAR
+} GstVideoChromaMethod;
+
+/**
+ * GstVideoChromaFlags:
+ * @GST_VIDEO_CHROMA_FLAG_NONE: no flags
+ * @GST_VIDEO_CHROMA_FLAG_INTERLACED: the input is interlaced
+ *
+ * Extra flags that influence the result from gst_video_chroma_resample_new().
+ */
+typedef enum {
+  GST_VIDEO_CHROMA_FLAG_NONE       = 0,
+  GST_VIDEO_CHROMA_FLAG_INTERLACED = (1 << 0),
+} GstVideoChromaFlags;
+
+typedef struct _GstVideoChromaResample GstVideoChromaResample;
+
+GstVideoChromaResample * gst_video_chroma_resample_new   (GstVideoChromaMethod method,
+                                                          GstVideoChromaSite site,
+                                                          GstVideoChromaFlags flags,
+                                                          GstVideoFormat format,
+                                                          gint h_factor, gint v_factor);
+void                     gst_video_chroma_resample_free  (GstVideoChromaResample *resample);
+
+void                     gst_video_chroma_resample_get_info (GstVideoChromaResample *resample,
+                                                             guint * n_lines, gint *offset);
+
+void                     gst_video_chroma_resample       (GstVideoChromaResample *resample,
+                                                          gpointer lines[], gint width);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_CHROMA_H__ */
diff --git a/gst-libs/gst/video/video-color.c b/gst-libs/gst/video/video-color.c
index 4bd36f6..17272c5 100644
--- a/gst-libs/gst/video/video-color.c
+++ b/gst-libs/gst/video/video-color.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/video/video-color.h b/gst-libs/gst/video/video-color.h
index dcbb66f..d1b30fa 100644
--- a/gst-libs/gst/video/video-color.h
+++ b/gst-libs/gst/video/video-color.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_COLOR_H__
diff --git a/gst-libs/gst/video/video-event.c b/gst-libs/gst/video/video-event.c
index 8d52135..88d56f3 100644
--- a/gst-libs/gst/video/video-event.c
+++ b/gst-libs/gst/video/video-event.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "video-event.h"
diff --git a/gst-libs/gst/video/video-event.h b/gst-libs/gst/video/video-event.h
index 78559f6..beed226 100644
--- a/gst-libs/gst/video/video-event.h
+++ b/gst-libs/gst/video/video-event.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_EVENT_H__
diff --git a/gst-libs/gst/video/video-format.c b/gst-libs/gst/video/video-format.c
index 3f38839..717135c 100644
--- a/gst-libs/gst/video/video-format.c
+++ b/gst-libs/gst/video/video-format.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -57,18 +57,26 @@
   (gpointer)(((guint8*)GET_COMP_DATA (comp)) + \
       GET_COMP_STRIDE(comp) * (line))
 
-#define GET_STRIDE()                 GET_PLANE_STRIDE (0)
 #define GET_LINE(line)               GET_PLANE_LINE (0, line)
 
 #define GET_Y_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_Y, line)
 #define GET_U_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_U, line)
 #define GET_V_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_V, line)
+
+#define GET_R_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_R, line)
+#define GET_G_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_G, line)
+#define GET_B_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_B, line)
+
 #define GET_A_LINE(line)             GET_COMP_LINE(GST_VIDEO_COMP_A, line)
 
-#define GET_Y_STRIDE()               GET_COMP_STRIDE(GST_VIDEO_COMP_Y)
-#define GET_U_STRIDE()               GET_COMP_STRIDE(GST_VIDEO_COMP_U)
-#define GET_V_STRIDE()               GET_COMP_STRIDE(GST_VIDEO_COMP_V)
-#define GET_A_STRIDE()               GET_COMP_STRIDE(GST_VIDEO_COMP_A)
+#define GET_UV_420(line, flags)                 \
+  (flags & GST_VIDEO_PACK_FLAG_INTERLACED ?     \
+   ((line & ~3) >> 1) + (line & 1) :            \
+   line >> 1)
+#define GET_UV_410(line, flags)                 \
+  (flags & GST_VIDEO_PACK_FLAG_INTERLACED ?     \
+   ((line & ~7) >> 2) + (line & 1) :            \
+   line >> 2)
 
 #define PACK_420 GST_VIDEO_FORMAT_AYUV, unpack_planar_420, 1, pack_planar_420
 static void
@@ -76,8 +84,10 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_I420 (dest,
-      GET_Y_LINE (y), GET_U_LINE (y >> 1), GET_V_LINE (y >> 1), width);
+  gint uv = GET_UV_420 (y, flags);
+
+  video_orc_unpack_I420 (dest, GET_Y_LINE (y), GET_U_LINE (uv),
+      GET_V_LINE (uv), width);
 }
 
 static void
@@ -86,8 +96,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_I420 (GET_Y_LINE (y),
-      GET_U_LINE (y >> 1), GET_V_LINE (y >> 1), src, width / 2);
+  gint uv = GET_UV_420 (y, flags);
+
+  video_orc_pack_I420 (GET_Y_LINE (y), GET_U_LINE (uv), GET_V_LINE (uv),
+      src, width / 2);
 }
 
 #define PACK_YUY2 GST_VIDEO_FORMAT_AYUV, unpack_YUY2, 1, pack_YUY2
@@ -306,13 +318,13 @@
     y4 = s[4 * (i + 4) + 1] >> 6;
     y5 = s[4 * (i + 5) + 1] >> 6;
 
-    u0 = (s[4 * (i + 0) + 2] + s[4 * (i + 1) + 2] + 1) >> 7;
-    u1 = (s[4 * (i + 2) + 2] + s[4 * (i + 3) + 2] + 1) >> 7;
-    u2 = (s[4 * (i + 4) + 2] + s[4 * (i + 5) + 2] + 1) >> 7;
+    u0 = s[4 * (i + 0) + 2] >> 6;
+    u1 = s[4 * (i + 2) + 2] >> 6;
+    u2 = s[4 * (i + 4) + 2] >> 6;
 
-    v0 = (s[4 * (i + 0) + 3] + s[4 * (i + 1) + 3] + 1) >> 7;
-    v1 = (s[4 * (i + 2) + 3] + s[4 * (i + 3) + 3] + 1) >> 7;
-    v2 = (s[4 * (i + 4) + 3] + s[4 * (i + 5) + 3] + 1) >> 7;
+    v0 = s[4 * (i + 0) + 3] >> 6;
+    v1 = s[4 * (i + 2) + 3] >> 6;
+    v2 = s[4 * (i + 4) + 3] >> 6;
 
     a0 = u0 | (y0 << 10) | (v0 << 20);
     a1 = y1 | (u1 << 10) | (y2 << 20);
@@ -390,10 +402,8 @@
     destY[i + 2] = s[i * 4 + 9];
     destY[i + 3] = s[i * 4 + 13];
 
-    destU[i >> 2] =
-        (s[i * 4 + 2] + s[i * 4 + 6] + s[i * 4 + 10] + s[i * 4 + 14] + 2) >> 2;
-    destV[i >> 2] =
-        (s[i * 4 + 3] + s[i * 4 + 7] + s[i * 4 + 11] + s[i * 4 + 15] + 2) >> 2;
+    destU[i >> 2] = s[i * 4 + 2];
+    destV[i >> 2] = s[i * 4 + 3];
   }
 
   if (i == width - 3) {
@@ -401,14 +411,14 @@
     destY[i + 1] = s[i * 4 + 5];
     destY[i + 2] = s[i * 4 + 9];
 
-    destU[i >> 2] = (s[i * 4 + 2] + s[i * 4 + 6] + s[i * 4 + 10] + 1) / 3;
-    destV[i >> 2] = (s[i * 4 + 3] + s[i * 4 + 7] + s[i * 4 + 11] + 1) / 3;
+    destU[i >> 2] = s[i * 4 + 2];
+    destV[i >> 2] = s[i * 4 + 3];
   } else if (i == width - 2) {
     destY[i] = s[i * 4 + 1];
     destY[i + 1] = s[i * 4 + 5];
 
-    destU[i >> 2] = (s[i * 4 + 2] + s[i * 4 + 6] + 1) >> 1;
-    destV[i >> 2] = (s[i * 4 + 3] + s[i * 4 + 7] + 1) >> 1;
+    destU[i >> 2] = s[i * 4 + 2];
+    destV[i >> 2] = s[i * 4 + 3];
   } else if (i == width - 1) {
     destY[i + 1] = s[i * 4 + 5];
 
@@ -457,6 +467,26 @@
       width);
 }
 
+#define PACK_GBR GST_VIDEO_FORMAT_ARGB, unpack_GBR, 1, pack_GBR
+static void
+unpack_GBR (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  video_orc_unpack_Y444 (dest, GET_R_LINE (y), GET_G_LINE (y),
+      GET_B_LINE (y), width);
+}
+
+static void
+pack_GBR (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  video_orc_pack_Y444 (GET_R_LINE (y), GET_G_LINE (y), GET_B_LINE (y), src,
+      width);
+}
+
 #define PACK_GRAY8 GST_VIDEO_FORMAT_AYUV, unpack_GRAY8, 1, pack_GRAY8
 static void
 unpack_GRAY8 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
@@ -847,8 +877,10 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
+  gint uv = GET_UV_420 (y, flags);
+
   video_orc_unpack_NV12 (dest,
-      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, y >> 1), width / 2);
+      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, uv), width / 2);
 }
 
 static void
@@ -857,8 +889,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_NV12 (GET_PLANE_LINE (0, y),
-      GET_PLANE_LINE (1, y >> 1), src, width / 2);
+  gint uv = GET_UV_420 (y, flags);
+
+  video_orc_pack_NV12 (GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, uv),
+      src, width / 2);
 }
 
 #define PACK_NV21 GST_VIDEO_FORMAT_AYUV, unpack_NV21, 1, pack_NV21
@@ -867,8 +901,10 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
+  gint uv = GET_UV_420 (y, flags);
+
   video_orc_unpack_NV21 (dest,
-      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, y >> 1), width / 2);
+      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, uv), width / 2);
 }
 
 static void
@@ -877,8 +913,30 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
+  gint uv = GET_UV_420 (y, flags);
+
   video_orc_pack_NV21 (GET_PLANE_LINE (0, y),
-      GET_PLANE_LINE (1, y >> 1), src, width / 2);
+      GET_PLANE_LINE (1, uv), src, width / 2);
+}
+
+#define PACK_NV16 GST_VIDEO_FORMAT_AYUV, unpack_NV16, 1, pack_NV16
+static void
+unpack_NV16 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  video_orc_unpack_NV12 (dest,
+      GET_PLANE_LINE (0, y), GET_PLANE_LINE (1, y), width / 2);
+}
+
+static void
+pack_NV16 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  video_orc_pack_NV12 (GET_PLANE_LINE (0, y),
+      GET_PLANE_LINE (1, y), src, width / 2);
 }
 
 #define PACK_UYVP GST_VIDEO_FORMAT_AYUV64, unpack_UYVP, 1, pack_UYVP
@@ -937,8 +995,8 @@
 
     y0 = s[4 * (i + 0) + 1];
     y1 = s[4 * (i + 1) + 1];
-    u0 = (s[4 * (i + 0) + 2] + s[4 * (i + 1) + 2] + 1) >> 1;
-    v0 = (s[4 * (i + 0) + 3] + s[4 * (i + 1) + 3] + 1) >> 1;
+    u0 = s[4 * (i + 0) + 2];
+    v0 = s[4 * (i + 0) + 3];
 
     d[(i / 2) * 5 + 0] = u0 >> 8;
     d[(i / 2) * 5 + 1] = (u0 & 0xc0) | y0 >> 10;
@@ -954,9 +1012,10 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
-  video_orc_unpack_A420 (dest,
-      GET_Y_LINE (y), GET_U_LINE (y >> 1), GET_V_LINE (y >> 1), GET_A_LINE (y),
-      width);
+  gint uv = GET_UV_420 (y, flags);
+
+  video_orc_unpack_A420 (dest, GET_Y_LINE (y), GET_U_LINE (uv),
+      GET_V_LINE (uv), GET_A_LINE (y), width);
 }
 
 static void
@@ -965,8 +1024,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
     gint y, gint width)
 {
-  video_orc_pack_A420 (GET_Y_LINE (y),
-      GET_U_LINE (y >> 1), GET_V_LINE (y >> 1), GET_A_LINE (y), src, width / 2);
+  gint uv = GET_UV_420 (y, flags);
+
+  video_orc_pack_A420 (GET_Y_LINE (y), GET_U_LINE (uv), GET_V_LINE (uv),
+      GET_A_LINE (y), src, width / 2);
 }
 
 #define PACK_RGB8P GST_VIDEO_FORMAT_ARGB, unpack_RGB8P, 1, pack_RGB8P
@@ -989,6 +1050,52 @@
   }
 }
 
+static const guint32 std_palette_RGB8P[] = {
+  0xff000000, 0xff000033, 0xff000066, 0xff000099, 0xff0000cc, 0xff0000ff,
+  0xff003300, 0xff003333, 0xff003366, 0xff003399, 0xff0033cc, 0xff0033ff,
+  0xff006600, 0xff006633, 0xff006666, 0xff006699, 0xff0066cc, 0xff0066ff,
+  0xff009900, 0xff009933, 0xff009966, 0xff009999, 0xff0099cc, 0xff0099ff,
+  0xff00cc00, 0xff00cc33, 0xff00cc66, 0xff00cc99, 0xff00cccc, 0xff00ccff,
+  0xff00ff00, 0xff00ff33, 0xff00ff66, 0xff00ff99, 0xff00ffcc, 0xff00ffff,
+  0xff330000, 0xff330033, 0xff330066, 0xff330099, 0xff3300cc, 0xff3300ff,
+  0xff333300, 0xff333333, 0xff333366, 0xff333399, 0xff3333cc, 0xff3333ff,
+  0xff336600, 0xff336633, 0xff336666, 0xff336699, 0xff3366cc, 0xff3366ff,
+  0xff339900, 0xff339933, 0xff339966, 0xff339999, 0xff3399cc, 0xff3399ff,
+  0xff33cc00, 0xff33cc33, 0xff33cc66, 0xff33cc99, 0xff33cccc, 0xff33ccff,
+  0xff33ff00, 0xff33ff33, 0xff33ff66, 0xff33ff99, 0xff33ffcc, 0xff33ffff,
+  0xff660000, 0xff660033, 0xff660066, 0xff660099, 0xff6600cc, 0xff6600ff,
+  0xff663300, 0xff663333, 0xff663366, 0xff663399, 0xff6633cc, 0xff6633ff,
+  0xff666600, 0xff666633, 0xff666666, 0xff666699, 0xff6666cc, 0xff6666ff,
+  0xff669900, 0xff669933, 0xff669966, 0xff669999, 0xff6699cc, 0xff6699ff,
+  0xff66cc00, 0xff66cc33, 0xff66cc66, 0xff66cc99, 0xff66cccc, 0xff66ccff,
+  0xff66ff00, 0xff66ff33, 0xff66ff66, 0xff66ff99, 0xff66ffcc, 0xff66ffff,
+  0xff990000, 0xff990033, 0xff990066, 0xff990099, 0xff9900cc, 0xff9900ff,
+  0xff993300, 0xff993333, 0xff993366, 0xff993399, 0xff9933cc, 0xff9933ff,
+  0xff996600, 0xff996633, 0xff996666, 0xff996699, 0xff9966cc, 0xff9966ff,
+  0xff999900, 0xff999933, 0xff999966, 0xff999999, 0xff9999cc, 0xff9999ff,
+  0xff99cc00, 0xff99cc33, 0xff99cc66, 0xff99cc99, 0xff99cccc, 0xff99ccff,
+  0xff99ff00, 0xff99ff33, 0xff99ff66, 0xff99ff99, 0xff99ffcc, 0xff99ffff,
+  0xffcc0000, 0xffcc0033, 0xffcc0066, 0xffcc0099, 0xffcc00cc, 0xffcc00ff,
+  0xffcc3300, 0xffcc3333, 0xffcc3366, 0xffcc3399, 0xffcc33cc, 0xffcc33ff,
+  0xffcc6600, 0xffcc6633, 0xffcc6666, 0xffcc6699, 0xffcc66cc, 0xffcc66ff,
+  0xffcc9900, 0xffcc9933, 0xffcc9966, 0xffcc9999, 0xffcc99cc, 0xffcc99ff,
+  0xffcccc00, 0xffcccc33, 0xffcccc66, 0xffcccc99, 0xffcccccc, 0xffccccff,
+  0xffccff00, 0xffccff33, 0xffccff66, 0xffccff99, 0xffccffcc, 0xffccffff,
+  0xffff0000, 0xffff0033, 0xffff0066, 0xffff0099, 0xffff00cc, 0xffff00ff,
+  0xffff3300, 0xffff3333, 0xffff3366, 0xffff3399, 0xffff33cc, 0xffff33ff,
+  0xffff6600, 0xffff6633, 0xffff6666, 0xffff6699, 0xffff66cc, 0xffff66ff,
+  0xffff9900, 0xffff9933, 0xffff9966, 0xffff9999, 0xffff99cc, 0xffff99ff,
+  0xffffcc00, 0xffffcc33, 0xffffcc66, 0xffffcc99, 0xffffcccc, 0xffffccff,
+  0xffffff00, 0xffffff33, 0xffffff66, 0xffffff99, 0xffffffcc, 0xffffffff,
+  0x00000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000,
+  0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000,
+  0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000,
+  0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000,
+  0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000,
+  0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000, 0xff000000,
+  0xff000000, 0xff000000, 0xff000000, 0xff000000
+};
+
 static void
 pack_RGB8P (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
     const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
@@ -1017,8 +1124,10 @@
     gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
+  gint uv = GET_UV_410 (y, flags);
+
   video_orc_unpack_YUV9 (dest,
-      GET_Y_LINE (y), GET_U_LINE (y >> 2), GET_V_LINE (y >> 2), width / 2);
+      GET_Y_LINE (y), GET_U_LINE (uv), GET_V_LINE (uv), width / 2);
 }
 
 static void
@@ -1028,9 +1137,10 @@
     gint y, gint width)
 {
   int i;
+  gint uv = GET_UV_410 (y, flags);
   guint8 *destY = GET_Y_LINE (y);
-  guint8 *destU = GET_U_LINE (y >> 2);
-  guint8 *destV = GET_V_LINE (y >> 2);
+  guint8 *destU = GET_U_LINE (uv);
+  guint8 *destV = GET_V_LINE (uv);
   const guint8 *s = src;
 
   for (i = 0; i < width - 3; i += 4) {
@@ -1039,10 +1149,8 @@
     destY[i + 2] = s[i * 4 + 9];
     destY[i + 3] = s[i * 4 + 13];
     if (y % 4 == 0) {
-      destU[i >> 2] =
-          (s[i * 4 + 2] + s[i * 4 + 6] + s[i * 4 + 10] + s[i * 4 + 14]) >> 2;
-      destV[i >> 2] =
-          (s[i * 4 + 3] + s[i * 4 + 7] + s[i * 4 + 11] + s[i * 4 + 15]) >> 2;
+      destU[i >> 2] = s[i * 4 + 2];
+      destV[i >> 2] = s[i * 4 + 3];
     }
   }
 
@@ -1051,15 +1159,15 @@
     destY[i + 1] = s[i * 4 + 5];
     destY[i + 2] = s[i * 4 + 9];
     if (y % 4 == 0) {
-      destU[i >> 2] = (s[i * 4 + 2] + s[i * 4 + 6] + s[i * 4 + 10]) / 3;
-      destV[i >> 2] = (s[i * 4 + 3] + s[i * 4 + 7] + s[i * 4 + 11]) / 3;
+      destU[i >> 2] = s[i * 4 + 2];
+      destV[i >> 2] = s[i * 4 + 3];
     }
   } else if (i == width - 2) {
     destY[i] = s[i * 4 + 1];
     destY[i + 1] = s[i * 4 + 5];
     if (y % 4 == 0) {
-      destU[i >> 2] = (s[i * 4 + 2] + s[i * 4 + 6]) >> 1;
-      destV[i >> 2] = (s[i * 4 + 3] + s[i * 4 + 7]) >> 1;
+      destU[i >> 2] = s[i * 4 + 2];
+      destV[i >> 2] = s[i * 4 + 3];
     }
   } else if (i == width - 1) {
     destY[i] = s[i * 4 + 1];
@@ -1132,23 +1240,21 @@
     d[(i >> 2) * 6 + 2] = s[i * 4 + 5];
     d[(i >> 2) * 6 + 4] = s[i * 4 + 9];
     d[(i >> 2) * 6 + 5] = s[i * 4 + 13];
-    d[(i >> 2) * 6 + 0] =
-        (s[i * 4 + 2] + s[i * 4 + 6] + s[i * 4 + 10] + s[i * 4 + 14]) >> 2;
-    d[(i >> 2) * 6 + 3] =
-        (s[i * 4 + 3] + s[i * 4 + 7] + s[i * 4 + 11] + s[i * 4 + 15]) >> 2;
+    d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
+    d[(i >> 2) * 6 + 3] = s[i * 4 + 3];
   }
 
   if (i == width - 3) {
     d[(i >> 2) * 6 + 1] = s[i * 4 + 1];
     d[(i >> 2) * 6 + 2] = s[i * 4 + 5];
     d[(i >> 2) * 6 + 4] = s[i * 4 + 9];
-    d[(i >> 2) * 6 + 0] = (s[i * 4 + 2] + s[i * 4 + 6] + s[i * 4 + 10]) / 3;
-    d[(i >> 2) * 6 + 3] = (s[i * 4 + 3] + s[i * 4 + 7] + s[i * 4 + 11]) / 3;
+    d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
+    d[(i >> 2) * 6 + 3] = s[i * 4 + 3];
   } else if (i == width - 2) {
     d[(i >> 2) * 6 + 1] = s[i * 4 + 1];
     d[(i >> 2) * 6 + 2] = s[i * 4 + 5];
-    d[(i >> 2) * 6 + 0] = (s[i * 4 + 2] + s[i * 4 + 6]) >> 1;
-    d[(i >> 2) * 6 + 3] = (s[i * 4 + 3] + s[i * 4 + 7]) >> 1;
+    d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
+    d[(i >> 2) * 6 + 3] = s[i * 4 + 3];
   } else if (i == width - 1) {
     d[(i >> 2) * 6 + 1] = s[i * 4 + 1];
     d[(i >> 2) * 6 + 0] = s[i * 4 + 2];
@@ -1224,6 +1330,210 @@
   }
 }
 
+#define PACK_GBR_10LE GST_VIDEO_FORMAT_ARGB64, unpack_GBR_10LE, 1, pack_GBR_10LE
+static void
+unpack_GBR_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  guint16 *srcG = GET_G_LINE (y);
+  guint16 *srcB = GET_B_LINE (y);
+  guint16 *srcR = GET_R_LINE (y);
+  guint16 *d = dest, G, B, R;
+
+  for (i = 0; i < width; i++) {
+    G = GST_READ_UINT16_LE (srcG + i) << 6;
+    B = GST_READ_UINT16_LE (srcB + i) << 6;
+    R = GST_READ_UINT16_LE (srcR + i) << 6;
+
+    d[i * 4 + 0] = 0xffff;
+    d[i * 4 + 1] = R;
+    d[i * 4 + 2] = G;
+    d[i * 4 + 3] = B;
+  }
+}
+
+static void
+pack_GBR_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *destG = GET_G_LINE (y);
+  guint16 *destB = GET_B_LINE (y);
+  guint16 *destR = GET_R_LINE (y);
+  guint16 G, B, R;
+  const guint16 *s = src;
+
+  for (i = 0; i < width; i++) {
+    G = (s[i * 4 + 2]) >> 6;
+    B = (s[i * 4 + 3]) >> 6;
+    R = (s[i * 4 + 1]) >> 6;
+
+    GST_WRITE_UINT16_LE (destG + i, G);
+    GST_WRITE_UINT16_LE (destB + i, B);
+    GST_WRITE_UINT16_LE (destR + i, R);
+  }
+}
+
+#define PACK_GBR_10BE GST_VIDEO_FORMAT_ARGB64, unpack_GBR_10BE, 1, pack_GBR_10BE
+static void
+unpack_GBR_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  guint16 *srcG = GET_G_LINE (y);
+  guint16 *srcB = GET_B_LINE (y);
+  guint16 *srcR = GET_R_LINE (y);
+  guint16 *d = dest, G, B, R;
+
+  for (i = 0; i < width; i++) {
+    G = GST_READ_UINT16_BE (srcG + i) << 6;
+    B = GST_READ_UINT16_BE (srcB + i) << 6;
+    R = GST_READ_UINT16_BE (srcR + i) << 6;
+
+    d[i * 4 + 0] = 0xffff;
+    d[i * 4 + 1] = R;
+    d[i * 4 + 2] = G;
+    d[i * 4 + 3] = B;
+  }
+}
+
+static void
+pack_GBR_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *destG = GET_G_LINE (y);
+  guint16 *destB = GET_B_LINE (y);
+  guint16 *destR = GET_R_LINE (y);
+  guint16 G, B, R;
+  const guint16 *s = src;
+
+  for (i = 0; i < width; i++) {
+    G = s[i * 4 + 2] >> 6;
+    B = s[i * 4 + 3] >> 6;
+    R = s[i * 4 + 1] >> 6;
+
+    GST_WRITE_UINT16_BE (destG + i, G);
+    GST_WRITE_UINT16_BE (destB + i, B);
+    GST_WRITE_UINT16_BE (destR + i, R);
+  }
+}
+
+#define PACK_Y444_10LE GST_VIDEO_FORMAT_AYUV64, unpack_Y444_10LE, 1, pack_Y444_10LE
+static void
+unpack_Y444_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  guint16 *srcY = GET_Y_LINE (y);
+  guint16 *srcU = GET_U_LINE (y);
+  guint16 *srcV = GET_V_LINE (y);
+  guint16 *d = dest, Y, U, V;
+
+  for (i = 0; i < width; i++) {
+    Y = GST_READ_UINT16_LE (srcY + i) << 6;
+    U = GST_READ_UINT16_LE (srcU + i) << 6;
+    V = GST_READ_UINT16_LE (srcV + i) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = 0xffff;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+  }
+}
+
+static void
+pack_Y444_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *destY = GET_Y_LINE (y);
+  guint16 *destU = GET_U_LINE (y);
+  guint16 *destV = GET_V_LINE (y);
+  guint16 Y, U, V;
+  const guint16 *s = src;
+
+  for (i = 0; i < width; i++) {
+    Y = (s[i * 4 + 1]) >> 6;
+    U = (s[i * 4 + 2]) >> 6;
+    V = (s[i * 4 + 3]) >> 6;
+
+    GST_WRITE_UINT16_LE (destY + i, Y);
+    GST_WRITE_UINT16_LE (destU + i, U);
+    GST_WRITE_UINT16_LE (destV + i, V);
+  }
+}
+
+#define PACK_Y444_10BE GST_VIDEO_FORMAT_AYUV64, unpack_Y444_10BE, 1, pack_Y444_10BE
+static void
+unpack_Y444_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  guint16 *srcY = GET_Y_LINE (y);
+  guint16 *srcU = GET_U_LINE (y);
+  guint16 *srcV = GET_V_LINE (y);
+  guint16 *d = dest, Y, U, V;
+
+  for (i = 0; i < width; i++) {
+    Y = GST_READ_UINT16_BE (srcY + i) << 6;
+    U = GST_READ_UINT16_BE (srcU + i) << 6;
+    V = GST_READ_UINT16_BE (srcV + i) << 6;
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y |= (Y >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = 0xffff;
+    d[i * 4 + 1] = Y;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+  }
+}
+
+static void
+pack_Y444_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint16 *destY = GET_Y_LINE (y);
+  guint16 *destU = GET_U_LINE (y);
+  guint16 *destV = GET_V_LINE (y);
+  guint16 Y, U, V;
+  const guint16 *s = src;
+
+  for (i = 0; i < width; i++) {
+    Y = s[i * 4 + 1] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
+
+    GST_WRITE_UINT16_BE (destY + i, Y);
+    GST_WRITE_UINT16_BE (destU + i, U);
+    GST_WRITE_UINT16_BE (destV + i, V);
+  }
+}
+
 #define PACK_I420_10LE GST_VIDEO_FORMAT_AYUV64, unpack_I420_10LE, 1, pack_I420_10LE
 static void
 unpack_I420_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
@@ -1231,9 +1541,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
+  gint uv = GET_UV_420 (y, flags);
   guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (y >> 1);
-  guint16 *srcV = GET_V_LINE (y >> 1);
+  guint16 *srcU = GET_U_LINE (uv);
+  guint16 *srcV = GET_V_LINE (uv);
   guint16 *d = dest, Y, U, V;
 
   for (i = 0; i < width; i++) {
@@ -1261,17 +1572,18 @@
     gint y, gint width)
 {
   int i;
+  gint uv = GET_UV_420 (y, flags);
   guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (y >> 1);
-  guint16 *destV = GET_V_LINE (y >> 1);
+  guint16 *destU = GET_U_LINE (uv);
+  guint16 *destV = GET_V_LINE (uv);
   guint16 Y0, Y1, U, V;
   const guint16 *s = src;
 
   for (i = 0; i < width - 1; i += 2) {
-    Y0 = (s[i * 4 + 1]) >> 6;
-    Y1 = (s[i * 4 + 5]) >> 6;
-    U = ((s[i * 4 + 2] + s[i * 4 + 6] + 1) >> 1) >> 6;
-    V = ((s[i * 4 + 3] + s[i * 4 + 7] + 1) >> 1) >> 6;
+    Y0 = s[i * 4 + 1] >> 6;
+    Y1 = s[i * 4 + 5] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
 
     GST_WRITE_UINT16_LE (destY + i + 0, Y0);
     GST_WRITE_UINT16_LE (destY + i + 1, Y1);
@@ -1296,9 +1608,10 @@
     const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
 {
   int i;
+  gint uv = GET_UV_420 (y, flags);
   guint16 *srcY = GET_Y_LINE (y);
-  guint16 *srcU = GET_U_LINE (y >> 1);
-  guint16 *srcV = GET_V_LINE (y >> 1);
+  guint16 *srcU = GET_U_LINE (uv);
+  guint16 *srcV = GET_V_LINE (uv);
   guint16 *d = dest, Y, U, V;
 
   for (i = 0; i < width; i++) {
@@ -1326,17 +1639,18 @@
     gint y, gint width)
 {
   int i;
+  gint uv = GET_UV_420 (y, flags);
   guint16 *destY = GET_Y_LINE (y);
-  guint16 *destU = GET_U_LINE (y >> 1);
-  guint16 *destV = GET_V_LINE (y >> 1);
+  guint16 *destU = GET_U_LINE (uv);
+  guint16 *destV = GET_V_LINE (uv);
   guint16 Y0, Y1, U, V;
   const guint16 *s = src;
 
   for (i = 0; i < width - 1; i += 2) {
     Y0 = s[i * 4 + 1] >> 6;
     Y1 = s[i * 4 + 5] >> 6;
-    U = ((s[i * 4 + 2] + s[i * 4 + 6] + 1) >> 1) >> 6;
-    V = ((s[i * 4 + 3] + s[i * 4 + 7] + 1) >> 1) >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
 
     GST_WRITE_UINT16_BE (destY + i + 0, Y0);
     GST_WRITE_UINT16_BE (destY + i + 1, Y1);
@@ -1398,10 +1712,10 @@
   const guint16 *s = src;
 
   for (i = 0; i < width - 1; i += 2) {
-    Y0 = (s[i * 4 + 1]) >> 6;
-    Y1 = (s[i * 4 + 5]) >> 6;
-    U = ((s[i * 4 + 2] + s[i * 4 + 6] + 1) >> 1) >> 6;
-    V = ((s[i * 4 + 3] + s[i * 4 + 7] + 1) >> 1) >> 6;
+    Y0 = s[i * 4 + 1] >> 6;
+    Y1 = s[i * 4 + 5] >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
 
     GST_WRITE_UINT16_LE (destY + i + 0, Y0);
     GST_WRITE_UINT16_LE (destY + i + 1, Y1);
@@ -1465,8 +1779,8 @@
   for (i = 0; i < width - 1; i += 2) {
     Y0 = s[i * 4 + 1] >> 6;
     Y1 = s[i * 4 + 5] >> 6;
-    U = ((s[i * 4 + 2] + s[i * 4 + 6] + 1) >> 1) >> 6;
-    V = ((s[i * 4 + 3] + s[i * 4 + 7] + 1) >> 1) >> 6;
+    U = s[i * 4 + 2] >> 6;
+    V = s[i * 4 + 3] >> 6;
 
     GST_WRITE_UINT16_BE (destY + i + 0, Y0);
     GST_WRITE_UINT16_BE (destY + i + 1, Y1);
@@ -1519,7 +1833,7 @@
 #define PSTR488           { 4, 8, 8, 0 }
 #define PSTR8888          { 8, 8, 8, 8 }
 
-/* planes */
+/* planes, in what plane do we find component N */
 #define PLANE_NA          0, { 0, 0, 0, 0 }
 #define PLANE0            1, { 0, 0, 0, 0 }
 #define PLANE01           2, { 0, 1, 0, 0 }
@@ -1527,6 +1841,7 @@
 #define PLANE012          3, { 0, 1, 2, 0 }
 #define PLANE0123         4, { 0, 1, 2, 3 }
 #define PLANE021          3, { 0, 2, 1, 0 }
+#define PLANE201          3, { 2, 0, 1, 0 }
 
 /* offsets */
 #define OFFS0             { 0, 0, 0, 0 }
@@ -1547,7 +1862,7 @@
 #define OFFS104           { 1, 0, 4, 0 }
 #define OFFS2460          { 2, 4, 6, 0 }
 
-/* subsampling */
+/* subsampling, w_sub, h_sub */
 #define SUB410            { 0, 2, 2, 0 }, { 0, 2, 2, 0 }
 #define SUB411            { 0, 2, 2, 0 }, { 0, 0, 0, 0 }
 #define SUB420            { 0, 1, 1, 0 }, { 0, 1, 1, 0 }
@@ -1707,6 +2022,21 @@
       PSTR222, PLANE012, OFFS0, SUB422, PACK_I422_10BE),
   MAKE_YUV_LE_FORMAT (I422_10LE, "raw video", 0x00000000, DPTH10_10_10,
       PSTR222, PLANE012, OFFS0, SUB422, PACK_I422_10LE),
+  MAKE_YUV_FORMAT (Y444_10BE, "raw video", 0x00000000, DPTH10_10_10,
+      PSTR222, PLANE012, OFFS0, SUB444, PACK_Y444_10BE),
+  MAKE_YUV_LE_FORMAT (Y444_10LE, "raw video", 0x00000000, DPTH10_10_10,
+      PSTR222, PLANE012, OFFS0, SUB444, PACK_Y444_10LE),
+  MAKE_RGB_FORMAT (GBR, "raw video", DPTH888, PSTR111, PLANE201, OFFS0, SUB444,
+      PACK_GBR),
+  MAKE_RGB_FORMAT (GBR_10BE, "raw video", DPTH10_10_10, PSTR222, PLANE201,
+      OFFS0, SUB444,
+      PACK_GBR_10BE),
+  MAKE_RGB_LE_FORMAT (GBR_10LE, "raw video", DPTH10_10_10, PSTR222, PLANE201,
+      OFFS0, SUB444,
+      PACK_GBR_10LE),
+
+  MAKE_YUV_FORMAT (NV16, "raw video", GST_MAKE_FOURCC ('N', 'V', '1', '6'),
+      DPTH888, PSTR111, PLANE011, OFFS001, SUB422, PACK_NV16),
 };
 
 static GstVideoFormat
@@ -1807,11 +2137,11 @@
  * @depth: the amount of bits used for a pixel
  * @bpp: the amount of bits used to store a pixel. This value is bigger than
  *   @depth
- * @endianness: the endianness of the masks
+ * @endianness: the endianness of the masks, #G_LITTLE_ENDIAN or #G_BIG_ENDIAN
  * @red_mask: the red mask
  * @green_mask: the green mask
  * @blue_mask: the blue mask
- * @alpha_mask: the optional alpha mask
+ * @alpha_mask: the alpha mask, or 0 if no alpha mask
  *
  * Find the #GstVideoFormat for the given parameters.
  *
@@ -1820,7 +2150,7 @@
  */
 GstVideoFormat
 gst_video_format_from_masks (gint depth, gint bpp, gint endianness,
-    gint red_mask, gint green_mask, gint blue_mask, gint alpha_mask)
+    guint red_mask, guint green_mask, guint blue_mask, guint alpha_mask)
 {
   GstVideoFormat format;
 
@@ -1829,6 +2159,7 @@
     red_mask = GUINT32_TO_BE (red_mask);
     green_mask = GUINT32_TO_BE (green_mask);
     blue_mask = GUINT32_TO_BE (blue_mask);
+    alpha_mask = GUINT32_TO_BE (alpha_mask);
     endianness = G_BIG_ENDIAN;
     if (bpp == 24) {
       red_mask >>= 8;
@@ -1908,6 +2239,8 @@
       return GST_VIDEO_FORMAT_NV12;
     case GST_MAKE_FOURCC ('N', 'V', '2', '1'):
       return GST_VIDEO_FORMAT_NV21;
+    case GST_MAKE_FOURCC ('N', 'V', '1', '6'):
+      return GST_VIDEO_FORMAT_NV16;
     case GST_MAKE_FOURCC ('v', '3', '0', '8'):
       return GST_VIDEO_FORMAT_v308;
     case GST_MAKE_FOURCC ('Y', '8', '0', '0'):
@@ -2005,53 +2338,30 @@
   return &formats[format].info;
 }
 
-typedef struct
-{
-  const gchar *name;
-  GstVideoChromaSite site;
-} ChromaSiteInfo;
-
-static const ChromaSiteInfo chromasite[] = {
-  {"jpeg", GST_VIDEO_CHROMA_SITE_JPEG},
-  {"mpeg2", GST_VIDEO_CHROMA_SITE_MPEG2},
-  {"dv", GST_VIDEO_CHROMA_SITE_DV}
-};
-
 /**
- * gst_video_chroma_from_string:
- * @s: a chromasite string
+ * gst_video_format_get_palette:
+ * @format: a #GstVideoFormat
+ * @size: (out): size of the palette in bytes
  *
- * Convert @s to a #GstVideoChromaSite
+ * Get the default palette of @format. This the palette used in the pack
+ * function for paletted formats.
  *
- * Returns: a #GstVideoChromaSite or %GST_VIDEO_CHROMA_SITE_UNKNOWN when @s does
- * not contain a valid chroma description.
+ * Returns: the default palette of @format or %NULL when @format does not have a
+ * palette.
+ *
+ * Since: 1.2
  */
-GstVideoChromaSite
-gst_video_chroma_from_string (const gchar * s)
+gconstpointer
+gst_video_format_get_palette (GstVideoFormat format, gsize * size)
 {
-  gint i;
-  for (i = 0; i < G_N_ELEMENTS (chromasite); i++) {
-    if (g_str_equal (chromasite[i].name, s))
-      return chromasite[i].site;
-  }
-  return GST_VIDEO_CHROMA_SITE_UNKNOWN;
-}
+  g_return_val_if_fail (format < G_N_ELEMENTS (formats), NULL);
+  g_return_val_if_fail (size != NULL, NULL);
 
-/**
- * gst_video_chroma_to_string:
- * @site: a #GstVideoChromaSite
- *
- * Converts @site to its string representation.
- *
- * Returns: a string describing @site.
- */
-const gchar *
-gst_video_chroma_to_string (GstVideoChromaSite site)
-{
-  gint i;
-  for (i = 0; i < G_N_ELEMENTS (chromasite); i++) {
-    if (chromasite[i].site == site)
-      return chromasite[i].name;
+  switch (format) {
+    case GST_VIDEO_FORMAT_RGB8P:
+      *size = sizeof (std_palette_RGB8P);
+      return std_palette_RGB8P;
+    default:
+      return NULL;
   }
-  return NULL;
 }
diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h
index 25229cc..e8cf54c 100644
--- a/gst-libs/gst/video/video-format.h
+++ b/gst-libs/gst/video/video-format.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_FORMAT_H__
@@ -74,6 +74,12 @@
  * @GST_VIDEO_FORMAT_I420_10LE: planar 4:2:0 YUV, 10 bits per channel
  * @GST_VIDEO_FORMAT_I422_10BE: planar 4:2:2 YUV, 10 bits per channel
  * @GST_VIDEO_FORMAT_I422_10LE: planar 4:2:2 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_Y444_10BE: planar 4:4:4 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_Y444_10LE: planar 4:4:4 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_GBR: planar 4:4:4 RGB, 8 bits per channel
+ * @GST_VIDEO_FORMAT_GBR_10BE: planar 4:4:4 RGB, 10 bits per channel
+ * @GST_VIDEO_FORMAT_GBR_10LE: planar 4:4:4 RGB, 10 bits per channel
+ * @GST_VIDEO_FORMAT_NV16: planar 4:2:2 YUV with interleaved UV plane
  *
  * Enum value describing the most common video formats.
  */
@@ -124,6 +130,12 @@
   GST_VIDEO_FORMAT_I420_10LE,
   GST_VIDEO_FORMAT_I422_10BE,
   GST_VIDEO_FORMAT_I422_10LE,
+  GST_VIDEO_FORMAT_Y444_10BE,
+  GST_VIDEO_FORMAT_Y444_10LE,
+  GST_VIDEO_FORMAT_GBR,
+  GST_VIDEO_FORMAT_GBR_10BE,
+  GST_VIDEO_FORMAT_GBR_10LE,
+  GST_VIDEO_FORMAT_NV16,
 } GstVideoFormat;
 
 #define GST_VIDEO_MAX_PLANES 4
@@ -132,36 +144,6 @@
 typedef struct _GstVideoFormatInfo GstVideoFormatInfo;
 
 /**
- * GstVideoChromaSite:
- * @GST_VIDEO_CHROMA_SITE_UNKNOWN: unknown cositing
- * @GST_VIDEO_CHROMA_SITE_NONE: no cositing
- * @GST_VIDEO_CHROMA_SITE_H_COSITED: chroma is horizontally cosited
- * @GST_VIDEO_CHROMA_SITE_V_COSITED: chroma is vertically cosited
- * @GST_VIDEO_CHROMA_SITE_ALT_LINE: choma samples are sited on alternate lines
- * @GST_VIDEO_CHROMA_SITE_COSITED: chroma samples cosited with luma samples
- * @GST_VIDEO_CHROMA_SITE_JPEG: jpeg style cositing, also for mpeg1 and mjpeg
- * @GST_VIDEO_CHROMA_SITE_MPEG2: mpeg2 style cositing
- * @GST_VIDEO_CHROMA_SITE_DV: DV style cositing
- *
- * Various Chroma sitings.
- */
-typedef enum {
-  GST_VIDEO_CHROMA_SITE_UNKNOWN   =  0,
-  GST_VIDEO_CHROMA_SITE_NONE      = (1 << 0),
-  GST_VIDEO_CHROMA_SITE_H_COSITED = (1 << 1),
-  GST_VIDEO_CHROMA_SITE_V_COSITED = (1 << 2),
-  GST_VIDEO_CHROMA_SITE_ALT_LINE  = (1 << 3),
-  /* some common chroma cositing */
-  GST_VIDEO_CHROMA_SITE_COSITED   = (GST_VIDEO_CHROMA_SITE_H_COSITED | GST_VIDEO_CHROMA_SITE_V_COSITED),
-  GST_VIDEO_CHROMA_SITE_JPEG      = (GST_VIDEO_CHROMA_SITE_NONE),
-  GST_VIDEO_CHROMA_SITE_MPEG2     = (GST_VIDEO_CHROMA_SITE_H_COSITED),
-  GST_VIDEO_CHROMA_SITE_DV        = (GST_VIDEO_CHROMA_SITE_COSITED | GST_VIDEO_CHROMA_SITE_ALT_LINE),
-} GstVideoChromaSite;
-
-GstVideoChromaSite    gst_video_chroma_from_string   (const gchar * s);
-const gchar *         gst_video_chroma_to_string     (GstVideoChromaSite site);
-
-/**
  * GstVideoFormatFlags:
  * @GST_VIDEO_FORMAT_FLAG_YUV: The video format is YUV, components are numbered
  *   0=Y, 1=U, 2=V.
@@ -211,6 +193,8 @@
 #define GST_VIDEO_COMP_INDEX    0
 #define GST_VIDEO_COMP_PALETTE  1
 
+#include <gst/video/video-chroma.h>
+
 /**
  * GstVideoPackFlags:
  * @GST_VIDEO_PACK_FLAG_NONE: No flag
@@ -219,13 +203,17 @@
  *   to 0. This is likely sightly faster but less accurate. When this flag
  *   is not specified, the most significant bits of the source are duplicated
  *   in the least significant bits of the destination.
+ * @GST_VIDEO_PACK_FLAG_INTERLACED: The source is interlaced. The unpacked
+ *   format will be interlaced as well with each line containing
+ *   information from alternating fields. (Since 1.2)
  *
  * The different flags that can be used when packing and unpacking.
  */
 typedef enum
 {
   GST_VIDEO_PACK_FLAG_NONE           = 0,
-  GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE = 1
+  GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE = (1 << 0),
+  GST_VIDEO_PACK_FLAG_INTERLACED     = (1 << 1)
 } GstVideoPackFlags;
 
 /**
@@ -243,6 +231,10 @@
  * format @info. The pixels will be unpacked into @dest which each component
  * interleaved. @dest should at least be big enough to hold @width *
  * n_components * size(unpack_format) bytes.
+ *
+ * For subsampled formats, the components will be duplicated in the destination
+ * array. Reconstruction of the missing components can be performed in a
+ * separate step after unpacking.
  */
 typedef void (*GstVideoFormatUnpack)         (const GstVideoFormatInfo *info,
                                               GstVideoPackFlags flags, gpointer dest,
@@ -257,7 +249,7 @@
  * @sstride: the source array stride
  * @data: pointers to the destination data planes
  * @stride: strides of the destination planes
- * @chroma_site: the chroma siting of the target when subsampled
+ * @chroma_site: the chroma siting of the target when subsampled (not used)
  * @y: the y position in the image to pack to
  * @width: the amount of pixels to pack.
  *
@@ -268,6 +260,9 @@
  * This function operates on pack_lines lines, meaning that @src should
  * contain at least pack_lines lines with a stride of @sstride and @y
  * should be a multiple of pack_lines.
+ *
+ * Subsampled formats will use the horizontally cosited component in the
+ * destination. Subsampling should be performed before packing.
  */
 typedef void (*GstVideoFormatPack)           (const GstVideoFormatInfo *info,
                                               GstVideoPackFlags flags,
@@ -410,8 +405,8 @@
 
 /* format properties */
 GstVideoFormat gst_video_format_from_masks           (gint depth, gint bpp, gint endianness,
-                                                      gint red_mask, gint green_mask,
-                                                      gint blue_mask, gint alpha_mask) G_GNUC_CONST;
+                                                      guint red_mask, guint green_mask,
+                                                      guint blue_mask, guint alpha_mask) G_GNUC_CONST;
 
 GstVideoFormat gst_video_format_from_fourcc          (guint32 fourcc) G_GNUC_CONST;
 GstVideoFormat gst_video_format_from_string          (const gchar *format) G_GNUC_CONST;
@@ -422,6 +417,8 @@
 const GstVideoFormatInfo *
                gst_video_format_get_info             (GstVideoFormat format) G_GNUC_CONST;
 
+gconstpointer  gst_video_format_get_palette          (GstVideoFormat format, gsize *size);
+
 #define GST_VIDEO_SIZE_RANGE "(int) [ 1, max ]"
 #define GST_VIDEO_FPS_RANGE "(fraction) [ 0, max ]"
 
@@ -435,9 +432,10 @@
 
 #define GST_VIDEO_FORMATS_ALL "{ I420, YV12, YUY2, UYVY, AYUV, RGBx, "  \
     "BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, "  \
-    "YVYU, Y444, v210, v216, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, " \
+    "YVYU, Y444, v210, v216, NV12, NV21, NV16, GRAY8, GRAY16_BE, GRAY16_LE, " \
     "v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, " \
-    "IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE }"
+    "IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, " \
+    " Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE }"
 
 /**
  * GST_VIDEO_CAPS_MAKE:
@@ -453,6 +451,24 @@
     "height = " GST_VIDEO_SIZE_RANGE ", "                               \
     "framerate = " GST_VIDEO_FPS_RANGE
 
+/**
+ * GST_VIDEO_CAPS_MAKE_WITH_FEATURES:
+ * @format: string format that describes the pixel layout, as string
+ *     (e.g. "I420", "RGB", "YV12", "YUY2", "AYUV", etc.)
+ * @features: Requires caps features as a string, e.g.
+ *     "memory:SystemMemory".
+ *
+ * Generic caps string for video, for use in pad templates.
+ *
+ * Since: 1.2
+ */
+#define GST_VIDEO_CAPS_MAKE_WITH_FEATURES(features,format)              \
+    "video/x-raw(" features "), "                                       \
+    "format = (string) " format ", "                                    \
+    "width = " GST_VIDEO_SIZE_RANGE ", "                                \
+    "height = " GST_VIDEO_SIZE_RANGE ", "                               \
+    "framerate = " GST_VIDEO_FPS_RANGE
+
 G_END_DECLS
 
 #endif /* __GST_VIDEO_FORMAT_H__ */
diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
index f77fc4c..2c4a1e8 100644
--- a/gst-libs/gst/video/video-frame.c
+++ b/gst-libs/gst/video/video-frame.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -26,6 +26,7 @@
 #include <string.h>
 #include <stdio.h>
 
+#include <gst/video/video.h>
 #include "video-frame.h"
 #include "gstvideometa.h"
 
diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h
index 8f55fbd..fd56821 100644
--- a/gst-libs/gst/video/video-frame.h
+++ b/gst-libs/gst/video/video-frame.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_FRAME_H__
diff --git a/gst-libs/gst/video/video-info.c b/gst-libs/gst/video/video-info.c
index f0f3ece..4dc2267 100644
--- a/gst-libs/gst/video/video-info.c
+++ b/gst-libs/gst/video/video-info.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -478,6 +478,7 @@
       info->size = (info->stride[0] + GST_ROUND_UP_8 (width)) * height;
       break;
     case GST_VIDEO_FORMAT_Y444:
+    case GST_VIDEO_FORMAT_GBR:
       info->stride[0] = GST_ROUND_UP_4 (width);
       info->stride[1] = info->stride[0];
       info->stride[2] = info->stride[0];
@@ -494,6 +495,13 @@
       info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
       info->size = info->stride[0] * GST_ROUND_UP_2 (height) * 3 / 2;
       break;
+    case GST_VIDEO_FORMAT_NV16:
+      info->stride[0] = GST_ROUND_UP_4 (width);
+      info->stride[1] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->size = info->stride[0] * height * 2;
+      break;
     case GST_VIDEO_FORMAT_A420:
       info->stride[0] = GST_ROUND_UP_4 (width);
       info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
@@ -542,6 +550,18 @@
           info->stride[1] * GST_ROUND_UP_2 (height);
       info->size = info->offset[2] + info->stride[2] * GST_ROUND_UP_2 (height);
       break;
+    case GST_VIDEO_FORMAT_Y444_10LE:
+    case GST_VIDEO_FORMAT_Y444_10BE:
+    case GST_VIDEO_FORMAT_GBR_10LE:
+    case GST_VIDEO_FORMAT_GBR_10BE:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->stride[1] = info->stride[0];
+      info->stride[2] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * height;
+      info->offset[2] = info->offset[1] * 2;
+      info->size = info->stride[0] * height * 3;
+      break;
     case GST_VIDEO_FORMAT_ENCODED:
       break;
     case GST_VIDEO_FORMAT_UNKNOWN:
diff --git a/gst-libs/gst/video/video-info.h b/gst-libs/gst/video/video-info.h
index ce0f0fe..2409816 100644
--- a/gst-libs/gst/video/video-info.h
+++ b/gst-libs/gst/video/video-info.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_INFO_H__
diff --git a/gst-libs/gst/video/video-orc-dist.c b/gst-libs/gst/video/video-orc-dist.c
index 12350bf..02f5783 100644
--- a/gst-libs/gst/video/video-orc-dist.c
+++ b/gst-libs/gst/video/video-orc-dist.c
@@ -219,7 +219,11 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
   orc_union32 var39;
+#endif
   orc_union32 var40;
   orc_union16 var41;
   orc_int8 var42;
@@ -324,7 +328,11 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
   orc_union32 var39;
+#endif
   orc_union32 var40;
   orc_union16 var41;
   orc_int8 var42;
@@ -435,6 +443,21 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 22, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 98, 108, 101,
+        110, 100, 95, 108, 105, 116, 116, 108, 101, 11, 4, 4, 12, 4, 4, 14,
+        4, 255, 0, 0, 0, 14, 4, 8, 0, 0, 0, 20, 4, 20, 2, 20,
+        1, 20, 4, 20, 8, 20, 8, 20, 8, 113, 32, 4, 163, 33, 32, 157,
+        34, 33, 152, 35, 34, 21, 2, 150, 38, 35, 21, 2, 95, 38, 38, 17,
+        21, 2, 150, 37, 32, 113, 32, 0, 21, 2, 150, 36, 32, 21, 2, 98,
+        37, 37, 36, 21, 2, 89, 37, 37, 38, 21, 2, 80, 37, 37, 21, 2,
+        70, 36, 36, 37, 21, 2, 157, 32, 36, 123, 32, 32, 16, 128, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_blend_little);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_blend_little");
       orc_program_set_backup_function (p, _backup_video_orc_blend_little);
@@ -482,6 +505,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -512,7 +536,11 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
   orc_union32 var40;
+#endif
   orc_union32 var41;
   orc_union32 var42;
   orc_union16 var43;
@@ -620,7 +648,11 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
   orc_union32 var40;
+#endif
   orc_union32 var41;
   orc_union32 var42;
   orc_union16 var43;
@@ -734,6 +766,21 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 98, 108, 101,
+        110, 100, 95, 98, 105, 103, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0,
+        0, 255, 14, 4, 24, 0, 0, 0, 14, 4, 8, 0, 0, 0, 20, 4,
+        20, 4, 20, 2, 20, 1, 20, 4, 20, 8, 20, 8, 20, 8, 113, 32,
+        4, 126, 33, 32, 17, 163, 34, 33, 157, 35, 34, 152, 36, 35, 21, 2,
+        150, 39, 36, 21, 2, 95, 39, 39, 18, 21, 2, 150, 38, 32, 113, 32,
+        0, 21, 2, 150, 37, 32, 21, 2, 98, 38, 38, 37, 21, 2, 89, 38,
+        38, 39, 21, 2, 80, 38, 38, 21, 2, 70, 37, 37, 38, 21, 2, 157,
+        32, 37, 123, 32, 32, 16, 128, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_blend_big);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_blend_big");
       orc_program_set_backup_function (p, _backup_video_orc_blend_big);
@@ -785,6 +832,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -817,7 +865,11 @@
   const orc_int8 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_int8 var39;
@@ -877,7 +929,11 @@
   const orc_int8 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_int8 var39;
@@ -941,6 +997,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 73, 52, 50, 48, 11, 4, 4, 12, 1, 1, 12, 1,
+        1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 1,
+        20, 1, 45, 34, 5, 45, 35, 6, 196, 32, 34, 35, 196, 33, 16, 4,
+        195, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_I420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_I420");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_I420);
@@ -964,6 +1031,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1006,10 +1074,6 @@
   orc_union32 var43;
   orc_union16 var44;
   orc_union16 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_int8 *) d2;
@@ -1059,27 +1123,21 @@
       var44.x2[1] = _src.x2[1];
       var45.x2[1] = _src.x2[0];
     }
-    /* 5: splitwb */
+    /* 5: select0wb */
     {
       orc_union16 _src;
       _src.i = var45.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
+      var40 = _src.x2[0];
     }
-    /* 6: avgub */
-    var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
-    /* 7: storeb */
+    /* 6: storeb */
     ptr1[i] = var40;
-    /* 8: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
       _src.i = var44.i;
-      var48 = _src.x2[1];
-      var49 = _src.x2[0];
+      var41 = _src.x2[0];
     }
-    /* 9: avgub */
-    var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
-    /* 10: storeb */
+    /* 8: storeb */
     ptr2[i] = var41;
   }
 
@@ -1103,10 +1161,6 @@
   orc_union32 var43;
   orc_union16 var44;
   orc_union16 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_int8 *) ex->arrays[1];
@@ -1156,27 +1210,21 @@
       var44.x2[1] = _src.x2[1];
       var45.x2[1] = _src.x2[0];
     }
-    /* 5: splitwb */
+    /* 5: select0wb */
     {
       orc_union16 _src;
       _src.i = var45.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
+      var40 = _src.x2[0];
     }
-    /* 6: avgub */
-    var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
-    /* 7: storeb */
+    /* 6: storeb */
     ptr1[i] = var40;
-    /* 8: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
       _src.i = var44.i;
-      var48 = _src.x2[1];
-      var49 = _src.x2[0];
+      var41 = _src.x2[0];
     }
-    /* 9: avgub */
-    var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
-    /* 10: storeb */
+    /* 8: storeb */
     ptr2[i] = var41;
   }
 
@@ -1196,6 +1244,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 73, 52, 50, 48, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12,
+        8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1,
+        198, 33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 199, 35, 34, 33, 188,
+        1, 34, 188, 2, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_I420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_I420");
       orc_program_set_backup_function (p, _backup_video_orc_pack_I420);
@@ -1216,14 +1275,11 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D2, ORC_VAR_T3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D3, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1257,7 +1313,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -1335,7 +1395,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -1418,6 +1482,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 89, 85, 89, 50, 11, 8, 8, 12, 4, 4, 14, 2,
+        255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 33,
+        32, 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0,
+        34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_YUY2");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_YUY2);
@@ -1437,6 +1512,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1467,14 +1543,12 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union64 *) s1;
@@ -1482,56 +1556,52 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var43.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var43.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1544,14 +1614,12 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union64 *) ex->arrays[4];
@@ -1559,56 +1627,52 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var43.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var43.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1627,6 +1691,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2,
+        20, 4, 20, 4, 21, 1, 198, 35, 34, 4, 190, 33, 35, 21, 1, 189,
+        32, 34, 21, 1, 196, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_YUY2");
       orc_program_set_backup_function (p, _backup_video_orc_pack_YUY2);
@@ -1634,20 +1708,18 @@
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t3");
       orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
 
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1678,14 +1750,12 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union64 *) s1;
@@ -1693,56 +1763,52 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[0];
-      _dest.x2[1] = var44.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var41.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[1];
-      _dest.x2[1] = var44.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var41.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1755,14 +1821,12 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union64 *) ex->arrays[4];
@@ -1770,56 +1834,52 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[0];
-      _dest.x2[1] = var44.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var41.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[1];
-      _dest.x2[1] = var44.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var41.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1838,6 +1898,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2,
+        20, 4, 20, 4, 21, 1, 198, 35, 34, 4, 190, 33, 35, 21, 1, 189,
+        32, 34, 21, 1, 196, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_UYVY");
       orc_program_set_backup_function (p, _backup_video_orc_pack_UYVY);
@@ -1845,20 +1915,18 @@
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t3");
       orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
 
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1890,7 +1958,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -1968,7 +2040,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2051,6 +2127,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 85, 89, 86, 89, 11, 8, 8, 12, 4, 4, 14, 2,
+        255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 32,
+        33, 4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0,
+        34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_UYVY");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_UYVY);
@@ -2070,6 +2157,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2101,7 +2189,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2182,7 +2274,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2268,6 +2364,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 89, 86, 89, 85, 11, 8, 8, 12, 4, 4, 14, 2,
+        255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 33,
+        32, 4, 183, 33, 33, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21,
+        1, 195, 0, 34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_YVYU);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_YVYU");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_YVYU);
@@ -2289,6 +2396,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2319,15 +2427,13 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
   orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union64 *) s1;
@@ -2335,58 +2441,54 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: swapw */
-    var45.i = ORC_SWAP_W (var43.i);
-    /* 6: mergebw */
+    /* 4: swapw */
+    var42.i = ORC_SWAP_W (var40.i);
+    /* 5: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var45.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var45.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 7: storel */
-    ptr0[i] = var38;
+    /* 6: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -2399,15 +2501,13 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
   orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union64 *) ex->arrays[4];
@@ -2415,58 +2515,54 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: swapw */
-    var45.i = ORC_SWAP_W (var43.i);
-    /* 6: mergebw */
+    /* 4: swapw */
+    var42.i = ORC_SWAP_W (var40.i);
+    /* 5: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var45.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var45.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 7: storel */
-    ptr0[i] = var38;
+    /* 6: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -2485,6 +2581,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 89, 86, 89, 85, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2,
+        20, 4, 20, 4, 21, 1, 198, 35, 34, 4, 190, 33, 35, 21, 1, 189,
+        32, 34, 183, 33, 33, 21, 1, 196, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_YVYU);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_YVYU");
       orc_program_set_backup_function (p, _backup_video_orc_pack_YVYU);
@@ -2492,22 +2598,20 @@
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t3");
       orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
 
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2540,7 +2644,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union16 var38;
   orc_union64 var39;
   orc_int8 var40;
@@ -2621,7 +2729,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union16 var38;
   orc_union64 var39;
   orc_int8 var40;
@@ -2706,6 +2818,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 89, 85, 86, 57, 11, 8, 8, 12, 2, 2, 12, 1,
+        1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 4, 20, 4,
+        20, 1, 20, 1, 45, 35, 5, 45, 36, 6, 196, 32, 35, 36, 195, 34,
+        32, 32, 21, 1, 196, 33, 16, 4, 21, 1, 195, 0, 33, 34, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_YUV9);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_YUV9");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_YUV9);
@@ -2732,6 +2856,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2768,7 +2893,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -2849,7 +2978,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -2932,6 +3065,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 89, 52, 50, 66, 11, 8, 8, 12, 2, 2, 12, 1,
+        1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4,
+        20, 4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4, 195, 34, 32, 32,
+        21, 1, 195, 0, 35, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_Y42B");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_Y42B);
@@ -2953,6 +3097,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2987,15 +3132,13 @@
   orc_int8 *ORC_RESTRICT ptr1;
   orc_int8 *ORC_RESTRICT ptr2;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
+  orc_union64 var35;
+  orc_int8 var36;
   orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
+  orc_union16 var38;
+  orc_union32 var39;
   orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union16 var41;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_int8 *) d2;
@@ -3005,54 +3148,50 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union32 _src;
-      _src.i = var36.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
-    }
-    /* 2: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 3: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var44.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 5: storeb */
-    ptr2[i] = var37;
-    /* 6: storeb */
-    ptr1[i] = var38;
-    /* 7: select1wb */
-    {
-      orc_union16 _src;
-      _src.i = var41.x2[0];
+      _src.i = var35.x2[0];
       var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var36 = _src.x2[1];
+      var37 = _src.x2[0];
+    }
+    /* 4: storeb */
+    ptr2[i] = var36;
+    /* 5: storeb */
+    ptr1[i] = var37;
+    /* 6: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var38.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var40.x2[1];
+      var38.x2[1] = _src.x2[1];
     }
-    /* 8: storew */
-    ptr0[i] = var39;
+    /* 7: storew */
+    ptr0[i] = var38;
   }
 
 }
@@ -3067,15 +3206,13 @@
   orc_int8 *ORC_RESTRICT ptr1;
   orc_int8 *ORC_RESTRICT ptr2;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
+  orc_union64 var35;
+  orc_int8 var36;
   orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
+  orc_union16 var38;
+  orc_union32 var39;
   orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union16 var41;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_int8 *) ex->arrays[1];
@@ -3085,54 +3222,50 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union32 _src;
-      _src.i = var36.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
-    }
-    /* 2: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
-    }
-    /* 3: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 4: splitwb */
-    {
-      orc_union16 _src;
-      _src.i = var44.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
-    }
-    /* 5: storeb */
-    ptr2[i] = var37;
-    /* 6: storeb */
-    ptr1[i] = var38;
-    /* 7: select1wb */
-    {
-      orc_union16 _src;
-      _src.i = var41.x2[0];
+      _src.i = var35.x2[0];
       var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
+    /* 2: select0lw */
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[0];
+    }
+    /* 3: splitwb */
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var36 = _src.x2[1];
+      var37 = _src.x2[0];
+    }
+    /* 4: storeb */
+    ptr2[i] = var36;
+    /* 5: storeb */
+    ptr1[i] = var37;
+    /* 6: select1wb */
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var38.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var40.x2[1];
+      var38.x2[1] = _src.x2[1];
     }
-    /* 8: storew */
-    ptr0[i] = var39;
+    /* 7: storew */
+    ptr0[i] = var38;
   }
 
 }
@@ -3151,6 +3284,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12,
+        8, 8, 20, 4, 20, 4, 20, 2, 21, 1, 198, 33, 32, 4, 190, 34,
+        33, 199, 2, 1, 34, 21, 1, 189, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_Y42B");
       orc_program_set_backup_function (p, _backup_video_orc_pack_Y42B);
@@ -3161,18 +3304,16 @@
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3209,7 +3350,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -3269,7 +3414,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -3331,6 +3480,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 89, 52, 52, 52, 11, 4, 4, 12, 1, 1, 12, 1,
+        1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 196, 32,
+        5, 6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_Y444");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_Y444);
@@ -3348,6 +3507,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3498,6 +3658,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 89, 52, 52, 52, 11, 1, 1, 11, 1, 1, 11, 1, 1, 12,
+        4, 4, 20, 2, 20, 2, 198, 33, 32, 4, 199, 2, 1, 33, 189, 0,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_Y444");
       orc_program_set_backup_function (p, _backup_video_orc_pack_Y444);
@@ -3514,6 +3684,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3546,9 +3717,17 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
   orc_int8 var33;
+#endif
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
   orc_union16 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
 
@@ -3591,9 +3770,17 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
   orc_int8 var33;
+#endif
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
   orc_union16 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
 
@@ -3642,6 +3829,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 22, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 71, 82, 65, 89, 56, 11, 4, 4, 12, 1, 1, 14,
+        1, 255, 0, 0, 0, 14, 2, 128, 128, 0, 0, 20, 2, 196, 32, 16,
+        4, 195, 0, 32, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_GRAY8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_GRAY8");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_GRAY8);
@@ -3655,6 +3852,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3765,6 +3963,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 71, 82, 65, 89, 56, 11, 1, 1, 12, 4, 4, 20, 2, 190,
+        32, 4, 189, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_GRAY8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_GRAY8");
       orc_program_set_backup_function (p, _backup_video_orc_pack_GRAY8);
@@ -3776,6 +3983,7 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3864,6 +4072,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 184, 0,
+        4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_BGRA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_BGRA");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_BGRA);
@@ -3872,6 +4089,7 @@
 
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3960,6 +4178,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 184, 0, 4, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_BGRA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_BGRA");
       orc_program_set_backup_function (p, _backup_video_orc_pack_BGRA);
@@ -3968,6 +4195,7 @@
 
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4152,6 +4380,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1,
+        20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 39, 38, 4,
+        199, 35, 34, 39, 199, 33, 32, 38, 196, 37, 35, 32, 196, 36, 33, 34,
+        195, 0, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_RGBA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_RGBA");
       orc_program_set_backup_function (p, _backup_video_orc_pack_RGBA);
@@ -4178,6 +4417,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4362,6 +4602,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 20, 1,
+        20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 37,
+        36, 4, 199, 34, 33, 36, 199, 32, 35, 37, 196, 38, 32, 33, 196, 39,
+        34, 35, 195, 0, 38, 39, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_RGBA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_RGBA");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_RGBA);
@@ -4388,6 +4639,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4572,6 +4824,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 20, 1,
+        20, 1, 20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 36,
+        37, 4, 199, 33, 34, 36, 199, 35, 32, 37, 196, 38, 32, 33, 196, 39,
+        34, 35, 195, 0, 38, 39, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_ABGR);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_ABGR");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_ABGR);
@@ -4598,6 +4861,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4782,6 +5046,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1,
+        20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 198, 39, 38, 4,
+        199, 35, 34, 39, 199, 33, 32, 38, 196, 37, 32, 35, 196, 36, 34, 33,
+        195, 0, 37, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_ABGR);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_ABGR");
       orc_program_set_backup_function (p, _backup_video_orc_pack_ABGR);
@@ -4808,6 +5083,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4841,7 +5117,11 @@
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var34;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union32 var39;
@@ -4912,7 +5192,11 @@
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var34;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union32 var39;
@@ -4986,6 +5270,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 78, 86, 49, 50, 11, 8, 8, 12, 2, 2, 12, 2,
+        2, 14, 1, 255, 0, 0, 0, 20, 4, 20, 4, 195, 33, 5, 5, 21,
+        1, 196, 32, 16, 4, 21, 1, 195, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_NV12);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_NV12");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_NV12);
@@ -5002,6 +5296,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5034,13 +5329,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
+  orc_union64 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_union16 *) d2;
@@ -5049,45 +5342,41 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var34 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var34.x2[0];
+      var37.x2[0] = _src.x2[1];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var36.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var34.x2[1];
+      var37.x2[1] = _src.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var37.x2[0] = _src.x2[1];
+      _src.i = var38.x2[0];
+      var35.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var37.x2[1] = _src.x2[1];
+      _src.i = var38.x2[1];
+      var35.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var37;
-    /* 4: splitlw */
+    ptr0[i] = var35;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var37.i;
+      var36.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 6: storew */
-    ptr1[i] = var38;
+    /* 5: storew */
+    ptr1[i] = var36;
   }
 
 }
@@ -5101,13 +5390,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
+  orc_union64 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_union16 *) ex->arrays[1];
@@ -5116,45 +5403,41 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var34 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var34.x2[0];
+      var37.x2[0] = _src.x2[1];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var36.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var34.x2[1];
+      var37.x2[1] = _src.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var37.x2[0] = _src.x2[1];
+      _src.i = var38.x2[0];
+      var35.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var37.x2[1] = _src.x2[1];
+      _src.i = var38.x2[1];
+      var35.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var37;
-    /* 4: splitlw */
+    ptr0[i] = var35;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var37.i;
+      var36.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 6: storew */
-    ptr1[i] = var38;
+    /* 5: storew */
+    ptr1[i] = var36;
   }
 
 }
@@ -5173,6 +5456,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 78, 86, 49, 50, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20,
+        4, 20, 4, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 190, 1,
+        33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_NV12);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_NV12");
       orc_program_set_backup_function (p, _backup_video_orc_pack_NV12);
@@ -5181,17 +5474,14 @@
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D2, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5225,7 +5515,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union16 var39;
@@ -5296,7 +5590,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union16 var39;
@@ -5371,6 +5669,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 78, 86, 50, 49, 11, 8, 8, 12, 2, 2, 12, 2,
+        2, 14, 1, 255, 0, 0, 0, 20, 2, 20, 4, 20, 4, 183, 32, 5,
+        195, 34, 32, 32, 21, 1, 196, 33, 16, 4, 21, 1, 195, 0, 33, 34,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_NV21);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_NV21");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_NV21);
@@ -5390,6 +5699,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5422,14 +5732,12 @@
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union64 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union16 var40;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_union16 *) d2;
@@ -5438,47 +5746,43 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
+      _src.i = var35.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
+      _src.i = var35.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var41.x2[0];
-      var38.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var36.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var38.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var36.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var38;
-    /* 4: splitlw */
+    ptr0[i] = var36;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 6: swapw */
-    var39.i = ORC_SWAP_W (var44.i);
-    /* 7: storew */
-    ptr1[i] = var39;
+    /* 5: swapw */
+    var37.i = ORC_SWAP_W (var40.i);
+    /* 6: storew */
+    ptr1[i] = var37;
   }
 
 }
@@ -5492,14 +5796,12 @@
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union64 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union16 var40;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_union16 *) ex->arrays[1];
@@ -5508,47 +5810,43 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
+      _src.i = var35.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
+      _src.i = var35.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var41.x2[0];
-      var38.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var36.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var38.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var36.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var38;
-    /* 4: splitlw */
+    ptr0[i] = var36;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 6: swapw */
-    var39.i = ORC_SWAP_W (var44.i);
-    /* 7: storew */
-    ptr1[i] = var39;
+    /* 5: swapw */
+    var37.i = ORC_SWAP_W (var40.i);
+    /* 6: storew */
+    ptr1[i] = var37;
   }
 
 }
@@ -5567,6 +5865,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 78, 86, 50, 49, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20,
+        4, 20, 4, 20, 2, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32,
+        190, 34, 33, 183, 1, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_NV21);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_NV21");
       orc_program_set_backup_function (p, _backup_video_orc_pack_NV21);
@@ -5576,19 +5884,16 @@
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 2, "t5");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
-          ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5752,6 +6057,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 65, 52, 50, 48, 11, 4, 4, 12, 1, 1, 12, 1,
+        1, 12, 1, 1, 12, 1, 1, 20, 2, 20, 2, 20, 1, 20, 1, 45,
+        34, 5, 45, 35, 6, 196, 32, 34, 35, 196, 33, 7, 4, 195, 0, 33,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_unpack_A420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_unpack_A420");
       orc_program_set_backup_function (p, _backup_video_orc_unpack_A420);
@@ -5775,6 +6091,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5812,19 +6129,15 @@
   orc_int8 *ORC_RESTRICT ptr2;
   orc_union16 *ORC_RESTRICT ptr3;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_int8 var41;
-  orc_int8 var42;
-  orc_union32 var43;
-  orc_union32 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
-  orc_int8 var50;
+  orc_union64 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_int8 *) d2;
@@ -5835,81 +6148,75 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var38 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var38.x2[0];
-      var43.x2[0] = _src.x2[1];
-      var44.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var38.x2[1];
-      var43.x2[1] = _src.x2[1];
-      var44.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var39.x2[0] = _src.x2[1];
+      _src.i = var42.x2[0];
+      var37.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var42.x2[1];
+      var37.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var39;
+    ptr0[i] = var37;
     /* 4: select0wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var42.x2[0];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var42.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 5: storew */
-    ptr3[i] = var40;
+    ptr3[i] = var38;
     /* 6: splitwb */
     {
       orc_union16 _src;
-      _src.i = var43.x2[0];
-      var45.x2[0] = _src.x2[1];
-      var46.x2[0] = _src.x2[0];
+      _src.i = var41.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var43.x2[1];
-      var45.x2[1] = _src.x2[1];
-      var46.x2[1] = _src.x2[0];
+      _src.i = var41.x2[1];
+      var43.x2[1] = _src.x2[1];
+      var44.x2[1] = _src.x2[0];
     }
-    /* 7: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
-      _src.i = var46.i;
-      var47 = _src.x2[1];
-      var48 = _src.x2[0];
+      _src.i = var44.i;
+      var39 = _src.x2[0];
     }
-    /* 8: avgub */
-    var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
-    /* 9: storeb */
-    ptr1[i] = var41;
-    /* 10: splitwb */
+    /* 8: storeb */
+    ptr1[i] = var39;
+    /* 9: select0wb */
     {
       orc_union16 _src;
-      _src.i = var45.i;
-      var49 = _src.x2[1];
-      var50 = _src.x2[0];
+      _src.i = var43.i;
+      var40 = _src.x2[0];
     }
-    /* 11: avgub */
-    var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
-    /* 12: storeb */
-    ptr2[i] = var42;
+    /* 10: storeb */
+    ptr2[i] = var40;
   }
 
 }
@@ -5925,19 +6232,15 @@
   orc_int8 *ORC_RESTRICT ptr2;
   orc_union16 *ORC_RESTRICT ptr3;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_int8 var41;
-  orc_int8 var42;
-  orc_union32 var43;
-  orc_union32 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
-  orc_int8 var50;
+  orc_union64 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_int8 *) ex->arrays[1];
@@ -5948,81 +6251,75 @@
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var38 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var38.x2[0];
-      var43.x2[0] = _src.x2[1];
-      var44.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var38.x2[1];
-      var43.x2[1] = _src.x2[1];
-      var44.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var39.x2[0] = _src.x2[1];
+      _src.i = var42.x2[0];
+      var37.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var42.x2[1];
+      var37.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var39;
+    ptr0[i] = var37;
     /* 4: select0wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var42.x2[0];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var42.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 5: storew */
-    ptr3[i] = var40;
+    ptr3[i] = var38;
     /* 6: splitwb */
     {
       orc_union16 _src;
-      _src.i = var43.x2[0];
-      var45.x2[0] = _src.x2[1];
-      var46.x2[0] = _src.x2[0];
+      _src.i = var41.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var43.x2[1];
-      var45.x2[1] = _src.x2[1];
-      var46.x2[1] = _src.x2[0];
+      _src.i = var41.x2[1];
+      var43.x2[1] = _src.x2[1];
+      var44.x2[1] = _src.x2[0];
     }
-    /* 7: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
-      _src.i = var46.i;
-      var47 = _src.x2[1];
-      var48 = _src.x2[0];
+      _src.i = var44.i;
+      var39 = _src.x2[0];
     }
-    /* 8: avgub */
-    var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
-    /* 9: storeb */
-    ptr1[i] = var41;
-    /* 10: splitwb */
+    /* 8: storeb */
+    ptr1[i] = var39;
+    /* 9: select0wb */
     {
       orc_union16 _src;
-      _src.i = var45.i;
-      var49 = _src.x2[1];
-      var50 = _src.x2[0];
+      _src.i = var43.i;
+      var40 = _src.x2[0];
     }
-    /* 11: avgub */
-    var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
-    /* 12: storeb */
-    ptr2[i] = var42;
+    /* 10: storeb */
+    ptr2[i] = var40;
   }
 
 }
@@ -6042,6 +6339,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
+        107, 95, 65, 52, 50, 48, 11, 2, 2, 11, 1, 1, 11, 1, 1, 11,
+        2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198,
+        33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 188, 3, 32, 21, 1, 199,
+        35, 34, 33, 188, 1, 34, 188, 2, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_pack_A420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_pack_A420");
       orc_program_set_backup_function (p, _backup_video_orc_pack_A420);
@@ -6054,8 +6362,6 @@
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
       orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 1, "t5");
-      orc_program_add_temporary (p, 1, "t6");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
@@ -6065,14 +6371,11 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D2, ORC_VAR_T3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D3, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6190,6 +6493,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 114, 101, 115,
+        97, 109, 112, 108, 101, 95, 98, 105, 108, 105, 110, 101, 97, 114, 95,
+            117,
+        51, 50, 11, 4, 4, 12, 4, 4, 16, 4, 16, 4, 51, 0, 4, 24,
+        25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_orc_resample_bilinear_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_resample_bilinear_u32");
       orc_program_set_backup_function (p,
@@ -6201,6 +6516,7 @@
 
       orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_P1, ORC_VAR_P2);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6238,7 +6554,11 @@
   orc_int8 var36;
   orc_int8 var37;
   orc_union16 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
   orc_union16 var39;
+#endif
   orc_int8 var40;
   orc_int8 var41;
   orc_union16 var42;
@@ -6296,7 +6616,11 @@
   orc_int8 var36;
   orc_int8 var37;
   orc_union16 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
   orc_union16 var39;
+#endif
   orc_int8 var40;
   orc_int8 var41;
   orc_union16 var42;
@@ -6357,6 +6681,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 109, 101, 114,
+        103, 101, 95, 108, 105, 110, 101, 97, 114, 95, 117, 56, 11, 1, 1, 12,
+        1, 1, 12, 1, 1, 14, 4, 128, 0, 0, 0, 16, 1, 20, 2, 20,
+        2, 20, 1, 20, 1, 43, 34, 4, 150, 32, 4, 150, 33, 5, 98, 33,
+        33, 32, 89, 33, 33, 24, 70, 33, 33, 16, 158, 35, 33, 33, 0, 35,
+        34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_merge_linear_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_orc_merge_linear_u8");
       orc_program_set_backup_function (p, _backup_video_orc_merge_linear_u8);
@@ -6386,6 +6722,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst-libs/gst/video/video-orc.orc b/gst-libs/gst/video/video-orc.orc
index e13aaff..533d9d3 100644
--- a/gst-libs/gst/video/video-orc.orc
+++ b/gst-libs/gst/video/video-orc.orc
@@ -93,10 +93,8 @@
 x2 splitlw uv, ay, ayuv
 x2 select1wb y, ay
 x2 splitwb vv, uu, uv
-splitwb t1, t2, uu
-avgub u, t1, t2
-splitwb t1, t2, vv
-avgub v, t1, t2
+select0wb u, uu
+select0wb v, vv
 
 .function video_orc_unpack_YUY2
 .dest 8 ayuv guint8
@@ -117,32 +115,28 @@
 .dest 4 yuy2 guint8
 .source 8 ayuv guint8
 .temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
+.temp 2 uv
 .temp 4 ayay
 .temp 4 uvuv
 
 x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
+select0lw uv, uvuv
 x2 select1wb yy, ayay
-x2 mergebw yuy2, yy, uv1
+x2 mergebw yuy2, yy, uv
 
 
 .function video_orc_pack_UYVY
 .dest 4 yuy2 guint8
 .source 8 ayuv guint8
 .temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
+.temp 2 uv
 .temp 4 ayay
 .temp 4 uvuv
 
 x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
+select0lw uv, uvuv
 x2 select1wb yy, ayay
-x2 mergebw yuy2, uv1, yy
+x2 mergebw yuy2, uv, yy
 
 
 .function video_orc_unpack_UYVY
@@ -180,17 +174,15 @@
 .dest 4 yuy2 guint8
 .source 8 ayuv guint8
 .temp 2 yy
-.temp 2 uv1
-.temp 2 uv2
+.temp 2 uv
 .temp 4 ayay
 .temp 4 uvuv
 
 x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
+select0lw uv, uvuv
 x2 select1wb yy, ayay
-swapw uv1, uv1
-x2 mergebw yuy2, yy, uv1
+swapw uv, uv
+x2 mergebw yuy2, yy, uv
 
 
 .function video_orc_unpack_YUV9
@@ -236,13 +228,11 @@
 .source 8 ayuv guint8
 .temp 4 ayay
 .temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
+.temp 2 uv
 
 x2 splitlw uvuv, ayay, ayuv
-splitlw uv1, uv2, uvuv
-x2 avgub uv1, uv1, uv2
-splitwb v, u, uv1
+select0lw uv, uvuv
+splitwb v, u, uv
 x2 select1wb y, ayay
 
 
@@ -400,13 +390,10 @@
 .source 8 ayuv guint8
 .temp 4 ay
 .temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
 
 x2 splitlw uvuv, ay, ayuv
 x2 select1wb y, ay
-splitlw uv1, uv2, uvuv
-x2 avgub uv, uv1, uv2
+select0lw uv, uvuv
 
 .function video_orc_unpack_NV21
 .dest 8 d guint8
@@ -429,17 +416,13 @@
 .source 8 ayuv guint8
 .temp 4 ay
 .temp 4 uvuv
-.temp 2 uv1
-.temp 2 uv2
 .temp 2 uv
 
 x2 splitlw uvuv, ay, ayuv
 x2 select1wb y, ay
-splitlw uv1, uv2, uvuv
-x2 avgub uv, uv1, uv2
+select0lw uv, uvuv
 swapw vu, uv
 
-
 .function video_orc_unpack_A420
 .dest 4 d guint8
 .source 1 y guint8
@@ -467,17 +450,13 @@
 .temp 4 uv
 .temp 2 uu
 .temp 2 vv
-.temp 1 t1
-.temp 1 t2
 
 x2 splitlw uv, ay, ayuv
 x2 select1wb y, ay
 x2 select0wb a, ay
 x2 splitwb vv, uu, uv
-splitwb t1, t2, uu
-avgub u, t1, t2
-splitwb t1, t2, vv
-avgub v, t1, t2
+select0wb u, uu
+select0wb v, vv
 
 .function video_orc_resample_bilinear_u32
 .dest 4 d1 guint8
diff --git a/gst-libs/gst/video/video-overlay-composition.c b/gst-libs/gst/video/video-overlay-composition.c
index 9c3e239..6f22877 100644
--- a/gst-libs/gst/video/video-overlay-composition.c
+++ b/gst-libs/gst/video/video-overlay-composition.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -438,6 +438,10 @@
  * contained in @video_buf. The data in @video_buf must be writable and
  * mapped appropriately.
  */
+/* FIXME: formats with more than 8 bit per component which get unpacked into
+ * ARGB64 or AYUV64 (such as v210, v216, UYVP, GRAY16_LE and GRAY16_BE)
+ * are not supported yet by the code in video-blend.c.
+ */
 gboolean
 gst_video_overlay_composition_blend (GstVideoOverlayComposition * comp,
     GstVideoFrame * video_buf)
@@ -1056,7 +1060,7 @@
         b = CLAMP (b, 0, 255);
 
         /* native endian ARGB */
-        *ddata = ((a << 24) | (r << 16) | (g << 8) | b);
+        *(guint32 *) ddata = ((a << 24) | (r << 16) | (g << 8) | b);
 
         sdata += 4;
         ddata += 4;
@@ -1071,7 +1075,7 @@
     for (k = 0; k < height; k++) {
       for (l = 0; l < width; l++) {
         /* native endian ARGB */
-        argb = *sdata;
+        argb = *(guint32 *) sdata;
         a = argb >> 24;
         r = (argb >> 16) & 0xff;
         g = (argb >> 8) & 0xff;
diff --git a/gst-libs/gst/video/video-overlay-composition.h b/gst-libs/gst/video/video-overlay-composition.h
index d2f62d0..6dfa556 100644
--- a/gst-libs/gst/video/video-overlay-composition.h
+++ b/gst-libs/gst/video/video-overlay-composition.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_OVERLAY_COMPOSITION_H__
@@ -119,6 +119,19 @@
   */
 #define GST_VIDEO_OVERLAY_COMPOSITION_FORMAT_YUV      GST_VIDEO_FORMAT_AYUV
 
+/**
+ * GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS:
+ *
+ * Video formats supported by gst_video_overlay_composition_blend(), for
+ * use in overlay elements' pad template caps.
+ *
+ * Since: 1.2
+ */
+#define GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS \
+    "{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR," \
+     " I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444," \
+     " NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }"
+
 GType                        gst_video_overlay_rectangle_get_type (void);
 
 GstVideoOverlayRectangle *   gst_video_overlay_rectangle_new_raw  (GstBuffer * pixels,
diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
index 56da373..2812a11 100644
--- a/gst-libs/gst/video/video.c
+++ b/gst-libs/gst/video/video.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
index cafa58c..bd01ac5 100644
--- a/gst-libs/gst/video/video.h
+++ b/gst-libs/gst/video/video.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_H__
@@ -24,7 +24,6 @@
 
 typedef struct _GstVideoAlignment GstVideoAlignment;
 
-#include <gst/video/video-event.h>
 #include <gst/video/video-format.h>
 #include <gst/video/video-color.h>
 #include <gst/video/video-info.h>
@@ -82,6 +81,23 @@
                                               const GstCaps * to_caps,
                                               GstClockTime    timeout,
                                               GError       ** error);
+
 G_END_DECLS
 
+#include <gst/video/colorbalancechannel.h>
+#include <gst/video/colorbalance.h>
+#include <gst/video/gstvideodecoder.h>
+#include <gst/video/gstvideoencoder.h>
+#include <gst/video/gstvideofilter.h>
+#include <gst/video/gstvideometa.h>
+#include <gst/video/gstvideopool.h>
+#include <gst/video/gstvideosink.h>
+#include <gst/video/gstvideoutils.h>
+#include <gst/video/navigation.h>
+#include <gst/video/video-blend.h>
+#include <gst/video/video-event.h>
+#include <gst/video/videoorientation.h>
+#include <gst/video/video-overlay-composition.h>
+#include <gst/video/videooverlay.h>
+
 #endif /* __GST_VIDEO_H__ */
diff --git a/gst-libs/gst/video/videoorientation.c b/gst-libs/gst/video/videoorientation.c
index 7369668..2ed53f5 100644
--- a/gst-libs/gst/video/videoorientation.c
+++ b/gst-libs/gst/video/videoorientation.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst-libs/gst/video/videoorientation.h b/gst-libs/gst/video/videoorientation.h
index c7407b7..9930f28 100644
--- a/gst-libs/gst/video/videoorientation.h
+++ b/gst-libs/gst/video/videoorientation.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_ORIENTATION_H__
diff --git a/gst-libs/gst/video/videooverlay.c b/gst-libs/gst/video/videooverlay.c
index 7c2d9b0..a560822 100644
--- a/gst-libs/gst/video/videooverlay.c
+++ b/gst-libs/gst/video/videooverlay.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:gstvideooverlay
diff --git a/gst-libs/gst/video/videooverlay.h b/gst-libs/gst/video/videooverlay.h
index 2c01c5d..36c2dd2 100644
--- a/gst-libs/gst/video/videooverlay.h
+++ b/gst-libs/gst/video/videooverlay.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_OVERLAY_H__
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index 6e83ec4..0f925df 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,61 +36,21 @@
 
  <release>
   <Version>
-   <revision>1.0.8</revision>
-   <branch>1.0</branch>
+   <revision>1.1.2</revision>
+   <branch>1.1</branch>
    <name></name>
    <created>2013-07-11</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.8.tar.xz" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.1.2.tar.xz" />
   </Version>
  </release>
 
  <release>
   <Version>
-   <revision>1.0.7</revision>
-   <branch>1.0</branch>
+   <revision>1.1.1</revision>
+   <branch>1.1</branch>
    <name></name>
-   <created>2013-04-26</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.7.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.6</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-03-22</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.6.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.5</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2013-01-08</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.5.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.4</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2012-12-18</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.4.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.0.3</revision>
-   <branch>1.0</branch>
-   <name></name>
-   <created>2012-11-21</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.0.3.tar.xz" />
+   <created>2013-06-05</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.1.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index a525d3f..f61b1b8 100644
--- a/gst-plugins-base.spec
+++ b/gst-plugins-base.spec
@@ -4,7 +4,7 @@
 %define gst_minver  0.11.0
 
 Name: 		%{gstreamer}-plugins-base
-Version: 	1.0.8
+Version: 	1.1.2
 Release: 	1.gst
 Summary: 	GStreamer streaming media framework plug-ins
 
@@ -93,6 +93,7 @@
 %{_libdir}/libgstrtsp-%{majorminor}.so.*
 %{_libdir}/libgstsdp-%{majorminor}.so.*
 %{_libdir}/libgstapp-%{majorminor}.so.*
+%{_libdir}/libgstallocators-%{majorminor}.so.*
 
 # base plugins without external dependencies
 %{_libdir}/gstreamer-%{majorminor}/libgstadder.so
@@ -111,8 +112,6 @@
 %{_libdir}/gstreamer-%{majorminor}/libgstapp.so
 %{_libdir}/gstreamer-%{majorminor}/libgstencodebin.so
 %{_libdir}/gstreamer-%{majorminor}/libgstsubparse.so
-%{_libdir}/gstreamer-%{majorminor}/libgstximagesink.so
-
 
 # Here are packages not in the base plugins package but not dependant
 # on an external lib
@@ -156,13 +155,12 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/video/video-frame.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/video-info.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/video-overlay-composition.h
-
+%{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstrtphdrext.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/audio.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiofilter.h
 %{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-ids.h
 %{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-media.h
 %{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-read.h
-%{_includedir}/gstreamer-%{majorminor}/gst/video/video.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideopool.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideometa.h
 %{_includedir}/gstreamer-%{majorminor}//gst/audio/gstaudiometa.h
@@ -170,14 +168,12 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstrtpbuffer.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudioclock.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiosink.h
-%{_includedir}/gstreamer-%{majorminor}/gst/tag/tag.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideofilter.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideosink.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiocdsrc.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/descriptions.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/install-plugins.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/missing-plugins.h
-%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/pbutils.h
 %{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstrtcpbuffer.h
 %{_includedir}/gstreamer-%{majorminor}/gst/fft/gstfft.h
 %{_includedir}/gstreamer-%{majorminor}/gst/fft/gstfftf32.h
@@ -222,6 +218,23 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/video/colorbalancechannel.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/videoorientation.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/videooverlay.h
+%{_includedir}/gstreamer-%{majorminor}/gst/app/app.h
+%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/pbutils.h
+%{_includedir}/gstreamer-%{majorminor}/gst/riff/riff.h
+%{_includedir}/gstreamer-%{majorminor}/gst/rtp/rtp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/rtsp/rtsp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/tag/tag.h
+%{_includedir}/gstreamer-%{majorminor}/gst/video/video.h
+%{_includedir}/gstreamer-%{majorminor}/gst/fft/fft.h
+%{_includedir}/gstreamer-%{majorminor}/gst/rtsp/gstrtsp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/sdp/sdp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/allocators/allocators.h
+%{_includedir}/gstreamer-%{majorminor}/gst/allocators/gstdmabuf.h
+%{_libdir}/girepository-1.0/GstAllocators-1.0.typelib
+%{_libdir}/libgstallocators-1.0.so
+%{_libdir}/pkgconfig/gstreamer-allocators-1.0.pc
+%{_datadir}/gir-1.0/GstAllocators-1.0.gir
+
 
 %{_libdir}/libgstfft-%{majorminor}.so
 %{_libdir}/libgstrtsp-%{majorminor}.so
diff --git a/gst-plugins-base.spec.in b/gst-plugins-base.spec.in
index 2104761..1339f90 100644
--- a/gst-plugins-base.spec.in
+++ b/gst-plugins-base.spec.in
@@ -93,6 +93,7 @@
 %{_libdir}/libgstrtsp-%{majorminor}.so.*
 %{_libdir}/libgstsdp-%{majorminor}.so.*
 %{_libdir}/libgstapp-%{majorminor}.so.*
+%{_libdir}/libgstallocators-%{majorminor}.so.*
 
 # base plugins without external dependencies
 %{_libdir}/gstreamer-%{majorminor}/libgstadder.so
@@ -111,8 +112,6 @@
 %{_libdir}/gstreamer-%{majorminor}/libgstapp.so
 %{_libdir}/gstreamer-%{majorminor}/libgstencodebin.so
 %{_libdir}/gstreamer-%{majorminor}/libgstsubparse.so
-%{_libdir}/gstreamer-%{majorminor}/libgstximagesink.so
-
 
 # Here are packages not in the base plugins package but not dependant
 # on an external lib
@@ -156,13 +155,12 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/video/video-frame.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/video-info.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/video-overlay-composition.h
-
+%{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstrtphdrext.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/audio.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiofilter.h
 %{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-ids.h
 %{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-media.h
 %{_includedir}/gstreamer-%{majorminor}/gst/riff/riff-read.h
-%{_includedir}/gstreamer-%{majorminor}/gst/video/video.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideopool.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideometa.h
 %{_includedir}/gstreamer-%{majorminor}//gst/audio/gstaudiometa.h
@@ -170,14 +168,12 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstrtpbuffer.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudioclock.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiosink.h
-%{_includedir}/gstreamer-%{majorminor}/gst/tag/tag.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideofilter.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/gstvideosink.h
 %{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiocdsrc.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/descriptions.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/install-plugins.h
 %{_includedir}/gstreamer-%{majorminor}/gst/pbutils/missing-plugins.h
-%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/pbutils.h
 %{_includedir}/gstreamer-%{majorminor}/gst/rtp/gstrtcpbuffer.h
 %{_includedir}/gstreamer-%{majorminor}/gst/fft/gstfft.h
 %{_includedir}/gstreamer-%{majorminor}/gst/fft/gstfftf32.h
@@ -222,6 +218,23 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/video/colorbalancechannel.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/videoorientation.h
 %{_includedir}/gstreamer-%{majorminor}/gst/video/videooverlay.h
+%{_includedir}/gstreamer-%{majorminor}/gst/app/app.h
+%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/pbutils.h
+%{_includedir}/gstreamer-%{majorminor}/gst/riff/riff.h
+%{_includedir}/gstreamer-%{majorminor}/gst/rtp/rtp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/rtsp/rtsp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/tag/tag.h
+%{_includedir}/gstreamer-%{majorminor}/gst/video/video.h
+%{_includedir}/gstreamer-%{majorminor}/gst/fft/fft.h
+%{_includedir}/gstreamer-%{majorminor}/gst/rtsp/gstrtsp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/sdp/sdp.h
+%{_includedir}/gstreamer-%{majorminor}/gst/allocators/allocators.h
+%{_includedir}/gstreamer-%{majorminor}/gst/allocators/gstdmabuf.h
+%{_libdir}/girepository-1.0/GstAllocators-1.0.typelib
+%{_libdir}/libgstallocators-1.0.so
+%{_libdir}/pkgconfig/gstreamer-allocators-1.0.pc
+%{_datadir}/gir-1.0/GstAllocators-1.0.gir
+
 
 %{_libdir}/libgstfft-%{majorminor}.so
 %{_libdir}/libgstrtsp-%{majorminor}.so
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 51dee5a..c2e82fc 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = gst
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -103,21 +129,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -125,9 +158,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -490,22 +543,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -520,57 +576,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -586,12 +597,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -603,15 +609,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -620,6 +622,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -780,22 +797,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/gst/adder/Makefile.in b/gst/adder/Makefile.in
index aae7dea..c565506 100644
--- a/gst/adder/Makefile.in
+++ b/gst/adder/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,15 +102,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/adder
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -163,10 +189,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstadder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstadder_la_CFLAGS) $(CFLAGS) \
 	$(libgstadder_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -179,20 +218,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstadder_la_SOURCES) $(nodist_libgstadder_la_SOURCES)
 DIST_SOURCES = $(libgstadder_la_SOURCES)
 am__can_run_installinfo = \
@@ -201,6 +236,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -551,6 +603,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -577,12 +630,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstadder.la: $(libgstadder_la_OBJECTS) $(libgstadder_la_DEPENDENCIES) $(EXTRA_libgstadder_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstadder_la_LINK) -rpath $(plugindir) $(libgstadder_la_OBJECTS) $(libgstadder_la_LIBADD) $(LIBS)
 
@@ -636,26 +692,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -667,15 +712,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -684,6 +725,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -834,19 +890,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES ctags \
-	dist-hook distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am dist-hook distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c
index 50ab980..78f7c82 100644
--- a/gst/adder/gstadder.c
+++ b/gst/adder/gstadder.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-adder
@@ -49,20 +49,103 @@
 #include <string.h>             /* strcmp */
 #include "gstadderorc.h"
 
-/* highest positive/lowest negative x-bit value we can use for clamping */
-#define MAX_INT_32  ((gint32) (0x7fffffff))
-#define MAX_INT_16  ((gint16) (0x7fff))
-#define MAX_INT_8   ((gint8)  (0x7f))
-#define MAX_UINT_32 ((guint32)(0xffffffff))
-#define MAX_UINT_16 ((guint16)(0xffff))
-#define MAX_UINT_8  ((guint8) (0xff))
+#define GST_CAT_DEFAULT gst_adder_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-#define MIN_INT_32  ((gint32) (0x80000000))
-#define MIN_INT_16  ((gint16) (0x8000))
-#define MIN_INT_8   ((gint8)  (0x80))
-#define MIN_UINT_32 ((guint32)(0x00000000))
-#define MIN_UINT_16 ((guint16)(0x0000))
-#define MIN_UINT_8  ((guint8) (0x00))
+#define DEFAULT_PAD_VOLUME (1.0)
+#define DEFAULT_PAD_MUTE (FALSE)
+
+/* some defines for audio processing */
+/* the volume factor is a range from 0.0 to (arbitrary) VOLUME_MAX_DOUBLE = 10.0
+ * we map 1.0 to VOLUME_UNITY_INT*
+ */
+#define VOLUME_UNITY_INT8            8  /* internal int for unity 2^(8-5) */
+#define VOLUME_UNITY_INT8_BIT_SHIFT  3  /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT16           2048       /* internal int for unity 2^(16-5) */
+#define VOLUME_UNITY_INT16_BIT_SHIFT 11 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT24           524288     /* internal int for unity 2^(24-5) */
+#define VOLUME_UNITY_INT24_BIT_SHIFT 19 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT32           134217728  /* internal int for unity 2^(32-5) */
+#define VOLUME_UNITY_INT32_BIT_SHIFT 27
+
+enum
+{
+  PROP_PAD_0,
+  PROP_PAD_VOLUME,
+  PROP_PAD_MUTE
+};
+
+G_DEFINE_TYPE (GstAdderPad, gst_adder_pad, GST_TYPE_PAD);
+
+static void
+gst_adder_pad_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstAdderPad *pad = GST_ADDER_PAD (object);
+
+  switch (prop_id) {
+    case PROP_PAD_VOLUME:
+      g_value_set_double (value, pad->volume);
+      break;
+    case PROP_PAD_MUTE:
+      g_value_set_boolean (value, pad->mute);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_adder_pad_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstAdderPad *pad = GST_ADDER_PAD (object);
+
+  switch (prop_id) {
+    case PROP_PAD_VOLUME:
+      GST_OBJECT_LOCK (pad);
+      pad->volume = g_value_get_double (value);
+      pad->volume_i8 = pad->volume * VOLUME_UNITY_INT8;
+      pad->volume_i16 = pad->volume * VOLUME_UNITY_INT16;
+      pad->volume_i32 = pad->volume * VOLUME_UNITY_INT32;
+      GST_OBJECT_UNLOCK (pad);
+      break;
+    case PROP_PAD_MUTE:
+      GST_OBJECT_LOCK (pad);
+      pad->mute = g_value_get_boolean (value);
+      GST_OBJECT_UNLOCK (pad);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_adder_pad_class_init (GstAdderPadClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+
+  gobject_class->set_property = gst_adder_pad_set_property;
+  gobject_class->get_property = gst_adder_pad_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_PAD_VOLUME,
+      g_param_spec_double ("volume", "Volume", "Volume of this pad",
+          0.0, 10.0, DEFAULT_PAD_VOLUME,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_PAD_MUTE,
+      g_param_spec_boolean ("mute", "Mute", "Mute this pad",
+          DEFAULT_PAD_MUTE,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_adder_pad_init (GstAdderPad * pad)
+{
+  pad->volume = DEFAULT_PAD_VOLUME;
+  pad->mute = DEFAULT_PAD_MUTE;
+}
 
 enum
 {
@@ -70,9 +153,6 @@
   PROP_FILTER_CAPS
 };
 
-#define GST_CAT_DEFAULT gst_adder_debug
-GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
-
 /* elementfactory information */
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
@@ -99,8 +179,11 @@
     GST_STATIC_CAPS (CAPS)
     );
 
+static void gst_adder_child_proxy_init (gpointer g_iface, gpointer iface_data);
+
 #define gst_adder_parent_class parent_class
-G_DEFINE_TYPE (GstAdder, gst_adder, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE_WITH_CODE (GstAdder, gst_adder, GST_TYPE_ELEMENT,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_CHILD_PROXY, gst_adder_child_proxy_init));
 
 static void gst_adder_dispose (GObject * object);
 static void gst_adder_set_property (GObject * object, guint prop_id,
@@ -132,18 +215,6 @@
 static GstFlowReturn gst_adder_collected (GstCollectPads * pads,
     gpointer user_data);
 
-/* non-clipping versions (for float) */
-#define MAKE_FUNC_NC(name,type)                                 \
-static void name (type *out, type *in, gint samples) {          \
-  gint i;                                                       \
-  for (i = 0; i < samples; i++)                                 \
-    out[i] += in[i];                                            \
-}
-
-/* *INDENT-OFF* */
-MAKE_FUNC_NC (adder_orc_add_float64, gdouble)
-/* *INDENT-ON* */
-
 /* we can only accept caps that we and downstream can handle.
  * if we have filtercaps set, use those to constrain the target caps.
  */
@@ -151,7 +222,7 @@
 gst_adder_sink_getcaps (GstPad * pad, GstCaps * filter)
 {
   GstAdder *adder;
-  GstCaps *result, *peercaps, *sinkcaps, *filter_caps;
+  GstCaps *result, *peercaps, *current_caps, *filter_caps;
 
   adder = GST_ADDER (GST_PAD_PARENT (pad));
 
@@ -178,33 +249,37 @@
   peercaps = gst_pad_peer_query_caps (adder->srcpad, filter_caps);
 
   /* get the allowed caps on this sinkpad */
-  sinkcaps = gst_pad_get_current_caps (pad);
-  if (sinkcaps == NULL) {
-    sinkcaps = gst_pad_get_pad_template_caps (pad);
-    if (!sinkcaps)
-      sinkcaps = gst_caps_new_any ();
+  GST_OBJECT_LOCK (adder);
+  current_caps =
+      adder->current_caps ? gst_caps_ref (adder->current_caps) : NULL;
+  if (current_caps == NULL) {
+    current_caps = gst_pad_get_pad_template_caps (pad);
+    if (!current_caps)
+      current_caps = gst_caps_new_any ();
   }
+  GST_OBJECT_UNLOCK (adder);
 
   if (peercaps) {
     /* if the peer has caps, intersect */
-    GST_DEBUG_OBJECT (adder, "intersecting peer and template caps");
+    GST_DEBUG_OBJECT (adder, "intersecting peer and our caps");
     result =
-        gst_caps_intersect_full (peercaps, sinkcaps, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_intersect_full (peercaps, current_caps,
+        GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (peercaps);
-    gst_caps_unref (sinkcaps);
+    gst_caps_unref (current_caps);
   } else {
     /* the peer has no caps (or there is no peer), just use the allowed caps
      * of this sinkpad. */
     /* restrict with filter-caps if any */
     if (filter_caps) {
-      GST_DEBUG_OBJECT (adder, "no peer caps, using filtered sinkcaps");
+      GST_DEBUG_OBJECT (adder, "no peer caps, using filtered caps");
       result =
-          gst_caps_intersect_full (filter_caps, sinkcaps,
+          gst_caps_intersect_full (filter_caps, current_caps,
           GST_CAPS_INTERSECT_FIRST);
-      gst_caps_unref (sinkcaps);
+      gst_caps_unref (current_caps);
     } else {
-      GST_DEBUG_OBJECT (adder, "no peer caps, using sinkcaps");
-      result = sinkcaps;
+      GST_DEBUG_OBJECT (adder, "no peer caps, using our caps");
+      result = current_caps;
     }
   }
 
@@ -243,121 +318,44 @@
   return res;
 }
 
-typedef struct
-{
-  GstPad *pad;
-  GstCaps *caps;
-} IterData;
-
-static void
-setcapsfunc (const GValue * item, IterData * data)
-{
-  GstPad *otherpad = g_value_get_object (item);
-
-  if (otherpad != data->pad) {
-    GST_LOG_OBJECT (data->pad, "calling set_caps with %" GST_PTR_FORMAT,
-        data->caps);
-    gst_pad_set_caps (data->pad, data->caps);
-    gst_pad_use_fixed_caps (data->pad);
-  }
-}
-
 /* the first caps we receive on any of the sinkpads will define the caps for all
  * the other sinkpads because we can only mix streams with the same caps.
  */
 static gboolean
 gst_adder_setcaps (GstAdder * adder, GstPad * pad, GstCaps * caps)
 {
-  GstIterator *it;
-  GstIteratorResult ires;
-  IterData idata;
-  gboolean done;
+  GstAudioInfo info;
 
-  /* this gets called recursively due to gst_iterator_foreach calling
-   * gst_pad_set_caps() */
-  if (adder->in_setcaps)
-    return TRUE;
+  if (!gst_audio_info_from_caps (&info, caps))
+    goto invalid_format;
 
+  GST_OBJECT_LOCK (adder);
   /* don't allow reconfiguration for now; there's still a race between the
    * different upstream threads doing query_caps + accept_caps + sending
    * (possibly different) CAPS events, but there's not much we can do about
    * that, upstream needs to deal with it. */
   if (adder->current_caps != NULL) {
-    /* FIXME: not quite right for optional fields such as channel-mask, which
-     * may or may not be present for mono/stereo */
-    if (gst_caps_is_equal (caps, adder->current_caps)) {
+    if (gst_audio_info_is_equal (&info, &adder->info)) {
+      GST_OBJECT_UNLOCK (adder);
       return TRUE;
     } else {
       GST_DEBUG_OBJECT (pad, "got input caps %" GST_PTR_FORMAT ", but "
           "current caps are %" GST_PTR_FORMAT, caps, adder->current_caps);
+      GST_OBJECT_UNLOCK (adder);
       gst_pad_push_event (pad, gst_event_new_reconfigure ());
       return FALSE;
     }
   }
 
   GST_INFO_OBJECT (pad, "setting caps to %" GST_PTR_FORMAT, caps);
-
   adder->current_caps = gst_caps_ref (caps);
+
+  memcpy (&adder->info, &info, sizeof (info));
+  GST_OBJECT_UNLOCK (adder);
   /* send caps event later, after stream-start event */
 
-  it = gst_element_iterate_pads (GST_ELEMENT_CAST (adder));
-
-  /* FIXME, see if the other pads can accept the format. Also lock the
-   * format on the other pads to this new format. */
-  idata.caps = caps;
-  idata.pad = pad;
-
-  adder->in_setcaps = TRUE;
-  done = FALSE;
-  while (!done) {
-    ires = gst_iterator_foreach (it, (GstIteratorForeachFunction) setcapsfunc,
-        &idata);
-
-    switch (ires) {
-      case GST_ITERATOR_RESYNC:
-        gst_iterator_resync (it);
-        break;
-      default:
-        done = TRUE;
-        break;
-    }
-  }
-  adder->in_setcaps = FALSE;
-  gst_iterator_free (it);
-
   GST_INFO_OBJECT (pad, "handle caps change to %" GST_PTR_FORMAT, caps);
 
-  if (!gst_audio_info_from_caps (&adder->info, caps))
-    goto invalid_format;
-
-  switch (GST_AUDIO_INFO_FORMAT (&adder->info)) {
-    case GST_AUDIO_FORMAT_S8:
-      adder->func = (GstAdderFunction) adder_orc_add_int8;
-      break;
-    case GST_AUDIO_FORMAT_U8:
-      adder->func = (GstAdderFunction) adder_orc_add_uint8;
-      break;
-    case GST_AUDIO_FORMAT_S16:
-      adder->func = (GstAdderFunction) adder_orc_add_int16;
-      break;
-    case GST_AUDIO_FORMAT_U16:
-      adder->func = (GstAdderFunction) adder_orc_add_uint16;
-      break;
-    case GST_AUDIO_FORMAT_S32:
-      adder->func = (GstAdderFunction) adder_orc_add_int32;
-      break;
-    case GST_AUDIO_FORMAT_U32:
-      adder->func = (GstAdderFunction) adder_orc_add_uint32;
-      break;
-    case GST_AUDIO_FORMAT_F32:
-      adder->func = (GstAdderFunction) adder_orc_add_float32;
-      break;
-    case GST_AUDIO_FORMAT_F64:
-      adder->func = (GstAdderFunction) adder_orc_add_float64;
-      break;
-    default:
-      goto invalid_format;
-  }
   return TRUE;
 
   /* ERRORS */
@@ -693,24 +691,34 @@
     {
       GstSeekFlags flags;
       gdouble rate;
-      GstSeekType curtype, endtype;
-      gint64 cur, end;
+      GstSeekType start_type, stop_type;
+      gint64 start, stop;
+      GstFormat seek_format, dest_format;
       gboolean flush;
 
       /* parse the seek parameters */
-      gst_event_parse_seek (event, &rate, NULL, &flags, &curtype,
-          &cur, &endtype, &end);
+      gst_event_parse_seek (event, &rate, &seek_format, &flags, &start_type,
+          &start, &stop_type, &stop);
 
-      if ((curtype != GST_SEEK_TYPE_NONE) && (curtype != GST_SEEK_TYPE_SET)) {
+      if ((start_type != GST_SEEK_TYPE_NONE)
+          && (start_type != GST_SEEK_TYPE_SET)) {
         result = FALSE;
         GST_DEBUG_OBJECT (adder,
-            "seeking failed, unhandled seek type for start: %d", curtype);
+            "seeking failed, unhandled seek type for start: %d", start_type);
         goto done;
       }
-      if ((endtype != GST_SEEK_TYPE_NONE) && (endtype != GST_SEEK_TYPE_SET)) {
+      if ((stop_type != GST_SEEK_TYPE_NONE) && (stop_type != GST_SEEK_TYPE_SET)) {
         result = FALSE;
         GST_DEBUG_OBJECT (adder,
-            "seeking failed, unhandled seek type for end: %d", endtype);
+            "seeking failed, unhandled seek type for end: %d", stop_type);
+        goto done;
+      }
+
+      dest_format = adder->segment.format;
+      if (seek_format != dest_format) {
+        result = FALSE;
+        GST_DEBUG_OBJECT (adder,
+            "seeking failed, unhandled seek format: %d", seek_format);
         goto done;
       }
 
@@ -733,7 +741,10 @@
          * forwarding the seek upstream or from gst_adder_collected,
          * whichever happens first.
          */
-        g_atomic_int_set (&adder->flush_stop_pending, TRUE);
+        GST_COLLECT_PADS_STREAM_LOCK (adder->collect);
+        adder->flush_stop_pending = TRUE;
+        GST_COLLECT_PADS_STREAM_UNLOCK (adder->collect);
+        GST_DEBUG_OBJECT (adder, "mark pending flush stop event");
       }
       GST_DEBUG_OBJECT (adder, "handling seek event: %" GST_PTR_FORMAT, event);
 
@@ -741,15 +752,13 @@
        * segment. After we have the lock, no collect function is running and no
        * new collect function will be called for as long as we're flushing. */
       GST_COLLECT_PADS_STREAM_LOCK (adder->collect);
-      adder->segment.rate = rate;
-      if (curtype == GST_SEEK_TYPE_SET)
-        adder->segment.start = cur;
-      else
-        adder->segment.start = 0;
-      if (endtype == GST_SEEK_TYPE_SET)
-        adder->segment.stop = end;
-      else
-        adder->segment.stop = GST_CLOCK_TIME_NONE;
+      /* clip position and update our segment */
+      if (adder->segment.stop != -1) {
+        adder->segment.position = adder->segment.stop;
+      }
+      gst_segment_do_seek (&adder->segment, rate, seek_format, flags,
+          start_type, start, stop_type, stop, NULL);
+
       if (flush) {
         /* Yes, we need to call _set_flushing again *WHEN* the streaming threads
          * have stopped so that the cookie gets properly updated. */
@@ -758,10 +767,12 @@
       GST_COLLECT_PADS_STREAM_UNLOCK (adder->collect);
       GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
           event);
+      GST_DEBUG_OBJECT (adder, "updated segment: %" GST_SEGMENT_FORMAT,
+          &adder->segment);
 
       /* we're forwarding seek to all upstream peers and wait for one to reply
        * with a newsegment-event before we send a newsegment-event downstream */
-      g_atomic_int_set (&adder->wait_for_new_segment, TRUE);
+      g_atomic_int_set (&adder->new_segment_pending, TRUE);
       result = forward_event (adder, event, flush);
       if (!result) {
         /* seek failed. maybe source is a live source. */
@@ -770,7 +781,10 @@
       if (g_atomic_int_compare_and_exchange (&adder->flush_stop_pending,
               TRUE, FALSE)) {
         GST_DEBUG_OBJECT (adder, "pending flush stop");
-        gst_pad_push_event (adder->srcpad, gst_event_new_flush_stop (TRUE));
+        if (!gst_pad_push_event (adder->srcpad,
+                gst_event_new_flush_stop (TRUE))) {
+          GST_WARNING_OBJECT (adder, "Sending flush stop event failed");
+        }
       }
       break;
     }
@@ -816,19 +830,32 @@
       res = gst_adder_setcaps (adder, pad->pad, caps);
       gst_event_unref (event);
       event = NULL;
+      break;
     }
+    case GST_EVENT_FLUSH_START:
+      /* ensure that we will send a flush stop */
+      res = gst_collect_pads_event_default (pads, pad, event, discard);
+      event = NULL;
+      GST_COLLECT_PADS_STREAM_LOCK (adder->collect);
+      adder->flush_stop_pending = TRUE;
+      GST_COLLECT_PADS_STREAM_UNLOCK (adder->collect);
+      break;
     case GST_EVENT_FLUSH_STOP:
       /* we received a flush-stop. We will only forward it when
        * flush_stop_pending is set, and we will unset it then.
        */
-      if (g_atomic_int_compare_and_exchange (&adder->flush_stop_pending,
-              TRUE, FALSE)) {
-        g_atomic_int_set (&adder->new_segment_pending, TRUE);
+      g_atomic_int_set (&adder->new_segment_pending, TRUE);
+      GST_COLLECT_PADS_STREAM_LOCK (adder->collect);
+      if (adder->flush_stop_pending) {
         GST_DEBUG_OBJECT (pad->pad, "forwarding flush stop");
+        res = gst_collect_pads_event_default (pads, pad, event, discard);
+        adder->flush_stop_pending = FALSE;
+        event = NULL;
       } else {
         discard = TRUE;
         GST_DEBUG_OBJECT (pad->pad, "eating flush stop");
       }
+      GST_COLLECT_PADS_STREAM_UNLOCK (adder->collect);
       /* Clear pending tags */
       if (adder->pending_events) {
         g_list_foreach (adder->pending_events, (GFunc) gst_event_unref, NULL);
@@ -841,15 +868,20 @@
       adder->pending_events = g_list_append (adder->pending_events, event);
       event = NULL;
       break;
-    case GST_EVENT_SEGMENT:
-      if (g_atomic_int_compare_and_exchange (&adder->wait_for_new_segment,
-              TRUE, FALSE)) {
-        /* make sure we push a new segment, to inform about new basetime
-         * see FIXME in gst_adder_collected() */
-        g_atomic_int_set (&adder->new_segment_pending, TRUE);
+    case GST_EVENT_SEGMENT:{
+      const GstSegment *segment;
+      gst_event_parse_segment (event, &segment);
+      if (segment->rate != adder->segment.rate) {
+        GST_ERROR_OBJECT (pad->pad,
+            "Got segment event with wrong rate %lf, expected %lf",
+            segment->rate, adder->segment.rate);
+        res = FALSE;
+        gst_event_unref (event);
+        event = NULL;
       }
       discard = TRUE;
       break;
+    }
     default:
       break;
   }
@@ -911,7 +943,6 @@
   adder->current_caps = NULL;
   gst_audio_info_init (&adder->info);
   adder->padcount = 0;
-  adder->func = NULL;
 
   adder->filter_caps = NULL;
 
@@ -1019,7 +1050,8 @@
   padcount = g_atomic_int_add (&adder->padcount, 1);
 
   name = g_strdup_printf ("sink_%u", padcount);
-  newpad = gst_pad_new_from_template (templ, name);
+  newpad = g_object_new (GST_TYPE_ADDER_PAD, "name", name, "direction",
+      templ->direction, "template", templ, NULL);
   GST_DEBUG_OBJECT (adder, "request new pad %s", name);
   g_free (name);
 
@@ -1030,6 +1062,9 @@
   if (!gst_element_add_pad (GST_ELEMENT (adder), newpad))
     goto could_not_add;
 
+  gst_child_proxy_child_added (GST_CHILD_PROXY (adder), G_OBJECT (newpad),
+      GST_OBJECT_NAME (newpad));
+
   return newpad;
 
   /* errors */
@@ -1056,6 +1091,8 @@
 
   GST_DEBUG_OBJECT (adder, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad));
 
+  gst_child_proxy_child_removed (GST_CHILD_PROXY (adder), G_OBJECT (pad),
+      GST_OBJECT_NAME (pad));
   if (adder->collect)
     gst_collect_pads_remove_pad (adder->collect, pad);
   gst_element_remove_pad (element, pad);
@@ -1105,19 +1142,32 @@
   gint64 next_offset;
   gint64 next_timestamp;
   gint rate, bps, bpf;
+  gboolean had_mute = FALSE;
 
   adder = GST_ADDER (user_data);
 
   /* this is fatal */
-  if (G_UNLIKELY (adder->func == NULL))
+  if (G_UNLIKELY (adder->info.finfo->format == GST_AUDIO_FORMAT_UNKNOWN))
     goto not_negotiated;
 
+  if (adder->flush_stop_pending == TRUE) {
+    GST_INFO_OBJECT (adder->srcpad, "send pending flush stop event");
+    if (!gst_pad_push_event (adder->srcpad, gst_event_new_flush_stop (TRUE))) {
+      GST_WARNING_OBJECT (adder->srcpad, "Sending flush stop event failed");
+    }
+
+    adder->flush_stop_pending = FALSE;
+  }
+
   if (adder->send_stream_start) {
     gchar s_id[32];
 
+    GST_INFO_OBJECT (adder->srcpad, "send pending stream start event");
     /* stream-start (FIXME: create id based on input ids) */
     g_snprintf (s_id, sizeof (s_id), "adder-%08x", g_random_int ());
-    gst_pad_push_event (adder->srcpad, gst_event_new_stream_start (s_id));
+    if (!gst_pad_push_event (adder->srcpad, gst_event_new_stream_start (s_id))) {
+      GST_WARNING_OBJECT (adder->srcpad, "Sending stream start event failed");
+    }
     adder->send_stream_start = FALSE;
   }
 
@@ -1125,17 +1175,14 @@
     GstEvent *caps_event;
 
     caps_event = gst_event_new_caps (adder->current_caps);
-    GST_INFO_OBJECT (adder, "caps event %" GST_PTR_FORMAT, caps_event);
-    gst_pad_push_event (adder->srcpad, caps_event);
+    GST_INFO_OBJECT (adder->srcpad, "send pending caps event %" GST_PTR_FORMAT,
+        caps_event);
+    if (!gst_pad_push_event (adder->srcpad, caps_event)) {
+      GST_WARNING_OBJECT (adder->srcpad, "Sending caps event failed");
+    }
     adder->send_caps = FALSE;
   }
 
-  if (g_atomic_int_compare_and_exchange (&adder->flush_stop_pending,
-          TRUE, FALSE)) {
-    GST_DEBUG_OBJECT (adder, "pending flush stop");
-    gst_pad_push_event (adder->srcpad, gst_event_new_flush_stop (TRUE));
-  }
-
   /* get available bytes for reading, this can be 0 which could mean empty
    * buffers or EOS, which we will catch when we loop over the pads. */
   outsize = gst_collect_pads_available (pads);
@@ -1155,11 +1202,14 @@
     GstCollectData *collect_data;
     GstBuffer *inbuf;
     gboolean is_gap;
+    GstAdderPad *pad;
+    GstClockTime timestamp, stream_time;
 
     /* take next to see if this is the last collectdata */
     next = g_slist_next (collected);
 
     collect_data = (GstCollectData *) collected->data;
+    pad = GST_ADDER_PAD (collect_data->pad);
 
     /* get a buffer of size bytes, if we get a buffer, it is at least outsize
      * bytes big. */
@@ -1171,6 +1221,24 @@
       continue;
     }
 
+    timestamp = GST_BUFFER_TIMESTAMP (inbuf);
+    stream_time =
+        gst_segment_to_stream_time (&collect_data->segment, GST_FORMAT_TIME,
+        timestamp);
+
+    /* sync object properties on stream time */
+    if (GST_CLOCK_TIME_IS_VALID (stream_time))
+      gst_object_sync_values (GST_OBJECT (pad), stream_time);
+
+    GST_OBJECT_LOCK (pad);
+    if (pad->mute || pad->volume < G_MINDOUBLE) {
+      had_mute = TRUE;
+      GST_DEBUG_OBJECT (adder, "channel %p: skipping muted pad", collect_data);
+      gst_buffer_unref (inbuf);
+      GST_OBJECT_UNLOCK (pad);
+      continue;
+    }
+
     is_gap = GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_GAP);
 
     /* Try to make an output buffer */
@@ -1186,6 +1254,7 @@
           gapbuf = inbuf;
         else
           gst_buffer_unref (inbuf);
+        GST_OBJECT_UNLOCK (pad);
         continue;
       }
 
@@ -1196,7 +1265,47 @@
        * are the only one referencing this buffer. If this is the last (and
        * only) GAP buffer, it will automatically copy the GAP flag. */
       outbuf = gst_buffer_make_writable (inbuf);
-      gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
+      gst_buffer_map (outbuf, &outmap, GST_MAP_READWRITE);
+
+      if (pad->volume != 1.0) {
+        switch (adder->info.finfo->format) {
+          case GST_AUDIO_FORMAT_U8:
+            adder_orc_volume_u8 ((gpointer) outmap.data, pad->volume_i8,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_S8:
+            adder_orc_volume_s8 ((gpointer) outmap.data, pad->volume_i8,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_U16:
+            adder_orc_volume_u16 ((gpointer) outmap.data, pad->volume_i16,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_S16:
+            adder_orc_volume_s16 ((gpointer) outmap.data, pad->volume_i16,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_U32:
+            adder_orc_volume_u32 ((gpointer) outmap.data, pad->volume_i32,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_S32:
+            adder_orc_volume_s32 ((gpointer) outmap.data, pad->volume_i32,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_F32:
+            adder_orc_volume_f32 ((gpointer) outmap.data, pad->volume,
+                outmap.size / bps);
+            break;
+          case GST_AUDIO_FORMAT_F64:
+            adder_orc_volume_f64 ((gpointer) outmap.data, pad->volume,
+                outmap.size / bps);
+            break;
+          default:
+            g_assert_not_reached ();
+            break;
+        }
+      }
     } else {
       if (!is_gap) {
         /* we had a previous output buffer, mix this non-GAP buffer */
@@ -1212,8 +1321,83 @@
             " from data %p", collect_data, inmap.size, inmap.data);
 
         /* further buffers, need to add them */
-        adder->func ((gpointer) outmap.data, (gpointer) inmap.data,
-            inmap.size / bps);
+        if (pad->volume == 1.0) {
+          switch (adder->info.finfo->format) {
+            case GST_AUDIO_FORMAT_U8:
+              adder_orc_add_u8 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_S8:
+              adder_orc_add_s8 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_U16:
+              adder_orc_add_u16 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_S16:
+              adder_orc_add_s16 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_U32:
+              adder_orc_add_u32 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_S32:
+              adder_orc_add_s32 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_F32:
+              adder_orc_add_f32 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_F64:
+              adder_orc_add_f64 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, inmap.size / bps);
+              break;
+            default:
+              g_assert_not_reached ();
+              break;
+          }
+        } else {
+          switch (adder->info.finfo->format) {
+            case GST_AUDIO_FORMAT_U8:
+              adder_orc_add_volume_u8 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume_i8, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_S8:
+              adder_orc_add_volume_s8 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume_i8, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_U16:
+              adder_orc_add_volume_u16 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume_i16, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_S16:
+              adder_orc_add_volume_s16 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume_i16, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_U32:
+              adder_orc_add_volume_u32 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume_i32, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_S32:
+              adder_orc_add_volume_s32 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume_i32, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_F32:
+              adder_orc_add_volume_f32 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume, inmap.size / bps);
+              break;
+            case GST_AUDIO_FORMAT_F64:
+              adder_orc_add_volume_f64 ((gpointer) outmap.data,
+                  (gpointer) inmap.data, pad->volume, inmap.size / bps);
+              break;
+            default:
+              g_assert_not_reached ();
+              break;
+          }
+        }
         gst_buffer_unmap (inbuf, &inmap);
       } else {
         /* skip gap buffer */
@@ -1221,6 +1405,7 @@
       }
       gst_buffer_unref (inbuf);
     }
+    GST_OBJECT_UNLOCK (pad);
   }
   if (outbuf)
     gst_buffer_unmap (outbuf, &outmap);
@@ -1230,26 +1415,34 @@
     if (gapbuf) {
       GST_LOG_OBJECT (adder, "reusing GAP buffer %p", gapbuf);
       outbuf = gapbuf;
-    } else
+    } else if (had_mute) {
+      GstMapInfo map;
+
+      /* Means we had all pads muted, create some silence */
+      outbuf = gst_buffer_new_allocate (NULL, outsize, NULL);
+      gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
+      gst_audio_format_fill_silence (adder->info.finfo, map.data, outsize);
+      gst_buffer_unmap (outbuf, &map);
+      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP);
+    } else {
       /* assume EOS otherwise, this should not happen, really */
       goto eos;
-  } else if (gapbuf)
+    }
+  } else if (gapbuf) {
     /* we had an output buffer, unref the gapbuffer we kept */
     gst_buffer_unref (gapbuf);
+  }
 
   if (g_atomic_int_compare_and_exchange (&adder->new_segment_pending, TRUE,
           FALSE)) {
     GstEvent *event;
 
-    /* FIXME, use rate/applied_rate as set on all sinkpads.
-     * - currently we just set rate as received from last seek-event
-     *
+    /* 
      * When seeking we set the start and stop positions as given in the seek
      * event. We also adjust offset & timestamp accordingly.
      * This basically ignores all newsegments sent by upstream.
      */
     event = gst_event_new_segment (&adder->segment);
-
     if (adder->segment.rate > 0.0) {
       adder->segment.position = adder->segment.start;
     } else {
@@ -1257,11 +1450,9 @@
     }
     adder->offset = gst_util_uint64_scale (adder->segment.position,
         rate, GST_SECOND);
-    GST_INFO_OBJECT (adder, "seg_start %" G_GUINT64_FORMAT ", seg_end %"
-        G_GUINT64_FORMAT, adder->segment.start, adder->segment.stop);
-    GST_INFO_OBJECT (adder, "timestamp %" G_GINT64_FORMAT ",new offset %"
-        G_GINT64_FORMAT, adder->segment.position, adder->offset);
 
+    GST_INFO_OBJECT (adder->srcpad, "sending pending new segment event %"
+        GST_SEGMENT_FORMAT, &adder->segment);
     if (event) {
       if (!gst_pad_push_event (adder->srcpad, event)) {
         GST_WARNING_OBJECT (adder->srcpad, "Sending new segment event failed");
@@ -1350,11 +1541,9 @@
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      adder->segment.position = 0;
       adder->offset = 0;
       adder->flush_stop_pending = FALSE;
       adder->new_segment_pending = TRUE;
-      adder->wait_for_new_segment = FALSE;
       adder->send_stream_start = TRUE;
       adder->send_caps = TRUE;
       gst_caps_replace (&adder->current_caps, NULL);
@@ -1382,6 +1571,45 @@
   return ret;
 }
 
+/* GstChildProxy implementation */
+static GObject *
+gst_adder_child_proxy_get_child_by_index (GstChildProxy * child_proxy,
+    guint index)
+{
+  GstAdder *adder = GST_ADDER (child_proxy);
+  GObject *obj = NULL;
+
+  GST_OBJECT_LOCK (adder);
+  obj = g_list_nth_data (GST_ELEMENT_CAST (adder)->sinkpads, index);
+  if (obj)
+    gst_object_ref (obj);
+  GST_OBJECT_UNLOCK (adder);
+  return obj;
+}
+
+static guint
+gst_adder_child_proxy_get_children_count (GstChildProxy * child_proxy)
+{
+  guint count = 0;
+  GstAdder *adder = GST_ADDER (child_proxy);
+
+  GST_OBJECT_LOCK (adder);
+  count = GST_ELEMENT_CAST (adder)->numsinkpads;
+  GST_OBJECT_UNLOCK (adder);
+  GST_INFO_OBJECT (adder, "Children Count: %d", count);
+  return count;
+}
+
+static void
+gst_adder_child_proxy_init (gpointer g_iface, gpointer iface_data)
+{
+  GstChildProxyInterface *iface = g_iface;
+
+  GST_INFO ("intializing child proxy interface");
+  iface->get_child_by_index = gst_adder_child_proxy_get_child_by_index;
+  iface->get_children_count = gst_adder_child_proxy_get_children_count;
+}
+
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
diff --git a/gst/adder/gstadder.h b/gst/adder/gstadder.h
index 9c61e12..c21a5e3 100644
--- a/gst/adder/gstadder.h
+++ b/gst/adder/gstadder.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ADDER_H__
@@ -38,9 +38,9 @@
 
 typedef struct _GstAdder             GstAdder;
 typedef struct _GstAdderClass        GstAdderClass;
-typedef struct _GstAdderInputChannel GstAdderInputChannel;
 
-typedef void (*GstAdderFunction) (gpointer out, gpointer in, guint size);
+typedef struct _GstAdderPad GstAdderPad;
+typedef struct _GstAdderPadClass GstAdderPadClass;
 
 /**
  * GstAdder:
@@ -58,17 +58,12 @@
   /* the next are valid for both int and float */
   GstAudioInfo    info;
 
-  /* function to add samples */
-  GstAdderFunction func;
-
   /* counters to keep track of timestamps */
   gint64          offset;
 
   /* sink event handling */
   GstSegment      segment;
   volatile gboolean new_segment_pending;
-  volatile gboolean wait_for_new_segment;
-  /* src event handling */
   volatile gboolean flush_stop_pending;
 
   /* current caps */
@@ -80,8 +75,6 @@
   /* Pending inline events */
   GList *pending_events;
   
-  gboolean in_setcaps;
-
   gboolean send_stream_start;
   gboolean send_caps;
 };
@@ -92,6 +85,29 @@
 
 GType    gst_adder_get_type (void);
 
+#define GST_TYPE_ADDER_PAD            (gst_adder_pad_get_type())
+#define GST_ADDER_PAD(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ADDER_PAD,GstAdderPad))
+#define GST_IS_ADDER_PAD(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ADDER_PAD))
+#define GST_ADDER_PAD_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_ADDER_PAD,GstAdderPadClass))
+#define GST_IS_ADDER_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_ADDER_PAD))
+#define GST_ADDER_PAD_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_ADDER_PAD,GstAdderPadClass))
+
+struct _GstAdderPad {
+  GstPad parent;
+
+  gdouble volume;
+  gint volume_i32;
+  gint volume_i16;
+  gint volume_i8;
+  gboolean mute;
+};
+
+struct _GstAdderPadClass {
+  GstPadClass parent_class;
+};
+
+GType gst_adder_pad_get_type (void);
+
 G_END_DECLS
 
 
diff --git a/gst/adder/gstadderorc-dist.c b/gst/adder/gstadderorc-dist.c
index b3b4907..d0077a1 100644
--- a/gst/adder/gstadderorc-dist.c
+++ b/gst/adder/gstadderorc-dist.c
@@ -95,20 +95,46 @@
 #ifndef DISABLE_ORC
 #include <orc/orc.h>
 #endif
-void adder_orc_add_int32 (gint32 * ORC_RESTRICT d1,
+void adder_orc_add_s32 (gint32 * ORC_RESTRICT d1,
     const gint32 * ORC_RESTRICT s1, int n);
-void adder_orc_add_int16 (gint16 * ORC_RESTRICT d1,
+void adder_orc_add_s16 (gint16 * ORC_RESTRICT d1,
     const gint16 * ORC_RESTRICT s1, int n);
-void adder_orc_add_int8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
+void adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
     int n);
-void adder_orc_add_uint32 (guint32 * ORC_RESTRICT d1,
+void adder_orc_add_u32 (guint32 * ORC_RESTRICT d1,
     const guint32 * ORC_RESTRICT s1, int n);
-void adder_orc_add_uint16 (guint16 * ORC_RESTRICT d1,
+void adder_orc_add_u16 (guint16 * ORC_RESTRICT d1,
     const guint16 * ORC_RESTRICT s1, int n);
-void adder_orc_add_uint8 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, int n);
-void adder_orc_add_float32 (float *ORC_RESTRICT d1,
-    const float *ORC_RESTRICT s1, int n);
+void adder_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n);
+void adder_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
+    int n);
+void adder_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
+    int n);
+void adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_f32 (float *ORC_RESTRICT d1, float p1, int n);
+void adder_orc_volume_f64 (double *ORC_RESTRICT d1, double p1, int n);
+void adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1,
+    const gint8 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_f32 (float *ORC_RESTRICT d1,
+    const float *ORC_RESTRICT s1, float p1, int n);
+void adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
+    const double *ORC_RESTRICT s1, double p1, int n);
 
 
 /* begin Orc C target preamble */
@@ -155,10 +181,10 @@
 
 
 
-/* adder_orc_add_int32 */
+/* adder_orc_add_s32 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_int32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
+adder_orc_add_s32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
     int n)
 {
   int i;
@@ -187,7 +213,7 @@
 
 #else
 static void
-_backup_adder_orc_add_int32 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_s32 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -215,7 +241,7 @@
 }
 
 void
-adder_orc_add_int32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
+adder_orc_add_s32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
     int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -228,14 +254,24 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 115, 51, 50, 11, 4, 4, 12, 4, 4, 104, 0, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_s32);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_int32");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_int32);
+      orc_program_set_name (p, "adder_orc_add_s32");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_s32);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
 
       orc_program_append_2 (p, "addssl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -257,10 +293,10 @@
 #endif
 
 
-/* adder_orc_add_int16 */
+/* adder_orc_add_s16 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_int16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1,
+adder_orc_add_s16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1,
     int n)
 {
   int i;
@@ -289,7 +325,7 @@
 
 #else
 static void
-_backup_adder_orc_add_int16 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_s16 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -317,7 +353,7 @@
 }
 
 void
-adder_orc_add_int16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1,
+adder_orc_add_s16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1,
     int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -330,14 +366,24 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 115, 49, 54, 11, 2, 2, 12, 2, 2, 71, 0, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_s16);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_int16");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_int16);
+      orc_program_set_name (p, "adder_orc_add_s16");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_s16);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 2, "s1");
 
       orc_program_append_2 (p, "addssw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -359,11 +405,10 @@
 #endif
 
 
-/* adder_orc_add_int8 */
+/* adder_orc_add_s8 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_int8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
-    int n)
+adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n)
 {
   int i;
   orc_int8 *ORC_RESTRICT ptr0;
@@ -391,7 +436,7 @@
 
 #else
 static void
-_backup_adder_orc_add_int8 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_s8 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -419,8 +464,7 @@
 }
 
 void
-adder_orc_add_int8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
-    int n)
+adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -432,14 +476,23 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 16, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 115, 56, 11, 1, 1, 12, 1, 1, 34, 0, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_s8);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_int8");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_int8);
+      orc_program_set_name (p, "adder_orc_add_s8");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_s8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 1, "s1");
 
       orc_program_append_2 (p, "addssb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -461,11 +514,11 @@
 #endif
 
 
-/* adder_orc_add_uint32 */
+/* adder_orc_add_u32 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_uint32 (guint32 * ORC_RESTRICT d1,
-    const guint32 * ORC_RESTRICT s1, int n)
+adder_orc_add_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
+    int n)
 {
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
@@ -495,7 +548,7 @@
 
 #else
 static void
-_backup_adder_orc_add_uint32 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_u32 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -525,8 +578,8 @@
 }
 
 void
-adder_orc_add_uint32 (guint32 * ORC_RESTRICT d1,
-    const guint32 * ORC_RESTRICT s1, int n)
+adder_orc_add_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
+    int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -538,14 +591,24 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 105, 0, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_u32);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_uint32");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_uint32);
+      orc_program_set_name (p, "adder_orc_add_u32");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_u32);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
 
       orc_program_append_2 (p, "addusl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -567,11 +630,11 @@
 #endif
 
 
-/* adder_orc_add_uint16 */
+/* adder_orc_add_u16 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_uint16 (guint16 * ORC_RESTRICT d1,
-    const guint16 * ORC_RESTRICT s1, int n)
+adder_orc_add_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1,
+    int n)
 {
   int i;
   orc_union16 *ORC_RESTRICT ptr0;
@@ -599,7 +662,7 @@
 
 #else
 static void
-_backup_adder_orc_add_uint16 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_u16 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -627,8 +690,8 @@
 }
 
 void
-adder_orc_add_uint16 (guint16 * ORC_RESTRICT d1,
-    const guint16 * ORC_RESTRICT s1, int n)
+adder_orc_add_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1,
+    int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -640,14 +703,24 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 117, 49, 54, 11, 2, 2, 12, 2, 2, 72, 0, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_u16);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_uint16");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_uint16);
+      orc_program_set_name (p, "adder_orc_add_u16");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_u16);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 2, "s1");
 
       orc_program_append_2 (p, "addusw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -669,10 +742,10 @@
 #endif
 
 
-/* adder_orc_add_uint8 */
+/* adder_orc_add_u8 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_uint8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+adder_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     int n)
 {
   int i;
@@ -701,7 +774,7 @@
 
 #else
 static void
-_backup_adder_orc_add_uint8 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_u8 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -729,7 +802,7 @@
 }
 
 void
-adder_orc_add_uint8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+adder_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -742,14 +815,23 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 16, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 117, 56, 11, 1, 1, 12, 1, 1, 35, 0, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_u8);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_uint8");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_uint8);
+      orc_program_set_name (p, "adder_orc_add_u8");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_u8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 1, "s1");
 
       orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -771,11 +853,10 @@
 #endif
 
 
-/* adder_orc_add_float32 */
+/* adder_orc_add_f32 */
 #ifdef DISABLE_ORC
 void
-adder_orc_add_float32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
-    int n)
+adder_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1, int n)
 {
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
@@ -811,7 +892,7 @@
 
 #else
 static void
-_backup_adder_orc_add_float32 (OrcExecutor * ORC_RESTRICT ex)
+_backup_adder_orc_add_f32 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -847,8 +928,7 @@
 }
 
 void
-adder_orc_add_float32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
-    int n)
+adder_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -860,14 +940,24 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 102, 51, 50, 11, 4, 4, 12, 4, 4, 200, 0, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_f32);
+#else
       p = orc_program_new ();
-      orc_program_set_name (p, "adder_orc_add_float32");
-      orc_program_set_backup_function (p, _backup_adder_orc_add_float32);
+      orc_program_set_name (p, "adder_orc_add_f32");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_f32);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 4, "s1");
 
       orc_program_append_2 (p, "addf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -887,3 +977,2640 @@
   func (ex);
 }
 #endif
+
+
+/* adder_orc_add_f64 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var32;
+  orc_union64 var33;
+  orc_union64 var34;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var32 = ptr0[i];
+    /* 1: loadq */
+    var33 = ptr4[i];
+    /* 2: addd */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+      _dest1.f = _src1.f + _src2.f;
+      var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_f64 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var32;
+  orc_union64 var33;
+  orc_union64 var34;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var32 = ptr0[i];
+    /* 1: loadq */
+    var33 = ptr4[i];
+    /* 2: addd */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+      _dest1.f = _src1.f + _src2.f;
+      var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+adder_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 17, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 102, 54, 52, 11, 8, 8, 12, 8, 8, 212, 0, 0, 4, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_f64);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_f64");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_f64);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+
+      orc_program_append_2 (p, "addd", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_u8 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var35;
+#else
+  orc_int8 var35;
+#endif
+  orc_int8 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var37;
+#else
+  orc_int8 var37;
+#endif
+  orc_int8 var38;
+  orc_int8 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_int8 var42;
+
+  ptr0 = (orc_int8 *) d1;
+
+  /* 1: loadpb */
+  var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 3: loadpb */
+  var36 = p1;
+  /* 7: loadpb */
+  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr0[i];
+    /* 2: xorb */
+    var39 = var34 ^ var35;
+    /* 4: mulsbw */
+    var40.i = var39 * var36;
+    /* 5: shrsw */
+    var41.i = var40.i >> 3;
+    /* 6: convssswb */
+    var42 = ORC_CLAMP_SB (var41.i);
+    /* 8: xorb */
+    var38 = var42 ^ var37;
+    /* 9: storeb */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var35;
+#else
+  orc_int8 var35;
+#endif
+  orc_int8 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var37;
+#else
+  orc_int8 var37;
+#endif
+  orc_int8 var38;
+  orc_int8 var39;
+  orc_union16 var40;
+  orc_union16 var41;
+  orc_int8 var42;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+
+  /* 1: loadpb */
+  var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 3: loadpb */
+  var36 = ex->params[24];
+  /* 7: loadpb */
+  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr0[i];
+    /* 2: xorb */
+    var39 = var34 ^ var35;
+    /* 4: mulsbw */
+    var40.i = var39 * var36;
+    /* 5: shrsw */
+    var41.i = var40.i >> 3;
+    /* 6: convssswb */
+    var42 = ORC_CLAMP_SB (var41.i);
+    /* 8: xorb */
+    var38 = var42 ^ var37;
+    /* 9: storeb */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 117, 56, 11, 1, 1, 14, 1, 128, 0, 0, 0, 14,
+        4, 3, 0, 0, 0, 16, 1, 20, 2, 20, 1, 68, 33, 0, 16, 174,
+        32, 33, 24, 94, 32, 32, 17, 159, 33, 32, 68, 0, 33, 16, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_u8");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_constant (p, 4, 0x00000003, "c2");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+
+      orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_D1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "xorb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_s8 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_int8 *) d1;
+
+  /* 1: loadpb */
+  var34 = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr0[i];
+    /* 2: mulsbw */
+    var36.i = var33 * var34;
+    /* 3: shrsw */
+    var37.i = var36.i >> 3;
+    /* 4: convssswb */
+    var35 = ORC_CLAMP_SB (var37.i);
+    /* 5: storeb */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_s8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  orc_int8 var33;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+
+  /* 1: loadpb */
+  var34 = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var33 = ptr0[i];
+    /* 2: mulsbw */
+    var36.i = var33 * var34;
+    /* 3: shrsw */
+    var37.i = var36.i >> 3;
+    /* 4: convssswb */
+    var35 = ORC_CLAMP_SB (var37.i);
+    /* 5: storeb */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 19, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 115, 56, 11, 1, 1, 14, 4, 3, 0, 0, 0, 16,
+        1, 20, 2, 174, 32, 0, 24, 94, 32, 32, 16, 159, 0, 32, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_s8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_s8");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_s8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_u16 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
+  orc_union16 var35;
+#endif
+  orc_union16 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
+  orc_union16 var37;
+#endif
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union16 *) d1;
+
+  /* 1: loadpw */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+  /* 3: loadpw */
+  var36.i = p1;
+  /* 7: loadpw */
+  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr0[i];
+    /* 2: xorw */
+    var39.i = var34.i ^ var35.i;
+    /* 4: mulswl */
+    var40.i = var39.i * var36.i;
+    /* 5: shrsl */
+    var41.i = var40.i >> 11;
+    /* 6: convssslw */
+    var42.i = ORC_CLAMP_SW (var41.i);
+    /* 8: xorw */
+    var38.i = var42.i ^ var37.i;
+    /* 9: storew */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
+  orc_union16 var35;
+#endif
+  orc_union16 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
+  orc_union16 var37;
+#endif
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union32 var40;
+  orc_union32 var41;
+  orc_union16 var42;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+
+  /* 1: loadpw */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+  /* 3: loadpw */
+  var36.i = ex->params[24];
+  /* 7: loadpw */
+  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr0[i];
+    /* 2: xorw */
+    var39.i = var34.i ^ var35.i;
+    /* 4: mulswl */
+    var40.i = var39.i * var36.i;
+    /* 5: shrsl */
+    var41.i = var40.i >> 11;
+    /* 6: convssslw */
+    var42.i = ORC_CLAMP_SW (var41.i);
+    /* 8: xorw */
+    var38.i = var42.i ^ var37.i;
+    /* 9: storew */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 117, 49, 54, 11, 2, 2, 14, 2, 0, 128, 0, 0,
+        14, 4, 11, 0, 0, 0, 16, 2, 20, 4, 20, 2, 101, 33, 0, 16,
+        176, 32, 33, 24, 125, 32, 32, 17, 165, 33, 32, 101, 0, 33, 16, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_u16");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_constant (p, 2, 0x00008000, "c1");
+      orc_program_add_constant (p, 4, 0x0000000b, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_D1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "xorw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_s16 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union16 *) d1;
+
+  /* 1: loadpw */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr0[i];
+    /* 2: mulswl */
+    var36.i = var33.i * var34.i;
+    /* 3: shrsl */
+    var37.i = var36.i >> 11;
+    /* 4: convssslw */
+    var35.i = ORC_CLAMP_SW (var37.i);
+    /* 5: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_s16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  orc_union16 var33;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+
+  /* 1: loadpw */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr0[i];
+    /* 2: mulswl */
+    var36.i = var33.i * var34.i;
+    /* 3: shrsl */
+    var37.i = var36.i >> 11;
+    /* 4: convssslw */
+    var35.i = ORC_CLAMP_SW (var37.i);
+    /* 5: storew */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 115, 49, 54, 11, 2, 2, 14, 4, 11, 0, 0, 0,
+        16, 2, 20, 4, 176, 32, 0, 24, 125, 32, 32, 16, 165, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_s16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_s16");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_s16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_constant (p, 4, 0x0000000b, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_u32 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+  orc_union32 var42;
+
+  ptr0 = (orc_union32 *) d1;
+
+  /* 1: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 3: loadpl */
+  var36.i = p1;
+  /* 7: loadpl */
+  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr0[i];
+    /* 2: xorl */
+    var39.i = var34.i ^ var35.i;
+    /* 4: mulslq */
+    var40.i = ((orc_int64) var39.i) * ((orc_int64) var36.i);
+    /* 5: shrsq */
+    var41.i = var40.i >> 27;
+    /* 6: convsssql */
+    var42.i = ORC_CLAMP_SL (var41.i);
+    /* 8: xorl */
+    var38.i = var42.i ^ var37.i;
+    /* 9: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union64 var40;
+  orc_union64 var41;
+  orc_union32 var42;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+
+  /* 1: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 3: loadpl */
+  var36.i = ex->params[24];
+  /* 7: loadpl */
+  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr0[i];
+    /* 2: xorl */
+    var39.i = var34.i ^ var35.i;
+    /* 4: mulslq */
+    var40.i = ((orc_int64) var39.i) * ((orc_int64) var36.i);
+    /* 5: shrsq */
+    var41.i = var40.i >> 27;
+    /* 6: convsssql */
+    var42.i = ORC_CLAMP_SL (var41.i);
+    /* 8: xorl */
+    var38.i = var42.i ^ var37.i;
+    /* 9: storel */
+    ptr0[i] = var38;
+  }
+
+}
+
+void
+adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 117, 51, 50, 11, 4, 4, 14, 4, 0, 0, 0, 128,
+        14, 4, 27, 0, 0, 0, 16, 4, 20, 8, 20, 4, 132, 33, 0, 16,
+        178, 32, 33, 24, 147, 32, 32, 17, 170, 33, 32, 132, 0, 33, 16, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_u32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_u32");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_u32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_constant (p, 4, 0x0000001b, "c2");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_D1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_s32 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+
+  ptr0 = (orc_union32 *) d1;
+
+  /* 1: loadpl */
+  var34.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr0[i];
+    /* 2: mulslq */
+    var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
+    /* 3: shrsq */
+    var37.i = var36.i >> 27;
+    /* 4: convsssql */
+    var35.i = ORC_CLAMP_SL (var37.i);
+    /* 5: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_s32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+
+  /* 1: loadpl */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr0[i];
+    /* 2: mulslq */
+    var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
+    /* 3: shrsq */
+    var37.i = var36.i >> 27;
+    /* 4: convsssql */
+    var35.i = ORC_CLAMP_SL (var37.i);
+    /* 5: storel */
+    ptr0[i] = var35;
+  }
+
+}
+
+void
+adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 115, 51, 50, 11, 4, 4, 14, 4, 27, 0, 0, 0,
+        16, 4, 20, 8, 178, 32, 0, 24, 147, 32, 32, 16, 170, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_s32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_s32");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_s32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_constant (p, 4, 0x0000001b, "c1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+
+      orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_f32 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_f32 (float *ORC_RESTRICT d1, float p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var32;
+  orc_union32 var33;
+  orc_union32 var34;
+
+  ptr0 = (orc_union32 *) d1;
+
+  /* 1: loadpl */
+  var33.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr0[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var32.i);
+      _src2.i = ORC_DENORMAL (var33.i);
+      _dest1.f = _src1.f * _src2.f;
+      var34.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_f32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  orc_union32 var32;
+  orc_union32 var33;
+  orc_union32 var34;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+
+  /* 1: loadpl */
+  var33.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var32 = ptr0[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var32.i);
+      _src2.i = ORC_DENORMAL (var33.i);
+      _dest1.f = _src1.f * _src2.f;
+      var34.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+adder_orc_volume_f32 (float *ORC_RESTRICT d1, float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 102, 51, 50, 11, 4, 4, 17, 4, 202, 0, 0, 24,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_f32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_f32");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_f32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_parameter_float (p, 4, "p1");
+
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_volume_f64 */
+#ifdef DISABLE_ORC
+void
+adder_orc_volume_f64 (double *ORC_RESTRICT d1, double p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var32;
+  orc_union64 var33;
+  orc_union64 var34;
+
+  ptr0 = (orc_union64 *) d1;
+
+  /* 1: loadpq */
+  var33.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var32 = ptr0[i];
+    /* 2: muld */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+      _dest1.f = _src1.f * _src2.f;
+      var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_volume_f64 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  orc_union64 var32;
+  orc_union64 var33;
+  orc_union64 var34;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+
+  /* 1: loadpq */
+  var33.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var32 = ptr0[i];
+    /* 2: muld */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
+      _dest1.f = _src1.f * _src2.f;
+      var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: storeq */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+adder_orc_volume_f64 (double *ORC_RESTRICT d1, double p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 118, 111, 108,
+        117, 109, 101, 95, 102, 54, 52, 11, 8, 8, 18, 8, 214, 0, 0, 24,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_f64);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_volume_f64");
+      orc_program_set_backup_function (p, _backup_adder_orc_volume_f64);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_parameter_double (p, 8, "p1");
+
+      orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  {
+    orc_union64 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.x2[0];
+    ex->params[ORC_VAR_T1] = tmp.x2[1];
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_u8 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var35;
+#else
+  orc_int8 var35;
+#endif
+  orc_int8 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var37;
+#else
+  orc_int8 var37;
+#endif
+  orc_int8 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_int8 var43;
+  orc_int8 var44;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 1: loadpb */
+  var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 3: loadpb */
+  var36 = p1;
+  /* 7: loadpb */
+  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 2: xorb */
+    var40 = var34 ^ var35;
+    /* 4: mulsbw */
+    var41.i = var40 * var36;
+    /* 5: shrsw */
+    var42.i = var41.i >> 3;
+    /* 6: convssswb */
+    var43 = ORC_CLAMP_SB (var42.i);
+    /* 8: xorb */
+    var44 = var43 ^ var37;
+    /* 9: loadb */
+    var38 = ptr0[i];
+    /* 10: addusb */
+    var39 = ORC_CLAMP_UB ((orc_uint8) var38 + (orc_uint8) var44);
+    /* 11: storeb */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var35;
+#else
+  orc_int8 var35;
+#endif
+  orc_int8 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var37;
+#else
+  orc_int8 var37;
+#endif
+  orc_int8 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union16 var41;
+  orc_union16 var42;
+  orc_int8 var43;
+  orc_int8 var44;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 1: loadpb */
+  var35 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 3: loadpb */
+  var36 = ex->params[24];
+  /* 7: loadpb */
+  var37 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 2: xorb */
+    var40 = var34 ^ var35;
+    /* 4: mulsbw */
+    var41.i = var40 * var36;
+    /* 5: shrsw */
+    var42.i = var41.i >> 3;
+    /* 6: convssswb */
+    var43 = ORC_CLAMP_SB (var42.i);
+    /* 8: xorb */
+    var44 = var43 ^ var37;
+    /* 9: loadb */
+    var38 = ptr0[i];
+    /* 10: addusb */
+    var39 = ORC_CLAMP_UB ((orc_uint8) var38 + (orc_uint8) var44);
+    /* 11: storeb */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 117, 56, 11, 1, 1, 12, 1, 1,
+        14, 1, 128, 0, 0, 0, 14, 4, 3, 0, 0, 0, 16, 1, 20, 2,
+        20, 1, 68, 33, 4, 16, 174, 32, 33, 24, 94, 32, 32, 17, 159, 33,
+        32, 68, 33, 33, 16, 35, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_u8");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_constant (p, 4, 0x00000003, "c2");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+
+      orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_s8 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
+    int p1, int n)
+{
+  int i;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+
+  ptr0 = (orc_int8 *) d1;
+  ptr4 = (orc_int8 *) s1;
+
+  /* 1: loadpb */
+  var35 = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 2: mulsbw */
+    var38.i = var34 * var35;
+    /* 3: shrsw */
+    var39.i = var38.i >> 3;
+    /* 4: convssswb */
+    var40 = ORC_CLAMP_SB (var39.i);
+    /* 5: loadb */
+    var36 = ptr0[i];
+    /* 6: addssb */
+    var37 = ORC_CLAMP_SB (var36 + var40);
+    /* 7: storeb */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_s8 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_int8 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
+  orc_int8 var35;
+  orc_int8 var36;
+  orc_int8 var37;
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_int8 var40;
+
+  ptr0 = (orc_int8 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+
+  /* 1: loadpb */
+  var35 = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 2: mulsbw */
+    var38.i = var34 * var35;
+    /* 3: shrsw */
+    var39.i = var38.i >> 3;
+    /* 4: convssswb */
+    var40 = ORC_CLAMP_SB (var39.i);
+    /* 5: loadb */
+    var36 = ptr0[i];
+    /* 6: addssb */
+    var37 = ORC_CLAMP_SB (var36 + var40);
+    /* 7: storeb */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
+    int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 115, 56, 11, 1, 1, 12, 1, 1,
+        14, 4, 3, 0, 0, 0, 16, 1, 20, 2, 20, 1, 174, 32, 4, 24,
+        94, 32, 32, 16, 159, 33, 32, 34, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s8);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_s8");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s8);
+      orc_program_add_destination (p, 1, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 4, 0x00000003, "c1");
+      orc_program_add_parameter (p, 1, "p1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 1, "t2");
+
+      orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "addssb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_u16 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
+  orc_union16 var35;
+#endif
+  orc_union16 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
+  orc_union16 var37;
+#endif
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+  /* 3: loadpw */
+  var36.i = p1;
+  /* 7: loadpw */
+  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 2: xorw */
+    var40.i = var34.i ^ var35.i;
+    /* 4: mulswl */
+    var41.i = var40.i * var36.i;
+    /* 5: shrsl */
+    var42.i = var41.i >> 11;
+    /* 6: convssslw */
+    var43.i = ORC_CLAMP_SW (var42.i);
+    /* 8: xorw */
+    var44.i = var43.i ^ var37.i;
+    /* 9: loadw */
+    var38 = ptr0[i];
+    /* 10: addusw */
+    var39.i = ORC_CLAMP_UW ((orc_uint16) var38.i + (orc_uint16) var44.i);
+    /* 11: storew */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
+  orc_union16 var35;
+#endif
+  orc_union16 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
+  orc_union16 var37;
+#endif
+  orc_union16 var38;
+  orc_union16 var39;
+  orc_union16 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+  /* 3: loadpw */
+  var36.i = ex->params[24];
+  /* 7: loadpw */
+  var37.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 2: xorw */
+    var40.i = var34.i ^ var35.i;
+    /* 4: mulswl */
+    var41.i = var40.i * var36.i;
+    /* 5: shrsl */
+    var42.i = var41.i >> 11;
+    /* 6: convssslw */
+    var43.i = ORC_CLAMP_SW (var42.i);
+    /* 8: xorw */
+    var44.i = var43.i ^ var37.i;
+    /* 9: loadw */
+    var38 = ptr0[i];
+    /* 10: addusw */
+    var39.i = ORC_CLAMP_UW ((orc_uint16) var38.i + (orc_uint16) var44.i);
+    /* 11: storew */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
+    const guint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 117, 49, 54, 11, 2, 2, 12, 2,
+        2, 14, 2, 0, 128, 0, 0, 14, 4, 11, 0, 0, 0, 16, 2, 20,
+        4, 20, 2, 101, 33, 4, 16, 176, 32, 33, 24, 125, 32, 32, 17, 165,
+        33, 32, 101, 33, 33, 16, 72, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_u16");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 2, 0x00008000, "c1");
+      orc_program_add_constant (p, 4, 0x0000000b, "c2");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addusw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_s16 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union16 var40;
+
+  ptr0 = (orc_union16 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 1: loadpw */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 2: mulswl */
+    var38.i = var34.i * var35.i;
+    /* 3: shrsl */
+    var39.i = var38.i >> 11;
+    /* 4: convssslw */
+    var40.i = ORC_CLAMP_SW (var39.i);
+    /* 5: loadw */
+    var36 = ptr0[i];
+    /* 6: addssw */
+    var37.i = ORC_CLAMP_SW (var36.i + var40.i);
+    /* 7: storew */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_s16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union16 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union16 var40;
+
+  ptr0 = (orc_union16 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 1: loadpw */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 2: mulswl */
+    var38.i = var34.i * var35.i;
+    /* 3: shrsl */
+    var39.i = var38.i >> 11;
+    /* 4: convssslw */
+    var40.i = ORC_CLAMP_SW (var39.i);
+    /* 5: loadw */
+    var36 = ptr0[i];
+    /* 6: addssw */
+    var37.i = ORC_CLAMP_SW (var36.i + var40.i);
+    /* 7: storew */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
+    const gint16 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 115, 49, 54, 11, 2, 2, 12, 2,
+        2, 14, 4, 11, 0, 0, 0, 16, 2, 20, 4, 20, 2, 176, 32, 4,
+        24, 125, 32, 32, 16, 165, 33, 32, 71, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_s16");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s16);
+      orc_program_add_destination (p, 2, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x0000000b, "c1");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+
+      orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "addssw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_u32 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union64 var41;
+  orc_union64 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 3: loadpl */
+  var36.i = p1;
+  /* 7: loadpl */
+  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: xorl */
+    var40.i = var34.i ^ var35.i;
+    /* 4: mulslq */
+    var41.i = ((orc_int64) var40.i) * ((orc_int64) var36.i);
+    /* 5: shrsq */
+    var42.i = var41.i >> 27;
+    /* 6: convsssql */
+    var43.i = ORC_CLAMP_SL (var42.i);
+    /* 8: xorl */
+    var44.i = var43.i ^ var37.i;
+    /* 9: loadl */
+    var38 = ptr0[i];
+    /* 10: addusl */
+    var39.i =
+        ORC_CLAMP_UL ((orc_int64) (orc_uint32) var38.i +
+        (orc_int64) (orc_uint32) var44.i);
+    /* 11: storel */
+    ptr0[i] = var39;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var37;
+#else
+  orc_union32 var37;
+#endif
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union32 var40;
+  orc_union64 var41;
+  orc_union64 var42;
+  orc_union32 var43;
+  orc_union32 var44;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 3: loadpl */
+  var36.i = ex->params[24];
+  /* 7: loadpl */
+  var37.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: xorl */
+    var40.i = var34.i ^ var35.i;
+    /* 4: mulslq */
+    var41.i = ((orc_int64) var40.i) * ((orc_int64) var36.i);
+    /* 5: shrsq */
+    var42.i = var41.i >> 27;
+    /* 6: convsssql */
+    var43.i = ORC_CLAMP_SL (var42.i);
+    /* 8: xorl */
+    var44.i = var43.i ^ var37.i;
+    /* 9: loadl */
+    var38 = ptr0[i];
+    /* 10: addusl */
+    var39.i =
+        ORC_CLAMP_UL ((orc_int64) (orc_uint32) var38.i +
+        (orc_int64) (orc_uint32) var44.i);
+    /* 11: storel */
+    ptr0[i] = var39;
+  }
+
+}
+
+void
+adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
+    const guint32 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 117, 51, 50, 11, 4, 4, 12, 4,
+        4, 14, 4, 0, 0, 0, 128, 14, 4, 27, 0, 0, 0, 16, 4, 20,
+        8, 20, 4, 132, 33, 4, 16, 178, 32, 33, 24, 147, 32, 32, 17, 170,
+        33, 32, 132, 33, 33, 16, 105, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_u32");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_u32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_constant (p, 4, 0x0000001b, "c2");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addusl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_s32 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var35.i = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: mulslq */
+    var38.i = ((orc_int64) var34.i) * ((orc_int64) var35.i);
+    /* 3: shrsq */
+    var39.i = var38.i >> 27;
+    /* 4: convsssql */
+    var40.i = ORC_CLAMP_SL (var39.i);
+    /* 5: loadl */
+    var36 = ptr0[i];
+    /* 6: addssl */
+    var37.i = ORC_CLAMP_SL ((orc_int64) var36.i + (orc_int64) var40.i);
+    /* 7: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_s32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union64 var38;
+  orc_union64 var39;
+  orc_union32 var40;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var35.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var34 = ptr4[i];
+    /* 2: mulslq */
+    var38.i = ((orc_int64) var34.i) * ((orc_int64) var35.i);
+    /* 3: shrsq */
+    var39.i = var38.i >> 27;
+    /* 4: convsssql */
+    var40.i = ORC_CLAMP_SL (var39.i);
+    /* 5: loadl */
+    var36 = ptr0[i];
+    /* 6: addssl */
+    var37.i = ORC_CLAMP_SL ((orc_int64) var36.i + (orc_int64) var40.i);
+    /* 7: storel */
+    ptr0[i] = var37;
+  }
+
+}
+
+void
+adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
+    const gint32 * ORC_RESTRICT s1, int p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 115, 51, 50, 11, 4, 4, 12, 4,
+        4, 14, 4, 27, 0, 0, 0, 16, 4, 20, 8, 20, 4, 178, 32, 4,
+        24, 147, 32, 32, 16, 170, 33, 32, 104, 0, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_s32");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_s32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_constant (p, 4, 0x0000001b, "c1");
+      orc_program_add_parameter (p, 4, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "addssl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->params[ORC_VAR_P1] = p1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_f32 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
+    float p1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union32 *) s1;
+
+  /* 1: loadpl */
+  var34.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var33.i);
+      _src2.i = ORC_DENORMAL (var34.i);
+      _dest1.f = _src1.f * _src2.f;
+      var37.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: loadl */
+    var35 = ptr0[i];
+    /* 4: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var35.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f + _src2.f;
+      var36.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_f32 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union32 *ORC_RESTRICT ptr4;
+  orc_union32 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union32 *) ex->arrays[4];
+
+  /* 1: loadpl */
+  var34.i = ex->params[24];
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadl */
+    var33 = ptr4[i];
+    /* 2: mulf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var33.i);
+      _src2.i = ORC_DENORMAL (var34.i);
+      _dest1.f = _src1.f * _src2.f;
+      var37.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 3: loadl */
+    var35 = ptr0[i];
+    /* 4: addf */
+    {
+      orc_union32 _src1;
+      orc_union32 _src2;
+      orc_union32 _dest1;
+      _src1.i = ORC_DENORMAL (var35.i);
+      _src2.i = ORC_DENORMAL (var37.i);
+      _dest1.f = _src1.f + _src2.f;
+      var36.i = ORC_DENORMAL (_dest1.i);
+    }
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+adder_orc_add_volume_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
+    float p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 102, 51, 50, 11, 4, 4, 12, 4,
+        4, 17, 4, 20, 4, 202, 32, 4, 24, 200, 0, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_f32);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_f32");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_f32);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 4, "s1");
+      orc_program_add_parameter_float (p, 4, "p1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union32 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.i;
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* adder_orc_add_volume_f64 */
+#ifdef DISABLE_ORC
+void
+adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
+    const double *ORC_RESTRICT s1, double p1, int n)
+{
+  int i;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var33;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+
+  ptr0 = (orc_union64 *) d1;
+  ptr4 = (orc_union64 *) s1;
+
+  /* 1: loadpq */
+  var34.f = p1;
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var33 = ptr4[i];
+    /* 2: muld */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
+      _dest1.f = _src1.f * _src2.f;
+      var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: loadq */
+    var35 = ptr0[i];
+    /* 4: addd */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var37.i);
+      _dest1.f = _src1.f + _src2.f;
+      var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 5: storeq */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_adder_orc_add_volume_f64 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union64 *ORC_RESTRICT ptr0;
+  const orc_union64 *ORC_RESTRICT ptr4;
+  orc_union64 var33;
+  orc_union64 var34;
+  orc_union64 var35;
+  orc_union64 var36;
+  orc_union64 var37;
+
+  ptr0 = (orc_union64 *) ex->arrays[0];
+  ptr4 = (orc_union64 *) ex->arrays[4];
+
+  /* 1: loadpq */
+  var34.i =
+      (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
+              (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadq */
+    var33 = ptr4[i];
+    /* 2: muld */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
+      _dest1.f = _src1.f * _src2.f;
+      var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 3: loadq */
+    var35 = ptr0[i];
+    /* 4: addd */
+    {
+      orc_union64 _src1;
+      orc_union64 _src2;
+      orc_union64 _dest1;
+      _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
+      _src2.i = ORC_DENORMAL_DOUBLE (var37.i);
+      _dest1.f = _src1.f + _src2.f;
+      var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
+    }
+    /* 5: storeq */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
+    const double *ORC_RESTRICT s1, double p1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 97, 100, 100, 101, 114, 95, 111, 114, 99, 95, 97, 100, 100,
+        95, 118, 111, 108, 117, 109, 101, 95, 102, 54, 52, 11, 8, 8, 12, 8,
+        8, 18, 8, 20, 8, 214, 32, 4, 24, 212, 0, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_f64);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "adder_orc_add_volume_f64");
+      orc_program_set_backup_function (p, _backup_adder_orc_add_volume_f64);
+      orc_program_add_destination (p, 8, "d1");
+      orc_program_add_source (p, 8, "s1");
+      orc_program_add_parameter_double (p, 8, "p1");
+      orc_program_add_temporary (p, 8, "t1");
+
+      orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addd", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  {
+    orc_union64 tmp;
+    tmp.f = p1;
+    ex->params[ORC_VAR_P1] = tmp.x2[0];
+    ex->params[ORC_VAR_T1] = tmp.x2[1];
+  }
+
+  func = c->exec;
+  func (ex);
+}
+#endif
diff --git a/gst/adder/gstadderorc-dist.h b/gst/adder/gstadderorc-dist.h
index 0a9cbc4..2bc0682 100644
--- a/gst/adder/gstadderorc-dist.h
+++ b/gst/adder/gstadderorc-dist.h
@@ -80,13 +80,30 @@
 #endif
 #endif
 
-void adder_orc_add_int32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
-void adder_orc_add_int16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n);
-void adder_orc_add_int8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n);
-void adder_orc_add_uint32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
-void adder_orc_add_uint16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
-void adder_orc_add_uint8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
-void adder_orc_add_float32 (float * ORC_RESTRICT d1, const float * ORC_RESTRICT s1, int n);
+void adder_orc_add_s32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int n);
+void adder_orc_add_s16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n);
+void adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n);
+void adder_orc_add_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
+void adder_orc_add_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int n);
+void adder_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void adder_orc_add_f32 (float * ORC_RESTRICT d1, const float * ORC_RESTRICT s1, int n);
+void adder_orc_add_f64 (double * ORC_RESTRICT d1, const double * ORC_RESTRICT s1, int n);
+void adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n);
+void adder_orc_volume_f32 (float * ORC_RESTRICT d1, float p1, int n);
+void adder_orc_volume_f64 (double * ORC_RESTRICT d1, double p1, int n);
+void adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1, int p1, int n);
+void adder_orc_add_volume_f32 (float * ORC_RESTRICT d1, const float * ORC_RESTRICT s1, float p1, int n);
+void adder_orc_add_volume_f64 (double * ORC_RESTRICT d1, const double * ORC_RESTRICT s1, double p1, int n);
 
 #ifdef __cplusplus
 }
diff --git a/gst/adder/gstadderorc.orc b/gst/adder/gstadderorc.orc
index d949d3f..e95f2a7 100644
--- a/gst/adder/gstadderorc.orc
+++ b/gst/adder/gstadderorc.orc
@@ -1,50 +1,247 @@
-
-.function adder_orc_add_int32
+.function adder_orc_add_s32
 .dest 4 d1 gint32
 .source 4 s1 gint32
 
 addssl d1, d1, s1
 
 
-.function adder_orc_add_int16
+.function adder_orc_add_s16
 .dest 2 d1 gint16
 .source 2 s1 gint16
 
 addssw d1, d1, s1
 
 
-.function adder_orc_add_int8
+.function adder_orc_add_s8
 .dest 1 d1 gint8
 .source 1 s1 gint8
 
 addssb d1, d1, s1
 
 
-.function adder_orc_add_uint32
+.function adder_orc_add_u32
 .dest 4 d1 guint32
 .source 4 s1 guint32
 
 addusl d1, d1, s1
 
 
-.function adder_orc_add_uint16
+.function adder_orc_add_u16
 .dest 2 d1 guint16
 .source 2 s1 guint16
 
 addusw d1, d1, s1
 
 
-.function adder_orc_add_uint8
+.function adder_orc_add_u8
 .dest 1 d1 guint8
 .source 1 s1 guint8
 
 addusb d1, d1, s1
 
 
-.function adder_orc_add_float32
+.function adder_orc_add_f32
 .dest 4 d1 float
 .source 4 s1 float
 
 addf d1, d1, s1
 
+.function adder_orc_add_f64
+.dest 8 d1 double
+.source 8 s1 double
+
+addd d1, d1, s1
+
+
+.function adder_orc_volume_u8
+.dest 1 d1 guint8
+.param 1 p1
+.const 1 c1 0x80
+.temp 2 t1
+.temp 1 t2
+
+xorb t2, d1, c1
+mulsbw t1, t2, p1
+shrsw t1, t1, 3
+convssswb t2, t1
+xorb d1, t2, c1
+
+
+.function adder_orc_volume_s8
+.dest 1 d1 gint8
+.param 1 p1
+.temp 2 t1
+
+mulsbw t1, d1, p1
+shrsw t1, t1, 3
+convssswb d1, t1
+
+
+.function adder_orc_volume_u16
+.dest 2 d1 guint16
+.param 2 p1
+.const 2 c1 0x8000
+.temp 4 t1
+.temp 2 t2
+
+xorw t2, d1, c1
+mulswl t1, t2, p1
+shrsl t1, t1, 11
+convssslw t2, t1
+xorw d1, t2, c1
+
+
+.function adder_orc_volume_s16
+.dest 2 d1 gint16
+.param 2 p1
+.temp 4 t1
+
+mulswl t1, d1, p1
+shrsl t1, t1, 11
+convssslw d1, t1
+
+
+.function adder_orc_volume_u32
+.dest 4 d1 guint32
+.param 4 p1
+.const 4 c1 0x80000000
+.temp 8 t1
+.temp 4 t2
+
+xorl t2, d1, c1
+mulslq t1, t2, p1
+shrsq t1, t1, 27
+convsssql t2, t1
+xorl d1, t2, c1
+
+
+.function adder_orc_volume_s32
+.dest 4 d1 gint32
+.param 4 p1
+.temp 8 t1
+
+mulslq t1, d1, p1
+shrsq t1, t1, 27
+convsssql d1, t1
+
+.function adder_orc_volume_f32
+.dest 4 d1 float
+.floatparam 4 p1
+
+mulf d1, d1, p1
+
+
+.function adder_orc_volume_f64
+.dest 8 d1 double
+.doubleparam 8 p1
+
+muld d1, d1, p1
+
+
+.function adder_orc_add_volume_u8
+.dest 1 d1 guint8
+.source 1 s1 guint8
+.param 1 p1
+.const 1 c1 0x80
+.temp 2 t1
+.temp 1 t2
+
+xorb t2, s1, c1
+mulsbw t1, t2, p1
+shrsw t1, t1, 3
+convssswb t2, t1
+xorb t2, t2, c1
+addusb d1, d1, t2
+
+
+.function adder_orc_add_volume_s8
+.dest 1 d1 gint8
+.source 1 s1 gint8
+.param 1 p1
+.temp 2 t1
+.temp 1 t2
+
+mulsbw t1, s1, p1
+shrsw t1, t1, 3
+convssswb t2, t1
+addssb d1, d1, t2
+
+
+.function adder_orc_add_volume_u16
+.dest 2 d1 guint16
+.source 2 s1 guint16
+.param 2 p1
+.const 2 c1 0x8000
+.temp 4 t1
+.temp 2 t2
+
+xorw t2, s1, c1
+mulswl t1, t2, p1
+shrsl t1, t1, 11
+convssslw t2, t1
+xorw t2, t2, c1
+addusw d1, d1, t2
+
+
+.function adder_orc_add_volume_s16
+.dest 2 d1 gint16
+.source 2 s1 gint16
+.param 2 p1
+.temp 4 t1
+.temp 2 t2
+
+mulswl t1, s1, p1
+shrsl t1, t1, 11
+convssslw t2, t1
+addssw d1, d1, t2
+
+
+.function adder_orc_add_volume_u32
+.dest 4 d1 guint32
+.source 4 s1 guint32
+.param 4 p1
+.const 4 c1 0x80000000
+.temp 8 t1
+.temp 4 t2
+
+xorl t2, s1, c1
+mulslq t1, t2, p1
+shrsq t1, t1, 27
+convsssql t2, t1
+xorl t2, t2, c1
+addusl d1, d1, t2
+
+
+.function adder_orc_add_volume_s32
+.dest 4 d1 gint32
+.source 4 s1 gint32
+.param 4 p1
+.temp 8 t1
+.temp 4 t2
+
+mulslq t1, s1, p1
+shrsq t1, t1, 27
+convsssql t2, t1
+addssl d1, d1, t2
+
+
+.function adder_orc_add_volume_f32
+.dest 4 d1 float
+.source 4 s1 float
+.floatparam 4 p1
+.temp 4 t1
+
+mulf t1, s1, p1
+addf d1, d1, t1
+
+
+.function adder_orc_add_volume_f64
+.dest 8 d1 double
+.source 8 s1 double
+.doubleparam 8 p1
+.temp 8 t1
+
+muld t1, s1, p1
+addd d1, d1, t1
+
 
diff --git a/gst/app/Makefile.in b/gst/app/Makefile.in
index cdcc401..1381a09 100644
--- a/gst/app/Makefile.in
+++ b/gst/app/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,13 +80,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/app
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -135,10 +162,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstapp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstapp_la_CFLAGS) $(CFLAGS) \
 	$(libgstapp_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -151,20 +191,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstapp_la_SOURCES)
 DIST_SOURCES = $(libgstapp_la_SOURCES)
 am__can_run_installinfo = \
@@ -172,6 +208,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -505,6 +558,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -531,12 +585,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstapp.la: $(libgstapp_la_OBJECTS) $(libgstapp_la_DEPENDENCIES) $(EXTRA_libgstapp_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstapp_la_LINK) -rpath $(plugindir) $(libgstapp_la_OBJECTS) $(libgstapp_la_LIBADD) $(LIBS)
 
@@ -582,26 +639,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -613,15 +659,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -630,6 +672,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -774,19 +831,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/app/gstapp.c b/gst/app/gstapp.c
index 3852f8c..0b9ce60 100644
--- a/gst/app/gstapp.c
+++ b/gst/app/gstapp.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-appsrc
diff --git a/gst/audioconvert/Makefile.in b/gst/audioconvert/Makefile.in
index 17e86fa..04d9a43 100644
--- a/gst/audioconvert/Makefile.in
+++ b/gst/audioconvert/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,15 +102,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/audioconvert
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -168,10 +194,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudioconvert_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudioconvert_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -184,20 +223,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaudioconvert_la_SOURCES) \
 	$(nodist_libgstaudioconvert_la_SOURCES)
 DIST_SOURCES = $(libgstaudioconvert_la_SOURCES)
@@ -207,6 +242,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -570,6 +622,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -596,12 +649,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudioconvert.la: $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_DEPENDENCIES) $(EXTRA_libgstaudioconvert_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudioconvert_la_LINK) -rpath $(plugindir) $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_LIBADD) $(LIBS)
 
@@ -687,26 +743,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -718,15 +763,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -735,6 +776,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -885,19 +941,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES ctags \
-	dist-hook distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am dist-hook distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/audioconvert/audioconvert.c b/gst/audioconvert/audioconvert.c
index 5682198..a5a06b9 100644
--- a/gst/audioconvert/audioconvert.c
+++ b/gst/audioconvert/audioconvert.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/audioconvert/audioconvert.h b/gst/audioconvert/audioconvert.h
index 638a42a..a086cbc 100644
--- a/gst/audioconvert/audioconvert.h
+++ b/gst/audioconvert/audioconvert.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __AUDIO_CONVERT_H__
diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c
index 492d35f..1431386 100644
--- a/gst/audioconvert/gstaudioconvert.c
+++ b/gst/audioconvert/gstaudioconvert.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audioconvert/gstaudioconvert.h b/gst/audioconvert/gstaudioconvert.h
index 62f324f..6ff4374 100644
--- a/gst/audioconvert/gstaudioconvert.h
+++ b/gst/audioconvert/gstaudioconvert.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_CONVERT_H__
diff --git a/gst/audioconvert/gstaudioconvertorc-dist.c b/gst/audioconvert/gstaudioconvertorc-dist.c
index 20a6395..46fdffa 100644
--- a/gst/audioconvert/gstaudioconvertorc-dist.c
+++ b/gst/audioconvert/gstaudioconvertorc-dist.c
@@ -259,7 +259,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -297,7 +301,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -340,6 +348,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 56, 11, 4,
+        4, 12, 1, 1, 14, 4, 0, 0, 0, 128, 16, 4, 20, 2, 20, 4,
+        150, 32, 4, 154, 33, 32, 124, 33, 33, 24, 132, 0, 33, 16, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u8");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u8);
@@ -358,6 +377,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -459,6 +479,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 56, 11, 4,
+        4, 12, 1, 1, 16, 4, 20, 2, 20, 4, 150, 32, 4, 154, 33, 32,
+        124, 0, 33, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s8");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s8);
@@ -474,6 +504,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -506,7 +537,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -541,7 +576,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -581,6 +620,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 49, 54, 11,
+        4, 4, 12, 2, 2, 14, 4, 0, 0, 0, 128, 16, 4, 20, 4, 154,
+        32, 4, 124, 32, 32, 24, 132, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u16");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u16);
@@ -596,6 +645,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -691,6 +741,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 49, 54, 11,
+        4, 4, 12, 2, 2, 16, 4, 20, 4, 154, 32, 4, 124, 0, 32, 24,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s16");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s16);
@@ -703,6 +763,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -735,7 +796,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -773,7 +838,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -816,6 +885,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 49, 54, 95,
+        115, 119, 97, 112, 11, 4, 4, 12, 2, 2, 14, 4, 0, 0, 0, 128,
+        16, 4, 20, 2, 20, 4, 183, 32, 4, 154, 33, 32, 124, 33, 33, 24,
+        132, 0, 33, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u16_swap");
       orc_program_set_backup_function (p,
@@ -835,6 +916,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -936,6 +1018,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 49, 54, 95,
+        115, 119, 97, 112, 11, 4, 4, 12, 2, 2, 16, 4, 20, 2, 20, 4,
+        183, 32, 4, 154, 33, 32, 124, 0, 33, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s16_swap");
       orc_program_set_backup_function (p,
@@ -952,6 +1045,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -984,7 +1078,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -1016,7 +1114,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -1053,6 +1155,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 51, 50, 11,
+        4, 4, 12, 4, 4, 14, 4, 0, 0, 0, 128, 16, 4, 20, 4, 124,
+        32, 4, 24, 132, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u32");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u32);
@@ -1066,6 +1178,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1155,6 +1268,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 51, 50, 11,
+        4, 4, 12, 4, 4, 16, 4, 124, 0, 4, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s32");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s32);
@@ -1164,6 +1286,7 @@
 
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1196,7 +1319,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -1231,7 +1358,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -1271,6 +1402,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 51, 50, 95,
+        115, 119, 97, 112, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0, 0, 128,
+        16, 4, 20, 4, 184, 32, 4, 124, 32, 32, 24, 132, 0, 32, 16, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u32_swap");
       orc_program_set_backup_function (p,
@@ -1287,6 +1430,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1382,6 +1526,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 51, 50, 95,
+        115, 119, 97, 112, 11, 4, 4, 12, 4, 4, 16, 4, 20, 4, 184, 32,
+        4, 124, 0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s32_swap");
       orc_program_set_backup_function (p,
@@ -1395,6 +1550,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1426,8 +1582,16 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -1486,8 +1650,16 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var33;
+#else
   orc_union32 var33;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -1552,6 +1724,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 102, 108, 111, 97,
+        116, 95, 115, 51, 50, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0, 0,
+        79, 14, 4, 0, 0, 0, 63, 20, 4, 113, 32, 4, 202, 32, 32, 16,
+        200, 32, 32, 17, 210, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_float_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_float_s32");
       orc_program_set_backup_function (p,
@@ -1570,6 +1754,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convfl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1601,8 +1786,16 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -1664,8 +1857,16 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -1732,6 +1933,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 102, 108, 111, 97,
+        116, 95, 115, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 4, 4,
+        14, 4, 0, 0, 0, 79, 14, 4, 0, 0, 0, 63, 20, 4, 184, 32,
+        4, 202, 32, 32, 16, 200, 32, 32, 17, 210, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_float_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_float_s32_swap");
       orc_program_set_backup_function (p,
@@ -1750,6 +1963,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convfl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1780,8 +1994,16 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var33;
+#else
   orc_union64 var33;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union32 var35;
   orc_union64 var36;
   orc_union64 var37;
@@ -1840,8 +2062,16 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var33;
+#else
   orc_union64 var33;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union32 var35;
   orc_union64 var36;
   orc_union64 var37;
@@ -1906,6 +2136,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 100, 111, 117, 98,
+        108, 101, 95, 115, 51, 50, 11, 4, 4, 12, 8, 8, 15, 8, 0, 0,
+        192, 255, 255, 255, 223, 65, 15, 8, 0, 0, 0, 0, 0, 0, 224, 63,
+        20, 8, 133, 32, 4, 214, 32, 32, 16, 212, 32, 32, 17, 222, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_double_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_double_s32");
       orc_program_set_backup_function (p,
@@ -1924,6 +2167,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1955,8 +2199,16 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var35;
+#else
   orc_union64 var35;
+#endif
   orc_union32 var36;
   orc_union64 var37;
   orc_union64 var38;
@@ -2018,8 +2270,16 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var35;
+#else
   orc_union64 var35;
+#endif
   orc_union32 var36;
   orc_union64 var37;
   orc_union64 var38;
@@ -2086,6 +2346,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 40, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 100, 111, 117, 98,
+        108, 101, 95, 115, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 8,
+        8, 15, 8, 0, 0, 192, 255, 255, 255, 223, 65, 15, 8, 0, 0, 0,
+        0, 0, 0, 224, 63, 20, 8, 186, 32, 4, 214, 32, 32, 16, 212, 32,
+        32, 17, 222, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_double_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_double_s32_swap");
       orc_program_set_backup_function (p,
@@ -2104,6 +2377,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2200,6 +2474,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 102, 108, 111, 97,
+        116, 95, 100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 4, 4, 224, 0,
+        4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_float_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_float_double");
       orc_program_set_backup_function (p,
@@ -2209,6 +2494,7 @@
 
       orc_program_append_2 (p, "convfd", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2312,6 +2598,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 42, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 102, 108, 111, 97,
+        116, 95, 100, 111, 117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8, 8,
+        12, 4, 4, 20, 4, 184, 32, 4, 224, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_float_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_float_double_swap");
       orc_program_set_backup_function (p,
@@ -2324,6 +2621,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convfd", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2412,6 +2710,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 100, 111, 117, 98,
+        108, 101, 95, 100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 8, 8, 137,
+        0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_double_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_double_double");
       orc_program_set_backup_function (p,
@@ -2421,6 +2730,7 @@
 
       orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2510,6 +2820,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 100, 111, 117, 98,
+        108, 101, 95, 100, 111, 117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8,
+        8, 12, 8, 8, 186, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_double_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_double_double_swap");
       orc_program_set_backup_function (p,
@@ -2519,6 +2840,7 @@
 
       orc_program_append_2 (p, "swapq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2550,7 +2872,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union64 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -2591,7 +2917,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union64 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -2637,6 +2967,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 56, 95, 100,
+        111, 117, 98, 108, 101, 11, 8, 8, 12, 1, 1, 14, 4, 0, 0, 0,
+        128, 16, 4, 20, 2, 20, 4, 150, 32, 4, 154, 33, 32, 124, 33, 33,
+        24, 132, 33, 33, 16, 223, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u8_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u8_double");
       orc_program_set_backup_function (p,
@@ -2658,6 +3000,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2765,6 +3108,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 34, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 56, 95, 100,
+        111, 117, 98, 108, 101, 11, 8, 8, 12, 1, 1, 16, 4, 20, 2, 20,
+        4, 150, 32, 4, 154, 33, 32, 124, 33, 33, 24, 223, 0, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s8_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s8_double");
       orc_program_set_backup_function (p,
@@ -2783,6 +3138,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2815,7 +3171,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union64 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -2853,7 +3213,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union64 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -2896,6 +3260,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 49, 54, 95,
+        100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 2, 2, 14, 4, 0, 0,
+        0, 128, 16, 4, 20, 4, 154, 32, 4, 124, 32, 32, 24, 132, 32, 32,
+        16, 223, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u16_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u16_double");
       orc_program_set_backup_function (p,
@@ -2914,6 +3290,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3015,6 +3392,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 49, 54, 95,
+        100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 2, 2, 16, 4, 20, 4,
+        154, 32, 4, 124, 32, 32, 24, 223, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s16_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s16_double");
       orc_program_set_backup_function (p,
@@ -3030,6 +3418,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3062,7 +3451,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union64 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -3103,7 +3496,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union64 var36;
   orc_union16 var37;
   orc_union32 var38;
@@ -3149,6 +3546,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 40, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 49, 54, 95,
+        100, 111, 117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8, 8, 12, 2,
+        2, 14, 4, 0, 0, 0, 128, 16, 4, 20, 2, 20, 4, 183, 32, 4,
+        154, 33, 32, 124, 33, 33, 24, 132, 33, 33, 16, 223, 0, 33, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u16_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u16_double_swap");
       orc_program_set_backup_function (p,
@@ -3170,6 +3580,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3277,6 +3688,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 40, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 49, 54, 95,
+        100, 111, 117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8, 8, 12, 2,
+        2, 16, 4, 20, 2, 20, 4, 183, 32, 4, 154, 33, 32, 124, 33, 33,
+        24, 223, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s16_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s16_double_swap");
       orc_program_set_backup_function (p,
@@ -3295,6 +3718,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3327,7 +3751,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union64 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -3362,7 +3790,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union64 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -3402,6 +3834,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 51, 50, 95,
+        100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 4, 4, 14, 4, 0, 0,
+        0, 128, 16, 4, 20, 4, 124, 32, 4, 24, 132, 32, 32, 16, 223, 0,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u32_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u32_double");
       orc_program_set_backup_function (p,
@@ -3418,6 +3862,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3513,6 +3958,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 51, 50, 95,
+        100, 111, 117, 98, 108, 101, 11, 8, 8, 12, 4, 4, 16, 4, 20, 4,
+        124, 32, 4, 24, 223, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s32_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s32_double");
       orc_program_set_backup_function (p,
@@ -3526,6 +3982,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3558,7 +4015,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union64 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -3596,7 +4057,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union64 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -3639,6 +4104,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 40, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 117, 51, 50, 95,
+        100, 111, 117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8, 8, 12, 4,
+        4, 14, 4, 0, 0, 0, 128, 16, 4, 20, 4, 184, 32, 4, 124, 32,
+        32, 24, 132, 32, 32, 16, 223, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_u32_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_u32_double_swap");
       orc_program_set_backup_function (p,
@@ -3657,6 +4134,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3758,6 +4236,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 40, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 117, 110, 112, 97, 99, 107, 95, 115, 51, 50, 95,
+        100, 111, 117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8, 8, 12, 4,
+        4, 16, 4, 20, 4, 184, 32, 4, 124, 32, 32, 24, 223, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_unpack_s32_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_unpack_s32_double_swap");
       orc_program_set_backup_function (p,
@@ -3773,6 +4263,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3805,7 +4296,11 @@
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_int8 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -3843,7 +4338,11 @@
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_int8 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -3886,6 +4385,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 117, 56, 11, 1, 1, 12,
+        4, 4, 14, 4, 0, 0, 0, 128, 16, 4, 20, 4, 20, 2, 132, 32,
+        4, 16, 126, 32, 32, 24, 163, 33, 32, 157, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_u8");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u8);
@@ -3904,6 +4413,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4005,6 +4515,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 56, 11, 1, 1, 12,
+        4, 4, 16, 4, 20, 4, 20, 2, 125, 32, 4, 24, 163, 33, 32, 157,
+        0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s8");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s8);
@@ -4020,6 +4540,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4052,7 +4573,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union16 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -4087,7 +4612,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union16 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -4127,6 +4656,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 117, 49, 54, 11, 2, 2,
+        12, 4, 4, 14, 4, 0, 0, 0, 128, 16, 4, 20, 4, 132, 32, 4,
+        16, 126, 32, 32, 24, 163, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_u16");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u16);
@@ -4142,6 +4681,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4237,6 +4777,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 49, 54, 11, 2, 2,
+        12, 4, 4, 16, 4, 20, 4, 125, 32, 4, 24, 163, 0, 32, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s16");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s16);
@@ -4249,6 +4799,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4281,7 +4832,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union16 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -4319,7 +4874,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union16 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -4362,6 +4921,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 117, 49, 54, 95, 115, 119,
+        97, 112, 11, 2, 2, 12, 4, 4, 14, 4, 0, 0, 0, 128, 16, 4,
+        20, 4, 20, 2, 132, 32, 4, 16, 126, 32, 32, 24, 163, 33, 32, 183,
+        0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_u16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_u16_swap");
       orc_program_set_backup_function (p,
@@ -4381,6 +4952,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4482,6 +5054,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 49, 54, 95, 115, 119,
+        97, 112, 11, 2, 2, 12, 4, 4, 16, 4, 20, 4, 20, 2, 125, 32,
+        4, 24, 163, 33, 32, 183, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_s16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s16_swap");
       orc_program_set_backup_function (p,
@@ -4498,6 +5081,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4530,7 +5114,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -4562,7 +5150,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -4599,6 +5191,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 117, 51, 50, 11, 4, 4,
+        12, 4, 4, 14, 4, 0, 0, 0, 128, 16, 4, 20, 4, 132, 32, 4,
+        16, 126, 0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_u32");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u32);
@@ -4612,6 +5214,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shrul", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4701,6 +5304,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 51, 50, 11, 4, 4,
+        12, 4, 4, 16, 4, 125, 0, 4, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s32");
       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s32);
@@ -4710,6 +5322,7 @@
 
       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4742,7 +5355,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -4777,7 +5394,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -4817,6 +5438,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 117, 51, 50, 95, 115, 119,
+        97, 112, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0, 0, 128, 16, 4,
+        20, 4, 132, 32, 4, 16, 126, 32, 32, 24, 184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_u32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_u32_swap");
       orc_program_set_backup_function (p,
@@ -4833,6 +5465,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4928,6 +5561,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 51, 50, 95, 115, 119,
+        97, 112, 11, 4, 4, 12, 4, 4, 16, 4, 20, 4, 125, 32, 4, 24,
+        184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s32_swap");
       orc_program_set_backup_function (p,
@@ -4941,6 +5585,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4973,7 +5618,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -5013,7 +5662,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
 
@@ -5058,6 +5711,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 51, 50, 95, 102, 108,
+        111, 97, 116, 11, 4, 4, 12, 4, 4, 14, 4, 0, 0, 0, 79, 20,
+        4, 211, 32, 4, 203, 32, 32, 16, 128, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_s32_float);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s32_float");
       orc_program_set_backup_function (p,
@@ -5073,6 +5737,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5104,7 +5769,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -5147,7 +5816,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -5195,6 +5868,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 51, 50, 95, 102, 108,
+        111, 97, 116, 95, 115, 119, 97, 112, 11, 4, 4, 12, 4, 4, 14, 4,
+        0, 0, 0, 79, 20, 4, 211, 32, 4, 203, 32, 32, 16, 184, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_s32_float_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s32_float_swap");
       orc_program_set_backup_function (p,
@@ -5210,6 +5895,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5241,7 +5927,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union64 var35;
   orc_union64 var36;
 
@@ -5281,7 +5971,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union64 var35;
   orc_union64 var36;
 
@@ -5326,6 +6020,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 51, 50, 95, 100, 111,
+        117, 98, 108, 101, 11, 8, 8, 12, 4, 4, 15, 8, 0, 0, 192, 255,
+        255, 255, 223, 65, 20, 8, 223, 32, 4, 215, 32, 32, 16, 135, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_s32_double);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s32_double");
       orc_program_set_backup_function (p,
@@ -5341,6 +6047,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "storeq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5372,7 +6079,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union64 var35;
   orc_union64 var36;
   orc_union64 var37;
@@ -5415,7 +6126,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union64 var35;
   orc_union64 var36;
   orc_union64 var37;
@@ -5463,6 +6178,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 115, 51, 50, 95, 100, 111,
+        117, 98, 108, 101, 95, 115, 119, 97, 112, 11, 8, 8, 12, 4, 4, 15,
+        8, 0, 0, 192, 255, 255, 255, 223, 65, 20, 8, 223, 32, 4, 215, 32,
+        32, 16, 186, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_s32_double_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_s32_double_swap");
       orc_program_set_backup_function (p,
@@ -5478,6 +6205,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5578,6 +6306,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 102, 108, 111, 97, 116, 11, 4, 4, 12, 8, 8, 225, 0, 4, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_float);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_float");
       orc_program_set_backup_function (p,
@@ -5587,6 +6326,7 @@
 
       orc_program_append_2 (p, "convdf", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5693,6 +6433,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 40, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 102, 108, 111, 97, 116, 95, 115, 119, 97, 112, 11, 4, 4, 12, 8,
+        8, 20, 4, 225, 32, 4, 184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_float_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_float_swap");
       orc_program_set_backup_function (p,
@@ -5705,6 +6456,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5736,7 +6488,11 @@
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_int8 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -5783,7 +6539,11 @@
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_int8 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -5835,6 +6595,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 117, 56, 11, 1, 1, 12, 8, 8, 14, 4, 0, 0, 0, 128, 16,
+        4, 20, 4, 20, 2, 222, 32, 4, 132, 32, 32, 16, 126, 32, 32, 24,
+        163, 33, 32, 157, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_u8");
       orc_program_set_backup_function (p,
@@ -5856,6 +6628,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5975,6 +6748,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 115, 56, 11, 1, 1, 12, 8, 8, 16, 4, 20, 4, 20, 2, 222,
+        32, 4, 125, 32, 32, 24, 163, 33, 32, 157, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_s8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_s8");
       orc_program_set_backup_function (p,
@@ -5993,6 +6777,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6025,7 +6810,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union16 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -6069,7 +6858,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union16 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -6118,6 +6911,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 117, 49, 54, 11, 2, 2, 12, 8, 8, 14, 4, 0, 0, 0, 128,
+        16, 4, 20, 4, 222, 32, 4, 132, 32, 32, 16, 126, 32, 32, 24, 163,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_u16");
       orc_program_set_backup_function (p,
@@ -6136,6 +6941,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6249,6 +7055,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 115, 49, 54, 11, 2, 2, 12, 8, 8, 16, 4, 20, 4, 222, 32,
+        4, 125, 32, 32, 24, 163, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_s16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_s16");
       orc_program_set_backup_function (p,
@@ -6264,6 +7081,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6296,7 +7114,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union16 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -6343,7 +7165,11 @@
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
   orc_union32 var35;
+#endif
   orc_union16 var36;
   orc_union32 var37;
   orc_union32 var38;
@@ -6395,6 +7221,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 117, 49, 54, 95, 115, 119, 97, 112, 11, 2, 2, 12, 8, 8, 14,
+        4, 0, 0, 0, 128, 16, 4, 20, 4, 20, 2, 222, 32, 4, 132, 32,
+        32, 16, 126, 32, 32, 24, 163, 33, 32, 183, 0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_u16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_u16_swap");
       orc_program_set_backup_function (p,
@@ -6416,6 +7254,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6535,6 +7374,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 115, 49, 54, 95, 115, 119, 97, 112, 11, 2, 2, 12, 8, 8, 16,
+        4, 20, 4, 20, 2, 222, 32, 4, 125, 32, 32, 24, 163, 33, 32, 183,
+        0, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_s16_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_s16_swap");
       orc_program_set_backup_function (p,
@@ -6553,6 +7404,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6585,7 +7437,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -6626,7 +7482,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -6672,6 +7532,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 117, 51, 50, 11, 4, 4, 12, 8, 8, 14, 4, 0, 0, 0, 128,
+        16, 4, 20, 4, 222, 32, 4, 132, 32, 32, 16, 126, 0, 32, 24, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_u32");
       orc_program_set_backup_function (p,
@@ -6688,6 +7560,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shrul", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6795,6 +7668,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 33, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 115, 51, 50, 11, 4, 4, 12, 8, 8, 16, 4, 20, 4, 222, 32,
+        4, 125, 0, 32, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_s32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_s32");
       orc_program_set_backup_function (p,
@@ -6808,6 +7692,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6840,7 +7725,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -6884,7 +7773,11 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
   orc_union64 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
   orc_union32 var34;
+#endif
   orc_union32 var35;
   orc_union32 var36;
   orc_union32 var37;
@@ -6933,6 +7826,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 117, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 8, 8, 14,
+        4, 0, 0, 0, 128, 16, 4, 20, 4, 222, 32, 4, 132, 32, 32, 16,
+        126, 32, 32, 24, 184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_u32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_u32_swap");
       orc_program_set_backup_function (p,
@@ -6951,6 +7856,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -7064,6 +7970,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 97, 117, 100, 105, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 97, 99, 107, 95, 100, 111, 117, 98, 108, 101,
+        95, 115, 51, 50, 95, 115, 119, 97, 112, 11, 4, 4, 12, 8, 8, 16,
+        4, 20, 4, 222, 32, 4, 125, 32, 32, 24, 184, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_audio_convert_orc_pack_double_s32_swap);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "audio_convert_orc_pack_double_s32_swap");
       orc_program_set_backup_function (p,
@@ -7079,6 +7996,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/audioconvert/gstaudioquantize.c b/gst/audioconvert/gstaudioquantize.c
index 5d45d85..51973eb 100644
--- a/gst/audioconvert/gstaudioquantize.c
+++ b/gst/audioconvert/gstaudioquantize.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/gst/audioconvert/gstaudioquantize.h b/gst/audioconvert/gstaudioquantize.h
index b7e5cce..e5d0708 100644
--- a/gst/audioconvert/gstaudioquantize.h
+++ b/gst/audioconvert/gstaudioquantize.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/audioconvert/gstchannelmix.c b/gst/audioconvert/gstchannelmix.c
index 2364faa..06db4ea 100644
--- a/gst/audioconvert/gstchannelmix.c
+++ b/gst/audioconvert/gstchannelmix.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/audioconvert/gstchannelmix.h b/gst/audioconvert/gstchannelmix.h
index e02748e..804203c 100644
--- a/gst/audioconvert/gstchannelmix.h
+++ b/gst/audioconvert/gstchannelmix.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_CHANNEL_MIX_H__
diff --git a/gst/audioconvert/gstfastrandom.h b/gst/audioconvert/gstfastrandom.h
index 022b87e..07f56f1 100644
--- a/gst/audioconvert/gstfastrandom.h
+++ b/gst/audioconvert/gstfastrandom.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <glib.h>
diff --git a/gst/audioconvert/plugin.c b/gst/audioconvert/plugin.c
index d4ff6f8..2a4ba9d 100644
--- a/gst/audioconvert/plugin.c
+++ b/gst/audioconvert/plugin.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/audioconvert/plugin.h b/gst/audioconvert/plugin.h
index 5aa3ec4..6c18f6d 100644
--- a/gst/audioconvert/plugin.h
+++ b/gst/audioconvert/plugin.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/audiorate/Makefile.in b/gst/audiorate/Makefile.in
index 42de880..da372bf 100644
--- a/gst/audiorate/Makefile.in
+++ b/gst/audiorate/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audiorate
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -137,10 +163,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudiorate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudiorate_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaudiorate_la_SOURCES)
 DIST_SOURCES = $(libgstaudiorate_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -511,6 +563,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -537,12 +590,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudiorate.la: $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_DEPENDENCIES) $(EXTRA_libgstaudiorate_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudiorate_la_LINK) -rpath $(plugindir) $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_LIBADD) $(LIBS)
 
@@ -588,26 +644,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -619,15 +664,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -636,6 +677,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -780,19 +836,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/audiorate/gstaudiorate.c b/gst/audiorate/gstaudiorate.c
index 76e4c79..ecd1749 100644
--- a/gst/audiorate/gstaudiorate.c
+++ b/gst/audiorate/gstaudiorate.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/audiorate/gstaudiorate.h b/gst/audiorate/gstaudiorate.h
index b0b191e..c7dfd23 100644
--- a/gst/audiorate/gstaudiorate.h
+++ b/gst/audiorate/gstaudiorate.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_RATE_H__
diff --git a/gst/audioresample/Makefile.am b/gst/audioresample/Makefile.am
index aad8f46..607115d 100644
--- a/gst/audioresample/Makefile.am
+++ b/gst/audioresample/Makefile.am
@@ -39,6 +39,7 @@
 	gstaudioresample.h \
 	resample.c \
 	resample_sse.h \
+	resample_neon.h \
 	speex_resampler.h \
 	speex_resampler_wrapper.h
 
diff --git a/gst/audioresample/Makefile.in b/gst/audioresample/Makefile.in
index d130056..ef6abba 100644
--- a/gst/audioresample/Makefile.in
+++ b/gst/audioresample/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audioresample
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -143,10 +169,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudioresample_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudioresample_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -159,20 +198,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaudioresample_la_SOURCES)
 DIST_SOURCES = $(libgstaudioresample_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,6 +216,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -510,6 +562,7 @@
 	gstaudioresample.h \
 	resample.c \
 	resample_sse.h \
+	resample_neon.h \
 	speex_resampler.h \
 	speex_resampler_wrapper.h
 
@@ -547,6 +600,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -573,12 +627,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudioresample.la: $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_DEPENDENCIES) $(EXTRA_libgstaudioresample_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudioresample_la_LINK) -rpath $(plugindir) $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_LIBADD) $(LIBS)
 
@@ -648,26 +705,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -679,15 +725,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -696,6 +738,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -840,19 +897,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/audioresample/arch.h b/gst/audioresample/arch.h
index c518458..4e77e6e 100644
--- a/gst/audioresample/arch.h
+++ b/gst/audioresample/arch.h
@@ -197,6 +197,7 @@
 #define VSHR32(a,shift) (a)
 #define SATURATE16(x,a) (x)
 #define SATURATE32(x,a) (x)
+#define SATURATE32PSHR(x,shift,a) (x)
 
 #define PSHR(a,shift)       (a)
 #define SHR(a,shift)       (a)
diff --git a/gst/audioresample/fixed_generic.h b/gst/audioresample/fixed_generic.h
index 3fb096e..6991352 100644
--- a/gst/audioresample/fixed_generic.h
+++ b/gst/audioresample/fixed_generic.h
@@ -51,6 +51,10 @@
 #define VSHR32(a, shift) (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift)))
 #define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
 #define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
+ 
+#define SATURATE32PSHR(x,shift,a) (((x)>=(SHL32(a,shift))) ? (a) : \
+                                   (x)<=-(SHL32(a,shift)) ? -(a) : \
+                                   (PSHR32(x, shift)))
 
 #define SHR(a,shift) ((a) >> (shift))
 #define SHL(a,shift) ((spx_word32_t)(a) << (shift))
diff --git a/gst/audioresample/gstaudioresample.c b/gst/audioresample/gstaudioresample.c
index fa73ec1..e2a52ee 100644
--- a/gst/audioresample/gstaudioresample.c
+++ b/gst/audioresample/gstaudioresample.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -25,6 +25,14 @@
  * audioresample resamples raw audio buffers to different sample rates using
  * a configurable windowing function to enhance quality.
  *
+ * By default, the resampler uses a reduced sinc table, with cubic interpolation filling in
+ * the gaps. This ensures that the table does not become too big. However, the interpolation
+ * increases the CPU usage considerably. As an alternative, a full sinc table can be used.
+ * Doing so can drastically reduce CPU usage (4x faster with 44.1 -> 48 kHz conversions for
+ * example), at the cost of increased memory consumption, plus the sinc table takes longer
+ * to initialize when the element is created. A third mode exists, which uses the full table
+ * unless said table would become too large, in which case the interpolated one is used instead.
+ *
  * <refsect2>
  * <title>Example launch line</title>
  * |[
@@ -62,10 +70,14 @@
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
 #endif
 
+#define GST_TYPE_SPEEX_RESAMPLER_SINC_FILTER_MODE (speex_resampler_sinc_filter_mode_get_type ())
+
 enum
 {
   PROP_0,
-  PROP_QUALITY
+  PROP_QUALITY,
+  PROP_SINC_FILTER_MODE,
+  PROP_SINC_FILTER_AUTO_THRESHOLD
 };
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
@@ -104,6 +116,9 @@
 static void gst_audio_resample_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
+static GType
+speex_resampler_sinc_filter_mode_get_type (void);
+
 /* vmethods */
 static gboolean gst_audio_resample_get_unit_size (GstBaseTransform * base,
     GstCaps * caps, gsize * size);
@@ -144,6 +159,20 @@
           SPEEX_RESAMPLER_QUALITY_DEFAULT,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_SINC_FILTER_MODE,
+      g_param_spec_enum ("sinc-filter-mode", "Sinc filter table mode",
+          "What sinc filter table mode to use",
+          GST_TYPE_SPEEX_RESAMPLER_SINC_FILTER_MODE,
+          SPEEX_RESAMPLER_SINC_FILTER_DEFAULT,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_SINC_FILTER_AUTO_THRESHOLD,
+      g_param_spec_uint ("sinc-filter-auto-threshold", "Sinc filter auto mode threshold",
+          "Memory usage threshold to use if sinc filter mode is AUTO, given in bytes",
+          0, G_MAXUINT,
+          SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT,
+           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_audio_resample_src_template));
   gst_element_class_add_pad_template (gstelement_class,
@@ -181,6 +210,8 @@
   GstBaseTransform *trans = GST_BASE_TRANSFORM (resample);
 
   resample->quality = SPEEX_RESAMPLER_QUALITY_DEFAULT;
+  resample->sinc_filter_mode = SPEEX_RESAMPLER_SINC_FILTER_DEFAULT;
+  resample->sinc_filter_auto_threshold = SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT;
 
   gst_base_transform_set_gap_aware (trans, TRUE);
   gst_pad_set_query_function (trans->srcpad, gst_audio_resample_query);
@@ -349,13 +380,16 @@
 
 static SpeexResamplerState *
 gst_audio_resample_init_state (GstAudioResample * resample, gint width,
-    gint channels, gint inrate, gint outrate, gint quality, gboolean fp)
+    gint channels, gint inrate, gint outrate, gint quality, gboolean fp,
+    SpeexResamplerSincFilterMode sinc_filter_mode,
+    guint32 sinc_filter_auto_threshold)
 {
   SpeexResamplerState *ret = NULL;
   gint err = RESAMPLER_ERR_SUCCESS;
   const SpeexResampleFuncs *funcs = gst_audio_resample_get_funcs (width, fp);
 
-  ret = funcs->init (channels, inrate, outrate, quality, &err);
+  ret = funcs->init (channels, inrate, outrate, quality,
+        sinc_filter_mode, sinc_filter_auto_threshold, &err);
 
   if (G_UNLIKELY (err != RESAMPLER_ERR_SUCCESS)) {
     GST_ERROR_OBJECT (resample, "Failed to create resampler state: %s",
@@ -363,6 +397,11 @@
     return NULL;
   }
 
+  if (sinc_filter_mode == SPEEX_RESAMPLER_SINC_FILTER_AUTO) {
+    GST_INFO_OBJECT (resample, "Using the %s sinc filter table",
+        funcs->get_sinc_filter_mode(ret) ? "full" : "interpolated");
+  }
+
   funcs->skip_zeros (ret);
 
   return ret;
@@ -370,7 +409,9 @@
 
 static gboolean
 gst_audio_resample_update_state (GstAudioResample * resample, gint width,
-    gint channels, gint inrate, gint outrate, gint quality, gboolean fp)
+    gint channels, gint inrate, gint outrate, gint quality, gboolean fp,
+    SpeexResamplerSincFilterMode sinc_filter_mode,
+    guint32 sinc_filter_auto_threshold)
 {
   gboolean ret = TRUE;
   gboolean updated_latency = FALSE;
@@ -381,11 +422,12 @@
   if (resample->state == NULL) {
     ret = TRUE;
   } else if (resample->channels != channels || fp != resample->fp
-      || width != resample->width) {
+      || width != resample->width || sinc_filter_mode != resample->sinc_filter_mode
+      || sinc_filter_auto_threshold != resample->sinc_filter_auto_threshold) {
     resample->funcs->destroy (resample->state);
     resample->state =
         gst_audio_resample_init_state (resample, width, channels, inrate,
-        outrate, quality, fp);
+        outrate, quality, fp, sinc_filter_mode, sinc_filter_auto_threshold);
 
     resample->funcs = gst_audio_resample_get_funcs (width, fp);
     ret = (resample->state != NULL);
@@ -417,6 +459,8 @@
   resample->quality = quality;
   resample->inrate = inrate;
   resample->outrate = outrate;
+  resample->sinc_filter_mode = sinc_filter_mode;
+  resample->sinc_filter_auto_threshold = sinc_filter_auto_threshold;
 
   if (updated_latency)
     gst_element_post_message (GST_ELEMENT (resample),
@@ -526,7 +570,8 @@
 
   ret =
       gst_audio_resample_update_state (resample, width, channels, inrate,
-      outrate, resample->quality, fp);
+      outrate, resample->quality, fp, resample->sinc_filter_mode,
+      resample->sinc_filter_auto_threshold);
 
   if (G_UNLIKELY (!ret))
     return FALSE;
@@ -1126,7 +1171,8 @@
     if (G_UNLIKELY (!(resample->state =
                 gst_audio_resample_init_state (resample, resample->width,
                     resample->channels, resample->inrate, resample->outrate,
-                    resample->quality, resample->fp))))
+                    resample->quality, resample->fp, resample->sinc_filter_mode,
+                    resample->sinc_filter_auto_threshold))))
       return GST_FLOW_ERROR;
 
     resample->funcs =
@@ -1279,8 +1325,31 @@
 
       gst_audio_resample_update_state (resample, resample->width,
           resample->channels, resample->inrate, resample->outrate,
-          quality, resample->fp);
+          quality, resample->fp, resample->sinc_filter_mode,
+          resample->sinc_filter_auto_threshold);
       break;
+    case PROP_SINC_FILTER_MODE: {
+      /* FIXME locking! */
+      SpeexResamplerSincFilterMode sinc_filter_mode = g_value_get_enum (value);
+
+      gst_audio_resample_update_state (resample, resample->width,
+          resample->channels, resample->inrate, resample->outrate,
+          resample->quality, resample->fp, sinc_filter_mode,
+          resample->sinc_filter_auto_threshold);
+
+      break;
+    }
+    case PROP_SINC_FILTER_AUTO_THRESHOLD: {
+      /* FIXME locking! */
+      guint32 sinc_filter_auto_threshold = g_value_get_uint (value);
+
+      gst_audio_resample_update_state (resample, resample->width,
+          resample->channels, resample->inrate, resample->outrate,
+          resample->quality, resample->fp, resample->sinc_filter_mode,
+          sinc_filter_auto_threshold);
+
+      break;
+    }
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1299,12 +1368,39 @@
     case PROP_QUALITY:
       g_value_set_int (value, resample->quality);
       break;
+    case PROP_SINC_FILTER_MODE:
+      g_value_set_enum(value, resample->sinc_filter_mode);
+      break;
+    case PROP_SINC_FILTER_AUTO_THRESHOLD:
+      g_value_set_uint(value, resample->sinc_filter_auto_threshold);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
   }
 }
 
+static GType
+speex_resampler_sinc_filter_mode_get_type (void)
+{
+  static GType speex_resampler_sinc_filter_mode_type = 0;
+
+  if (!speex_resampler_sinc_filter_mode_type) {
+    static GEnumValue sinc_filter_modes[] = {
+      { SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED, "Use interpolated sinc table",                  "interpolated" },
+      { SPEEX_RESAMPLER_SINC_FILTER_FULL,         "Use full sinc table",                          "full"         },
+      { SPEEX_RESAMPLER_SINC_FILTER_AUTO,         "Use full table if table size below threshold", "auto"         },
+      { 0, NULL, NULL },
+    };
+
+    speex_resampler_sinc_filter_mode_type = g_enum_register_static (
+                                            "SpeexResamplerSincFilterMode",
+                                            sinc_filter_modes);
+  }
+
+  return speex_resampler_sinc_filter_mode_type;
+}
+
 /* FIXME: should have a benchmark fallback for the case where orc is disabled */
 #if defined(AUDIORESAMPLE_FORMAT_AUTO) && !defined(DISABLE_ORC)
 
@@ -1367,13 +1463,19 @@
   orc_profile_init (&a);
   orc_profile_init (&b);
 
-  sta = resample_float_resampler_init (1, 48000, 24000, 4, NULL);
+  sta = resample_float_resampler_init (1, 48000, 24000, 4,
+        SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED,
+        SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT,
+        NULL);
   if (sta == NULL) {
     GST_ERROR ("Failed to create float resampler state");
     return FALSE;
   }
 
-  stb = resample_int_resampler_init (1, 48000, 24000, 4, NULL);
+  stb = resample_int_resampler_init (1, 48000, 24000, 4,
+        SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED,
+        SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT,
+        NULL);
   if (stb == NULL) {
     resample_float_resampler_destroy (sta);
     GST_ERROR ("Failed to create int resampler state");
diff --git a/gst/audioresample/gstaudioresample.h b/gst/audioresample/gstaudioresample.h
index da75b64..0d25072 100644
--- a/gst/audioresample/gstaudioresample.h
+++ b/gst/audioresample/gstaudioresample.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
@@ -77,6 +77,9 @@
   gint inrate;
   gint outrate;
 
+  SpeexResamplerSincFilterMode sinc_filter_mode;
+  guint32 sinc_filter_auto_threshold;
+
   guint8 *tmp_in;
   guint tmp_in_size;
 
diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
index fefa0c5..98d006c 100644
--- a/gst/audioresample/resample.c
+++ b/gst/audioresample/resample.c
@@ -88,6 +88,12 @@
 #endif
 #endif
 
+#ifdef _USE_NEON
+#ifndef HAVE_ARM_NEON
+#undef _USE_NEON
+#endif
+#endif
+
 static inline void *
 speex_alloc (int size)
 {
@@ -134,6 +140,10 @@
 #include "resample_sse.h"
 #endif
 
+#ifdef _USE_NEON
+#include "resample_neon.h"
+#endif
+
 /* Numer of elements to allocate on the stack */
 #ifdef VAR_ARRAYS
 #define FIXED_STACK_ALLOC 8192
@@ -162,6 +172,16 @@
 #define SSE2_FALLBACK(macro)
 #endif
 
+#ifdef _USE_NEON
+#define NEON_FALLBACK(macro) \
+  if (st->use_neon) goto neon_##macro##_neon; {
+#define NEON_IMPLEMENTATION(macro) \
+  goto neon_##macro##_end; } neon_##macro##_neon: {
+#define NEON_END(macro) neon_##macro##_end:; }
+#else
+#define NEON_FALLBACK(macro)
+#endif
+
 
 typedef int (*resampler_basic_func) (SpeexResamplerState *, spx_uint32_t,
     const spx_word16_t *, spx_uint32_t *, spx_word16_t *, spx_uint32_t *);
@@ -184,6 +204,7 @@
   spx_uint32_t oversample;
   int initialised;
   int started;
+  int use_full_sinc_table;
 
   /* These are per-channel */
   spx_int32_t *last_sample;
@@ -200,6 +221,7 @@
 
   int use_sse:1;
   int use_sse2:1;
+  int use_neon:1;
 };
 
 static double kaiser12_table[68] = {
@@ -456,6 +478,7 @@
     const spx_word16_t *iptr = &in[last_sample];
 
     SSE_FALLBACK (INNER_PRODUCT_SINGLE)
+    NEON_FALLBACK (INNER_PRODUCT_SINGLE)
         sum = 0;
     for (j = 0; j < N; j++)
       sum += MULT16_16 (sinc[j], iptr[j]);
@@ -472,12 +495,16 @@
       }
       sum = accum[0] + accum[1] + accum[2] + accum[3];
 */
-#ifdef OVERRIDE_INNER_PRODUCT_SINGLE
+#if defined(OVERRIDE_INNER_PRODUCT_SINGLE) && defined(_USE_NEON)
+    NEON_IMPLEMENTATION (INNER_PRODUCT_SINGLE)
+    sum = inner_product_single (sinc, iptr, N);
+    NEON_END(INNER_PRODUCT_SINGLE)
+#elif defined(OVERRIDE_INNER_PRODUCT_SINGLE) && defined(_USE_SSE)
     SSE_IMPLEMENTATION (INNER_PRODUCT_SINGLE)
         sum = inner_product_single (sinc, iptr, N);
     SSE_END (INNER_PRODUCT_SINGLE)
 #endif
-        out[out_stride * out_sample++] = SATURATE32 (PSHR32 (sum, 15), 32767);
+    out[out_stride * out_sample++] = SATURATE32PSHR(sum, 15, 32767);
     last_sample += int_advance;
     samp_frac_num += frac_advance;
     if (samp_frac_num >= den_rate) {
@@ -527,7 +554,7 @@
       accum[3] += sinc[j + 3] * iptr[j + 3];
     }
     sum = accum[0] + accum[1] + accum[2] + accum[3];
-#ifdef OVERRIDE_INNER_PRODUCT_DOUBLE
+#if defined(OVERRIDE_INNER_PRODUCT_DOUBLE) && defined(_USE_SSE2)
     SSE2_IMPLEMENTATION (INNER_PRODUCT_DOUBLE)
         sum = inner_product_double (sinc, iptr, N);
     SSE2_END (INNER_PRODUCT_DOUBLE)
@@ -606,7 +633,7 @@
             1)) + MULT16_32_Q15 (interp[1], SHR32 (accum[1],
             1)) + MULT16_32_Q15 (interp[2], SHR32 (accum[2],
             1)) + MULT16_32_Q15 (interp[3], SHR32 (accum[3], 1));
-#ifdef OVERRIDE_INTERPOLATE_PRODUCT_SINGLE
+#if defined(OVERRIDE_INTERPOLATE_PRODUCT_SINGLE) && defined(_USE_SSE)
     SSE_IMPLEMENTATION (INTERPOLATE_PRODUCT_SINGLE)
         cubic_coef (frac, interp);
     sum =
@@ -615,7 +642,7 @@
         interp);
     SSE_END (INTERPOLATE_PRODUCT_SINGLE)
 #endif
-        out[out_stride * out_sample++] = SATURATE32 (PSHR32 (sum, 14), 32767);
+    out[out_stride * out_sample++] = SATURATE32PSHR(sum, 14, 32767);
     last_sample += int_advance;
     samp_frac_num += frac_advance;
     if (samp_frac_num >= den_rate) {
@@ -696,7 +723,7 @@
         MULT16_32_Q15 (interp[0], accum[0]) + MULT16_32_Q15 (interp[1],
         accum[1]) + MULT16_32_Q15 (interp[2],
         accum[2]) + MULT16_32_Q15 (interp[3], accum[3]);
-#ifdef OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+#if defined(OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE) && defined(_USE_SSE2)
     SSE2_IMPLEMENTATION (INTERPOLATE_PRODUCT_DOUBLE)
         cubic_coef (frac, interp);
     sum =
@@ -754,7 +781,8 @@
   }
 
   /* Choose the resampling type that requires the least amount of memory */
-  if (st->den_rate <= st->oversample) {
+  /* Or if the full sinc table is explicitely requested, use that */
+  if (st->use_full_sinc_table || (st->den_rate <= st->oversample)) {
     spx_uint32_t i;
     if (!st->sinc_table)
       st->sinc_table =
@@ -918,10 +946,11 @@
 
 EXPORT SpeexResamplerState *
 speex_resampler_init (spx_uint32_t nb_channels, spx_uint32_t in_rate,
-    spx_uint32_t out_rate, int quality, int *err)
+    spx_uint32_t out_rate, int quality, SpeexResamplerSincFilterMode sinc_filter_mode,
+    spx_uint32_t sinc_filter_auto_threshold, int *err)
 {
   return speex_resampler_init_frac (nb_channels, in_rate, out_rate, in_rate,
-      out_rate, quality, err);
+      out_rate, quality, sinc_filter_mode, sinc_filter_auto_threshold, err);
 }
 
 #if defined HAVE_ORC && !defined DISABLE_ORC
@@ -930,25 +959,51 @@
 {
   if (!name)
     return;
+#ifdef _USE_SSE
   if (!strcmp (name, "sse"))
     st->use_sse = 1;
+#endif
+#ifdef _USE_SSE2
   if (!strcmp (name, "sse2"))
     st->use_sse = st->use_sse2 = 1;
+#endif
+#ifdef _USE_NEON
+  if (!strcmp (name, "neon"))
+    st->use_neon = 1;
+#endif
 }
 #endif
 
 EXPORT SpeexResamplerState *
 speex_resampler_init_frac (spx_uint32_t nb_channels, spx_uint32_t ratio_num,
     spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate,
-    int quality, int *err)
+    int quality, SpeexResamplerSincFilterMode sinc_filter_mode,
+    spx_uint32_t sinc_filter_auto_threshold, int *err)
 {
   spx_uint32_t i;
   SpeexResamplerState *st;
+  int use_full_sinc_table = 0;
   if (quality > 10 || quality < 0) {
     if (err)
       *err = RESAMPLER_ERR_INVALID_ARG;
     return NULL;
   }
+  switch (sinc_filter_mode) {
+    case RESAMPLER_SINC_FILTER_INTERPOLATED:
+      use_full_sinc_table = 0;
+      break;
+    case RESAMPLER_SINC_FILTER_FULL:
+      use_full_sinc_table = 1;
+      break;
+    case RESAMPLER_SINC_FILTER_AUTO:
+      /* Handled below */
+      break;
+    default:
+      if (err)
+        *err = RESAMPLER_ERR_INVALID_ARG;
+      return NULL;
+  }
+
   st = (SpeexResamplerState *) speex_alloc (sizeof (SpeexResamplerState));
   st->initialised = 0;
   st->started = 0;
@@ -962,6 +1017,7 @@
   st->filt_len = 0;
   st->mem = 0;
   st->resampler_ptr = 0;
+  st->use_full_sinc_table = use_full_sinc_table;
 
   st->cutoff = 1.f;
   st->nb_channels = nb_channels;
@@ -975,6 +1031,7 @@
 #endif
 
   st->use_sse = st->use_sse2 = 0;
+  st->use_neon = 0;
 #if defined HAVE_ORC && !defined DISABLE_ORC
   orc_init ();
   {
@@ -1004,6 +1061,16 @@
   speex_resampler_set_quality (st, quality);
   speex_resampler_set_rate_frac (st, ratio_num, ratio_den, in_rate, out_rate);
 
+  if (sinc_filter_mode == RESAMPLER_SINC_FILTER_AUTO) {
+    /*
+    Estimate how big the filter table would become if the full mode were to be used
+    calculations used correspond to the ones in update_filter()
+    if the size is bigger than the threshold, use interpolated sinc instead
+    */
+    spx_uint32_t base_filter_length = st->filt_len = quality_map[st->quality].base_length;
+    spx_uint32_t filter_table_size = base_filter_length * st->den_rate * sizeof(spx_uint16_t);
+    st->use_full_sinc_table = (filter_table_size > sinc_filter_auto_threshold) ? 0 : 1;
+  }
 
   update_filter (st);
 
@@ -1392,6 +1459,12 @@
 }
 
 EXPORT int
+speex_resampler_get_sinc_filter_mode (SpeexResamplerState * st)
+{
+  return st->use_full_sinc_table;
+}
+
+EXPORT int
 speex_resampler_skip_zeros (SpeexResamplerState * st)
 {
   spx_uint32_t i;
diff --git a/gst/audioresample/resample_neon.h b/gst/audioresample/resample_neon.h
new file mode 100644
index 0000000..478488f
--- /dev/null
+++ b/gst/audioresample/resample_neon.h
@@ -0,0 +1,202 @@
+/* Copyright (C) 2007-2008 Jean-Marc Valin
+ * Copyright (C) 2008 Thorvald Natvig
+ * Copyright (C) 2011 Texas Instruments
+ *               author Jyri Sarha
+ */
+/**
+   @file resample_neon.h
+   @brief Resampler functions (NEON version)
+*/
+/*
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   - Neither the name of the Xiph.org Foundation nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <arm_neon.h>
+
+#ifdef FIXED_POINT
+#ifdef __thumb2__ 
+static inline int32_t saturate_32bit_to_16bit(int32_t a) {
+    int32_t ret;
+    asm ("ssat %[ret], #16, %[a]"
+         : [ret] "=&r" (ret)
+         : [a] "r" (a)
+         : );
+    return ret;
+}
+#else
+static inline int32_t saturate_32bit_to_16bit(int32_t a) {
+    int32_t ret;
+    asm ("vmov.s32 d0[0], %[a]\n"
+         "vqmovn.s32 d0, q0\n"
+         "vmov.s16 %[ret], d0[0]\n"
+         : [ret] "=&r" (ret)
+         : [a] "r" (a)
+         : "q0");
+    return ret;
+}
+#endif
+#undef WORD2INT
+#define WORD2INT(x) (saturate_32bit_to_16bit(x))
+
+#define OVERRIDE_INNER_PRODUCT_SINGLE
+/* Only works when len % 4 == 0 */
+static inline int32_t inner_product_single(const int16_t *a, const int16_t *b, unsigned int len)
+{
+    int32_t ret;
+    uint32_t remainder = len % 16;
+    len = len - remainder;
+
+    asm volatile ("	 cmp %[len], #0\n"
+		  "	 bne 1f\n"
+		  "	 vld1.16 {d16}, [%[b]]!\n"
+		  "	 vld1.16 {d20}, [%[a]]!\n"
+		  "	 subs %[remainder], %[remainder], #4\n"
+		  "	 vmull.s16 q0, d16, d20\n"
+		  "      beq 5f\n" 
+		  "	 b 4f\n"
+		  "1:"
+		  "	 vld1.16 {d16, d17, d18, d19}, [%[b]]!\n"
+		  "	 vld1.16 {d20, d21, d22, d23}, [%[a]]!\n"
+		  "	 subs %[len], %[len], #16\n"
+		  "	 vmull.s16 q0, d16, d20\n"
+		  "	 vmlal.s16 q0, d17, d21\n"
+		  "	 vmlal.s16 q0, d18, d22\n"
+		  "	 vmlal.s16 q0, d19, d23\n"
+		  "	 beq 3f\n"
+		  "2:"
+		  "	 vld1.16 {d16, d17, d18, d19}, [%[b]]!\n"
+		  "	 vld1.16 {d20, d21, d22, d23}, [%[a]]!\n"
+		  "	 subs %[len], %[len], #16\n"
+		  "	 vmlal.s16 q0, d16, d20\n"
+		  "	 vmlal.s16 q0, d17, d21\n"
+		  "	 vmlal.s16 q0, d18, d22\n"
+		  "	 vmlal.s16 q0, d19, d23\n"
+		  "	 bne 2b\n"
+		  "3:"
+		  "	 cmp %[remainder], #0\n"
+		  "	 beq 5f\n"
+		  "4:"
+		  "	 vld1.16 {d16}, [%[b]]!\n"
+		  "	 vld1.16 {d20}, [%[a]]!\n"
+		  "	 subs %[remainder], %[remainder], #4\n"
+		  "	 vmlal.s16 q0, d16, d20\n"
+		  "	 bne 4b\n"
+		  "5:"
+		  "	 vaddl.s32 q0, d0, d1\n"
+		  "	 vadd.s64 d0, d0, d1\n"
+		  "	 vqmovn.s64 d0, q0\n"
+		  "	 vqrshrn.s32 d0, q0, #15\n"
+		  "	 vmov.s16 %[ret], d0[0]\n"
+		  : [ret] "=&r" (ret), [a] "+r" (a), [b] "+r" (b),
+		    [len] "+r" (len), [remainder] "+r" (remainder)
+		  :
+		  : "cc", "q0",
+		    "d16", "d17", "d18", "d19",
+		    "d20", "d21", "d22", "d23");
+
+    return ret;
+}
+#elif defined(FLOATING_POINT)
+
+static inline int32_t saturate_float_to_16bit(float a) {
+    int32_t ret;
+    asm ("vmov.f32 d0[0], %[a]\n"
+         "vcvt.s32.f32 d0, d0, #15\n"
+         "vqrshrn.s32 d0, q0, #15\n"
+         "vmov.s16 %[ret], d0[0]\n"
+         : [ret] "=&r" (ret)
+         : [a] "r" (a)
+         : "q0");
+    return ret;
+}
+#undef WORD2INT
+#define WORD2INT(x) (saturate_float_to_16bit(x))
+
+#define OVERRIDE_INNER_PRODUCT_SINGLE
+/* Only works when len % 4 == 0 */
+static inline float inner_product_single(const float *a, const float *b, unsigned int len)
+{
+    float ret;
+    uint32_t remainder = len % 16;
+    len = len - remainder;
+
+    asm volatile ("	 cmp %[len], #0\n"
+		  "	 bne 1f\n"
+		  "	 vld1.32 {q4}, [%[b]]!\n"
+		  "	 vld1.32 {q8}, [%[a]]!\n"
+		  "	 subs %[remainder], %[remainder], #4\n"
+		  "	 vmul.f32 q0, q4, q8\n"
+		  "      bne 4f\n" 
+		  "	 b 5f\n"
+		  "1:"
+		  "	 vld1.32 {q4, q5}, [%[b]]!\n"
+		  "	 vld1.32 {q8, q9}, [%[a]]!\n"
+		  "	 vld1.32 {q6, q7}, [%[b]]!\n"
+		  "	 vld1.32 {q10, q11}, [%[a]]!\n"
+		  "	 subs %[len], %[len], #16\n"
+		  "	 vmul.f32 q0, q4, q8\n"
+		  "	 vmul.f32 q1, q5, q9\n"
+		  "	 vmul.f32 q2, q6, q10\n"
+		  "	 vmul.f32 q3, q7, q11\n"
+		  "	 beq 3f\n"
+		  "2:"
+		  "	 vld1.32 {q4, q5}, [%[b]]!\n"
+		  "	 vld1.32 {q8, q9}, [%[a]]!\n"
+		  "	 vld1.32 {q6, q7}, [%[b]]!\n"
+		  "	 vld1.32 {q10, q11}, [%[a]]!\n"
+		  "	 subs %[len], %[len], #16\n"
+		  "	 vmla.f32 q0, q4, q8\n"
+		  "	 vmla.f32 q1, q5, q9\n"
+		  "	 vmla.f32 q2, q6, q10\n"
+		  "	 vmla.f32 q3, q7, q11\n"
+		  "	 bne 2b\n"
+		  "3:"
+		  "	 vadd.f32 q4, q0, q1\n"
+		  "	 vadd.f32 q5, q2, q3\n"
+		  "	 cmp %[remainder], #0\n"
+		  "	 vadd.f32 q0, q4, q5\n"
+		  "	 beq 5f\n"
+		  "4:"
+		  "	 vld1.32 {q6}, [%[b]]!\n"
+		  "	 vld1.32 {q10}, [%[a]]!\n"
+		  "	 subs %[remainder], %[remainder], #4\n"
+		  "	 vmla.f32 q0, q6, q10\n"
+		  "	 bne 4b\n"
+		  "5:"
+		  "	 vadd.f32 d0, d0, d1\n"
+		  "	 vpadd.f32 d0, d0, d0\n"
+		  "	 vmov.f32 %[ret], d0[0]\n"
+		  : [ret] "=&r" (ret), [a] "+r" (a), [b] "+r" (b),
+		    [len] "+l" (len), [remainder] "+l" (remainder)
+		  :
+		  : "cc", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8",
+                    "q9", "q10", "q11");
+    return ret;
+}
+#endif
+
diff --git a/gst/audioresample/speex_resampler.h b/gst/audioresample/speex_resampler.h
index 894b380..b9aaa2c 100644
--- a/gst/audioresample/speex_resampler.h
+++ b/gst/audioresample/speex_resampler.h
@@ -74,6 +74,7 @@
 #define speex_resampler_get_input_latency CAT_PREFIX(RANDOM_PREFIX,_resampler_get_input_latency)
 #define speex_resampler_get_output_latency CAT_PREFIX(RANDOM_PREFIX,_resampler_get_output_latency)
 #define speex_resampler_get_filt_len CAT_PREFIX(RANDOM_PREFIX,_resampler_get_filt_len)
+#define speex_resampler_get_sinc_filter_mode CAT_PREFIX(RANDOM_PREFIX,_resampler_get_sinc_filter_mode)
 #define speex_resampler_skip_zeros CAT_PREFIX(RANDOM_PREFIX,_resampler_skip_zeros)
 #define speex_resampler_reset_mem CAT_PREFIX(RANDOM_PREFIX,_resampler_reset_mem)
 #define speex_resampler_strerror CAT_PREFIX(RANDOM_PREFIX,_resampler_strerror)
@@ -113,6 +114,15 @@
    RESAMPLER_ERR_MAX_ERROR
 };
 
+typedef enum {
+   RESAMPLER_SINC_FILTER_INTERPOLATED   = 0,
+   RESAMPLER_SINC_FILTER_FULL           = 1,
+   RESAMPLER_SINC_FILTER_AUTO           = 2
+} SpeexResamplerSincFilterMode;
+
+#define RESAMPLER_SINC_FILTER_DEFAULT RESAMPLER_SINC_FILTER_INTERPOLATED
+#define RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT (1 * 1048576)
+
 struct SpeexResamplerState_;
 typedef struct SpeexResamplerState_ SpeexResamplerState;
 
@@ -122,13 +132,23 @@
  * @param out_rate Output sampling rate (integer number of Hz).
  * @param quality Resampling quality between 0 and 10, where 0 has poor quality
  * and 10 has very high quality.
+ * @param sinc_filter_mode Sinc filter table mode to use
+ * @param sinc_filter_auto_threshold Threshold to use if sinc filter mode is auto, in bytes
  * @return Newly created resampler state
  * @retval NULL Error: not enough memory
+ *
+ * If a full filter table would be larger than the auto threshold, and sinc_filter_mode is AUTO,
+ * the resample uses the interpolated mode instead
+ *
+ * @note A full sinc table can significantly improve the resampler's performance, but calculating the table
+ * takes longer, as opposed to the interpolated variant
  */
 SpeexResamplerState *speex_resampler_init(spx_uint32_t nb_channels, 
                                           spx_uint32_t in_rate, 
                                           spx_uint32_t out_rate, 
                                           int quality,
+                                          SpeexResamplerSincFilterMode sinc_filter_mode,
+                                          spx_uint32_t sinc_filter_auto_threshold,
                                           int *err);
 
 /** Create a new resampler with fractional input/output rates. The sampling 
@@ -141,8 +161,16 @@
  * @param out_rate Output sampling rate rounded to the nearest integer (in Hz).
  * @param quality Resampling quality between 0 and 10, where 0 has poor quality
  * and 10 has very high quality.
+ * @param sinc_filter_mode Sinc filter table mode to use
+ * @param sinc_filter_auto_threshold Threshold to use if sinc filter mode is auto, in bytes
  * @return Newly created resampler state
  * @retval NULL Error: not enough memory
+ *
+ * If a full filter table would be larger than the auto threshold, and sinc_filter_mode is AUTO,
+ * the resample uses the interpolated mode instead
+ *
+ * @note A full sinc table can significantly improve the resampler's performance, but calculating the table
+ * takes longer, as opposed to the interpolated variant
  */
 SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels, 
                                                spx_uint32_t ratio_num, 
@@ -150,6 +178,8 @@
                                                spx_uint32_t in_rate, 
                                                spx_uint32_t out_rate, 
                                                int quality,
+                                               SpeexResamplerSincFilterMode sinc_filter_mode,
+                                               spx_uint32_t sinc_filter_auto_threshold,
                                                int *err);
 
 /** Destroy a resampler state.
@@ -339,6 +369,12 @@
  */
 int speex_resampler_get_filt_len(SpeexResamplerState *st);
 
+/** Returns 1 if the full sinc filter table is used, 0 if the interpolated one is used
+ * @param st Resampler state
+ * @return Sinc filter mode
+ */
+int speex_resampler_get_sinc_filter_mode(SpeexResamplerState *st);
+
 /** Make sure that the first samples to go out of the resamplers don't have 
  * leading zeros. This is only useful before starting to use a newly created 
  * resampler. It is recommended to use that when resampling an audio file, as
diff --git a/gst/audioresample/speex_resampler_double.c b/gst/audioresample/speex_resampler_double.c
index ef2503d..6c5d63c 100644
--- a/gst/audioresample/speex_resampler_double.c
+++ b/gst/audioresample/speex_resampler_double.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #define _USE_SSE2
diff --git a/gst/audioresample/speex_resampler_float.c b/gst/audioresample/speex_resampler_float.c
index ef3df15..4f11197 100644
--- a/gst/audioresample/speex_resampler_float.c
+++ b/gst/audioresample/speex_resampler_float.c
@@ -13,12 +13,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #define _USE_SSE
 #define _USE_SSE2
+#define _USE_NEON
 #define FLOATING_POINT
 #define OUTSIDE_SPEEX
 #define RANDOM_PREFIX resample_float
diff --git a/gst/audioresample/speex_resampler_int.c b/gst/audioresample/speex_resampler_int.c
index 6b85860..beeb045 100644
--- a/gst/audioresample/speex_resampler_int.c
+++ b/gst/audioresample/speex_resampler_int.c
@@ -13,12 +13,14 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #define FIXED_POINT 1
 #define OUTSIDE_SPEEX 1
+/* disabled, 16-bit integer NEON support seems broken */
+/* #define _USE_NEON */
 #define RANDOM_PREFIX resample_int
 
 #include "resample.c"
diff --git a/gst/audioresample/speex_resampler_wrapper.h b/gst/audioresample/speex_resampler_wrapper.h
index 08a82bc..cd13a88 100644
--- a/gst/audioresample/speex_resampler_wrapper.h
+++ b/gst/audioresample/speex_resampler_wrapper.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __SPEEX_RESAMPLER_WRAPPER_H__
@@ -26,6 +26,9 @@
 #define SPEEX_RESAMPLER_QUALITY_VOIP 3
 #define SPEEX_RESAMPLER_QUALITY_DESKTOP 5
 
+#define SPEEX_RESAMPLER_SINC_FILTER_DEFAULT SPEEX_RESAMPLER_SINC_FILTER_AUTO
+#define SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT (1 * 1048576)
+
 enum
 {
   RESAMPLER_ERR_SUCCESS = 0,
@@ -37,11 +40,19 @@
   RESAMPLER_ERR_MAX_ERROR
 };
 
+typedef enum {
+  SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED   = 0,
+  SPEEX_RESAMPLER_SINC_FILTER_FULL           = 1,
+  SPEEX_RESAMPLER_SINC_FILTER_AUTO           = 2
+} SpeexResamplerSincFilterMode;
+
 typedef struct SpeexResamplerState_ SpeexResamplerState;
 
 typedef struct {
   SpeexResamplerState *(*init) (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality, gint * err);
+    guint32 in_rate, guint32 out_rate, gint quality,
+    SpeexResamplerSincFilterMode sinc_filter_mode,
+    guint32 sinc_filter_auto_threshold, gint * err);
   void (*destroy) (SpeexResamplerState * st);
   int (*process) (SpeexResamplerState *
     st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
@@ -53,6 +64,7 @@
     guint32 * ratio_num, guint32 * ratio_den);
   int (*get_input_latency) (SpeexResamplerState * st);
   int (*get_filt_len) (SpeexResamplerState * st);
+  int (*get_sinc_filter_mode) (SpeexResamplerState * st);
   int (*set_quality) (SpeexResamplerState * st, gint quality);
   int (*reset_mem) (SpeexResamplerState * st);
   int (*skip_zeros) (SpeexResamplerState * st);
@@ -61,7 +73,9 @@
 } SpeexResampleFuncs;
 
 SpeexResamplerState *resample_float_resampler_init (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality, gint * err);
+    guint32 in_rate, guint32 out_rate, gint quality,
+    SpeexResamplerSincFilterMode sinc_filter_mode,
+    guint32 sinc_filter_auto_threshold, gint * err);
 void resample_float_resampler_destroy (SpeexResamplerState * st);
 int resample_float_resampler_process_interleaved_float (SpeexResamplerState *
     st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
@@ -73,6 +87,7 @@
     guint32 * ratio_num, guint32 * ratio_den);
 int resample_float_resampler_get_input_latency (SpeexResamplerState * st);
 int resample_float_resampler_get_filt_len (SpeexResamplerState * st);
+int resample_float_resampler_get_sinc_filter_mode (SpeexResamplerState * st);
 int resample_float_resampler_set_quality (SpeexResamplerState * st, gint quality);
 int resample_float_resampler_reset_mem (SpeexResamplerState * st);
 int resample_float_resampler_skip_zeros (SpeexResamplerState * st);
@@ -88,6 +103,7 @@
   resample_float_resampler_get_ratio,
   resample_float_resampler_get_input_latency,
   resample_float_resampler_get_filt_len,
+  resample_float_resampler_get_sinc_filter_mode,
   resample_float_resampler_set_quality,
   resample_float_resampler_reset_mem,
   resample_float_resampler_skip_zeros,
@@ -96,7 +112,9 @@
 };
 
 SpeexResamplerState *resample_double_resampler_init (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality, gint * err);
+    guint32 in_rate, guint32 out_rate, gint quality,
+    SpeexResamplerSincFilterMode sinc_filter_mode,
+    guint32 sinc_filter_auto_threshold, gint * err);
 void resample_double_resampler_destroy (SpeexResamplerState * st);
 int resample_double_resampler_process_interleaved_float (SpeexResamplerState *
     st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
@@ -108,6 +126,7 @@
     guint32 * ratio_num, guint32 * ratio_den);
 int resample_double_resampler_get_input_latency (SpeexResamplerState * st);
 int resample_double_resampler_get_filt_len (SpeexResamplerState * st);
+int resample_double_resampler_get_sinc_filter_mode (SpeexResamplerState * st);
 int resample_double_resampler_set_quality (SpeexResamplerState * st, gint quality);
 int resample_double_resampler_reset_mem (SpeexResamplerState * st);
 int resample_double_resampler_skip_zeros (SpeexResamplerState * st);
@@ -123,6 +142,7 @@
   resample_double_resampler_get_ratio,
   resample_double_resampler_get_input_latency,
   resample_double_resampler_get_filt_len,
+  resample_double_resampler_get_sinc_filter_mode,
   resample_double_resampler_set_quality,
   resample_double_resampler_reset_mem,
   resample_double_resampler_skip_zeros,
@@ -131,7 +151,9 @@
 };
 
 SpeexResamplerState *resample_int_resampler_init (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality, gint * err);
+    guint32 in_rate, guint32 out_rate, gint quality,
+    SpeexResamplerSincFilterMode sinc_filter_mode,
+    guint32 sinc_filter_auto_threshold, gint * err);
 void resample_int_resampler_destroy (SpeexResamplerState * st);
 int resample_int_resampler_process_interleaved_int (SpeexResamplerState *
     st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
@@ -143,6 +165,7 @@
     guint32 * ratio_num, guint32 * ratio_den);
 int resample_int_resampler_get_input_latency (SpeexResamplerState * st);
 int resample_int_resampler_get_filt_len (SpeexResamplerState * st);
+int resample_int_resampler_get_sinc_filter_mode (SpeexResamplerState * st);
 int resample_int_resampler_set_quality (SpeexResamplerState * st, gint quality);
 int resample_int_resampler_reset_mem (SpeexResamplerState * st);
 int resample_int_resampler_skip_zeros (SpeexResamplerState * st);
@@ -158,6 +181,7 @@
   resample_int_resampler_get_ratio,
   resample_int_resampler_get_input_latency,
   resample_int_resampler_get_filt_len,
+  resample_int_resampler_get_sinc_filter_mode,
   resample_int_resampler_set_quality,
   resample_int_resampler_reset_mem,
   resample_int_resampler_skip_zeros,
diff --git a/gst/audiotestsrc/Makefile.in b/gst/audiotestsrc/Makefile.in
index 5b6b9b4..4cd0521 100644
--- a/gst/audiotestsrc/Makefile.in
+++ b/gst/audiotestsrc/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audiotestsrc
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -139,10 +165,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstaudiotestsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) \
 	$(libgstaudiotestsrc_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +194,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstaudiotestsrc_la_SOURCES)
 DIST_SOURCES = $(libgstaudiotestsrc_la_SOURCES)
 am__can_run_installinfo = \
@@ -177,6 +212,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +566,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -540,12 +593,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstaudiotestsrc.la: $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_DEPENDENCIES) $(EXTRA_libgstaudiotestsrc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstaudiotestsrc_la_LINK) -rpath $(plugindir) $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_LIBADD) $(LIBS)
 
@@ -591,26 +647,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -622,15 +667,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -639,6 +680,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -783,19 +839,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/audiotestsrc/gstaudiotestsrc.c b/gst/audiotestsrc/gstaudiotestsrc.c
index f6d5f67..9ed89da 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.c
+++ b/gst/audiotestsrc/gstaudiotestsrc.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 /**
  * SECTION:element-audiotestsrc
@@ -84,19 +84,13 @@
 #endif
 
 static GstStaticPadTemplate gst_audio_test_src_src_template =
-    GST_STATIC_PAD_TEMPLATE ("src",
+GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-raw, "
         "format = (string) " FORMAT_STR ", "
         "layout = (string) interleaved, "
-        "rate = (int) [ 1, MAX ], "
-        "channels = (int) 1; "
-        "audio/x-raw, "
-        "format = (string) " FORMAT_STR ", "
-        "layout = (string) interleaved, "
-        "rate = (int) [ 1, MAX ], "
-        "channels = (int) 2, " "channel-mask = (bitmask) 0x3")
+        "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, 2]")
     );
 
 #define gst_audio_test_src_parent_class parent_class
@@ -1055,6 +1049,7 @@
   GstAudioTestSrc *src = GST_AUDIO_TEST_SRC (basesrc);
   GstClockTime time;
   gint samplerate, bpf;
+  gint64 next_sample;
 
   GST_DEBUG_OBJECT (src, "seeking %" GST_SEGMENT_FORMAT, segment);
 
@@ -1064,21 +1059,23 @@
   samplerate = GST_AUDIO_INFO_RATE (&src->info);
   bpf = GST_AUDIO_INFO_BPF (&src->info);
 
-  /* now move to the time indicated */
-  src->next_sample = gst_util_uint64_scale_int (time, samplerate, GST_SECOND);
-  src->next_byte = src->next_sample * bpf;
+  /* now move to the time indicated, don't seek to the sample *after* the time */
+  next_sample = gst_util_uint64_scale_int (time, samplerate, GST_SECOND);
+  src->next_byte = next_sample * bpf;
   if (samplerate == 0)
     src->next_time = 0;
   else
     src->next_time =
-        gst_util_uint64_scale_int (src->next_sample, GST_SECOND, samplerate);
+        gst_util_uint64_scale_round (next_sample, GST_SECOND, samplerate);
 
   GST_DEBUG_OBJECT (src, "seeking next_sample=%" G_GINT64_FORMAT
-      " next_time=%" GST_TIME_FORMAT, src->next_sample,
+      " next_time=%" GST_TIME_FORMAT, next_sample,
       GST_TIME_ARGS (src->next_time));
 
   g_assert (src->next_time <= time);
 
+  src->next_sample = next_sample;
+
   if (!src->reverse) {
     if (GST_CLOCK_TIME_IS_VALID (segment->start)) {
       segment->time = segment->start;
@@ -1091,7 +1088,8 @@
 
   if (GST_CLOCK_TIME_IS_VALID (segment->stop)) {
     time = segment->stop;
-    src->sample_stop = gst_util_uint64_scale_int (time, samplerate, GST_SECOND);
+    src->sample_stop =
+        gst_util_uint64_scale_round (time, samplerate, GST_SECOND);
     src->check_seek_stop = TRUE;
   } else {
     src->check_seek_stop = FALSE;
@@ -1190,6 +1188,8 @@
   GST_LOG_OBJECT (src, "next_sample %" G_GINT64_FORMAT ", ts %" GST_TIME_FORMAT,
       next_sample, GST_TIME_ARGS (next_time));
 
+  gst_buffer_set_size (buffer, bytes);
+
   GST_BUFFER_OFFSET (buffer) = src->next_sample;
   GST_BUFFER_OFFSET_END (buffer) = next_sample;
   if (!src->reverse) {
diff --git a/gst/audiotestsrc/gstaudiotestsrc.h b/gst/audiotestsrc/gstaudiotestsrc.h
index ac31392..7372079 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.h
+++ b/gst/audiotestsrc/gstaudiotestsrc.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_AUDIO_TEST_SRC_H__
diff --git a/gst/encoding/Makefile.in b/gst/encoding/Makefile.in
index ddb2fca..75be872 100644
--- a/gst/encoding/Makefile.in
+++ b/gst/encoding/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -25,23 +24,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -61,15 +88,15 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak
+DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/encoding
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -148,10 +175,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstencodebin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstencodebin_la_CFLAGS) $(CFLAGS) \
 	$(libgstencodebin_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -164,20 +204,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstencodebin_la_SOURCES)
 DIST_SOURCES = $(libgstencodebin_la_SOURCES)
 am__can_run_installinfo = \
@@ -186,6 +222,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -535,6 +588,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -561,12 +615,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstencodebin.la: $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_DEPENDENCIES) $(EXTRA_libgstencodebin_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstencodebin_la_LINK) -rpath $(plugindir) $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_LIBADD) $(LIBS)
 
@@ -636,26 +693,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -667,15 +713,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -684,6 +726,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -828,19 +885,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # these are all the rules generating the relevant files
diff --git a/gst/encoding/gstencodebin.c b/gst/encoding/gstencodebin.c
index 06479eb..b567fc2 100644
--- a/gst/encoding/gstencodebin.c
+++ b/gst/encoding/gstencodebin.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -199,6 +199,8 @@
 
   /* Action Signals */
   GstPad *(*request_pad) (GstEncodeBin * encodebin, GstCaps * caps);
+  GstPad *(*request_profile_pad) (GstEncodeBin * encodebin,
+      const gchar * profilename);
 };
 
 typedef struct _StreamGroup StreamGroup;
@@ -254,6 +256,7 @@
 enum
 {
   SIGNAL_REQUEST_PAD,
+  SIGNAL_REQUEST_PROFILE_PAD,
   LAST_SIGNAL
 };
 
@@ -314,6 +317,8 @@
 static void stream_group_remove (GstEncodeBin * ebin, StreamGroup * sgroup);
 static GstPad *gst_encode_bin_request_pad_signal (GstEncodeBin * encodebin,
     GstCaps * caps);
+static GstPad *gst_encode_bin_request_profile_pad_signal (GstEncodeBin *
+    encodebin, const gchar * profilename);
 
 static inline GstElement *_get_formatter (GstEncodeBin * ebin,
     GstEncodingProfile * sprof);
@@ -402,7 +407,26 @@
           request_pad), NULL, NULL, g_cclosure_marshal_generic,
       GST_TYPE_PAD, 1, GST_TYPE_CAPS);
 
+  /**
+   * GstEncodeBin::request-profile-pad
+   * @encodebin: a #GstEncodeBin instance
+   * @profilename: the name of a #GstEncodingProfile
+   *
+   * Use this method to request an unused sink request #GstPad from the profile
+   * @profilename. You must release the pad with
+   * gst_element_release_request_pad() when you are done with it.
+   *
+   * Returns: A compatible #GstPad, or %NULL if no compatible #GstPad could be
+   * created or is available.
+   */
+  gst_encode_bin_signals[SIGNAL_REQUEST_PROFILE_PAD] =
+      g_signal_new ("request-profile-pad", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstEncodeBinClass,
+          request_profile_pad), NULL, NULL, g_cclosure_marshal_generic,
+      GST_TYPE_PAD, 1, G_TYPE_STRING);
+
   klass->request_pad = gst_encode_bin_request_pad_signal;
+  klass->request_profile_pad = gst_encode_bin_request_profile_pad_signal;
 
   gst_element_class_add_pad_template (gstelement_klass,
       gst_static_pad_template_get (&muxer_src_template));
@@ -494,6 +518,7 @@
   tmpl = gst_static_pad_template_get (&muxer_src_template);
   encode_bin->srcpad = gst_ghost_pad_new_no_target_from_template ("src", tmpl);
   gst_object_unref (tmpl);
+  gst_pad_set_active (encode_bin->srcpad, TRUE);
   gst_element_add_pad (GST_ELEMENT_CAST (encode_bin), encode_bin->srcpad);
 }
 
@@ -598,7 +623,8 @@
 }
 
 static inline GstEncodingProfile *
-next_unused_stream_profile (GstEncodeBin * ebin, GType ptype, GstCaps * caps)
+next_unused_stream_profile (GstEncodeBin * ebin, GType ptype,
+    const gchar * name, GstCaps * caps)
 {
   GST_DEBUG_OBJECT (ebin, "ptype:%s, caps:%" GST_PTR_FORMAT,
       g_type_name (ptype), caps);
@@ -618,6 +644,32 @@
   if (GST_IS_ENCODING_CONTAINER_PROFILE (ebin->profile)) {
     const GList *tmp;
 
+    if (name) {
+      /* If we have a name, try to find a profile with the same name */
+      tmp =
+          gst_encoding_container_profile_get_profiles
+          (GST_ENCODING_CONTAINER_PROFILE (ebin->profile));
+
+      for (; tmp; tmp = tmp->next) {
+        GstEncodingProfile *sprof = (GstEncodingProfile *) tmp->data;
+        const gchar *profilename = gst_encoding_profile_get_name (sprof);
+
+        if (profilename && !strcmp (name, profilename)) {
+          guint presence = gst_encoding_profile_get_presence (sprof);
+          GST_DEBUG ("Found profile matching the requested name");
+
+          if (presence == 0
+              || presence > stream_profile_used_count (ebin, sprof))
+            return sprof;
+
+          GST_WARNING ("Matching stream already used");
+          return NULL;
+        }
+      }
+      GST_DEBUG
+          ("No profiles matching requested pad name, carrying on with normal stream matching");
+    }
+
     for (tmp =
         gst_encoding_container_profile_get_profiles
         (GST_ENCODING_CONTAINER_PROFILE (ebin->profile)); tmp;
@@ -625,16 +677,16 @@
       GstEncodingProfile *sprof = (GstEncodingProfile *) tmp->data;
 
       /* Pick an available Stream profile for which:
-       * * either it is of the compatibly raw type,
+       * * either it is of the compatible raw type,
        * * OR we can pass it through directly without encoding
        */
       if (G_TYPE_FROM_INSTANCE (sprof) == ptype) {
         guint presence = gst_encoding_profile_get_presence (sprof);
         GST_DEBUG ("Found a stream profile with the same type");
-        if ((presence == 0)
+        if (presence == 0
             || (presence > stream_profile_used_count (ebin, sprof)))
           return sprof;
-      } else if ((caps != NULL) && (ptype == G_TYPE_NONE)) {
+      } else if (caps && ptype == G_TYPE_NONE) {
         GstCaps *outcaps;
         gboolean res;
 
@@ -664,7 +716,7 @@
 
   /* Figure out if we have a unused GstEncodingProfile we can use for
    * these caps */
-  sprof = next_unused_stream_profile (encodebin, ptype, caps);
+  sprof = next_unused_stream_profile (encodebin, ptype, name, caps);
 
   if (G_UNLIKELY (sprof == NULL))
     goto no_stream_profile;
@@ -697,8 +749,8 @@
 
   GST_DEBUG_OBJECT (element, "templ:%s, name:%s", templ->name_template, name);
 
-  /* Identify the stream group */
-  if (caps != NULL) {
+  /* Identify the stream group (if name or caps have been provided) */
+  if (caps != NULL || name != NULL) {
     res = request_pad_for_stream (ebin, G_TYPE_NONE, name, (GstCaps *) caps);
   }
 
@@ -731,6 +783,16 @@
   return pad ? GST_PAD_CAST (gst_object_ref (pad)) : NULL;
 }
 
+static GstPad *
+gst_encode_bin_request_profile_pad_signal (GstEncodeBin * encodebin,
+    const gchar * profilename)
+{
+  GstPad *pad =
+      request_pad_for_stream (encodebin, G_TYPE_NONE, profilename, NULL);
+
+  return pad ? GST_PAD_CAST (gst_object_ref (pad)) : NULL;
+}
+
 static inline StreamGroup *
 find_stream_group_from_pad (GstEncodeBin * ebin, GstPad * pad)
 {
@@ -817,19 +879,34 @@
 
 static GstElement *
 _create_element_and_set_preset (GstElementFactory * factory,
-    const gchar * preset, const gchar * name)
+    const gchar * preset, const gchar * name, const gchar * preset_name)
 {
   GstElement *res = NULL;
 
-  GST_DEBUG ("Creating element from factory %s", GST_OBJECT_NAME (factory));
+  GST_DEBUG ("Creating element from factory %s (preset factory name: %s"
+      " preset name: %s)", GST_OBJECT_NAME (factory), preset, preset_name);
+
   res = gst_element_factory_create (factory, name);
-  if (preset && GST_IS_PRESET (res) &&
-      !gst_preset_load_preset (GST_PRESET (res), preset)) {
-    GST_WARNING ("Couldn't set preset [%s] on element [%s]",
-        preset, GST_OBJECT_NAME (factory));
+
+  if (preset && GST_IS_PRESET (res)) {
+    if (preset_name == NULL ||
+        g_strcmp0 (GST_OBJECT_NAME (factory), preset_name) == 0) {
+
+      if (!gst_preset_load_preset (GST_PRESET (res), preset)) {
+        GST_WARNING ("Couldn't set preset [%s] on element [%s]",
+            preset, GST_OBJECT_NAME (factory));
+        gst_object_unref (res);
+        res = NULL;
+      }
+    } else {
+      GST_DEBUG ("Using a preset with no preset name, making use of the"
+          " proper element without setting any property");
+    }
+  } else if (preset_name && g_strcmp0 (GST_OBJECT_NAME (factory), preset_name)) {
     gst_object_unref (res);
     res = NULL;
   }
+  /* Else we keep it */
 
   return res;
 }
@@ -842,10 +919,11 @@
   GstElement *encoder = NULL;
   GstElementFactory *encoderfact = NULL;
   GstCaps *format;
-  const gchar *preset;
+  const gchar *preset, *preset_name;
 
   format = gst_encoding_profile_get_format (sprof);
   preset = gst_encoding_profile_get_preset (sprof);
+  preset_name = gst_encoding_profile_get_preset_name (sprof);
 
   GST_DEBUG ("Getting list of encoders for format %" GST_PTR_FORMAT, format);
 
@@ -867,7 +945,8 @@
 
   for (tmp = encoders; tmp; tmp = tmp->next) {
     encoderfact = (GstElementFactory *) tmp->data;
-    if ((encoder = _create_element_and_set_preset (encoderfact, preset, NULL)))
+    if ((encoder = _create_element_and_set_preset (encoderfact, preset,
+                NULL, preset_name)))
       break;
   }
 
@@ -1524,10 +1603,11 @@
   GstElement *formatter = NULL;
   GstElementFactory *formatterfact = NULL;
   GstCaps *format;
-  const gchar *preset;
+  const gchar *preset, *preset_name;
 
   format = gst_encoding_profile_get_format (sprof);
   preset = gst_encoding_profile_get_preset (sprof);
+  preset_name = gst_encoding_profile_get_preset_name (sprof);
 
   GST_DEBUG ("Getting list of formatters for format %" GST_PTR_FORMAT, format);
 
@@ -1546,7 +1626,8 @@
         GST_OBJECT_NAME (formatterfact));
 
     if ((formatter =
-            _create_element_and_set_preset (formatterfact, preset, NULL)))
+            _create_element_and_set_preset (formatterfact, preset,
+                NULL, preset_name)))
       break;
   }
 
@@ -1591,10 +1672,11 @@
   GstElementFactory *muxerfact = NULL;
   const GList *tmp;
   GstCaps *format;
-  const gchar *preset;
+  const gchar *preset, *preset_name;
 
   format = gst_encoding_profile_get_format (ebin->profile);
   preset = gst_encoding_profile_get_preset (ebin->profile);
+  preset_name = gst_encoding_profile_get_preset_name (ebin->profile);
 
   GST_DEBUG ("Getting list of muxers for format %" GST_PTR_FORMAT, format);
 
@@ -1645,7 +1727,8 @@
     /* Only use a muxer than can use all streams and than can accept the
      * preset (which may be present or not) */
     if (cansinkstreams && (muxer =
-            _create_element_and_set_preset (muxerfact, preset, "muxer")))
+            _create_element_and_set_preset (muxerfact, preset, "muxer",
+                preset_name)))
       break;
   }
 
@@ -1941,12 +2024,12 @@
 
   g_return_val_if_fail (ebin->profile == NULL, FALSE);
 
-  GST_DEBUG ("Setting up profile %s (type:%s)",
+  GST_DEBUG ("Setting up profile %p:%s (type:%s)", profile,
       gst_encoding_profile_get_name (profile),
       gst_encoding_profile_get_type_nick (profile));
 
   ebin->profile = profile;
-  gst_mini_object_ref ((GstMiniObject *) ebin->profile);
+  gst_object_ref (ebin->profile);
 
   /* Create elements */
   res = create_elements_and_pads (ebin);
@@ -1961,7 +2044,7 @@
 {
   g_return_val_if_fail (GST_IS_ENCODING_PROFILE (profile), FALSE);
 
-  GST_DEBUG_OBJECT (ebin, "profile : %s",
+  GST_DEBUG_OBJECT (ebin, "profile (%p) : %s", profile,
       gst_encoding_profile_get_name (profile));
 
   if (G_UNLIKELY (ebin->active)) {
diff --git a/gst/encoding/gstencodebin.h b/gst/encoding/gstencodebin.h
index 58383d6..021e690 100644
--- a/gst/encoding/gstencodebin.h
+++ b/gst/encoding/gstencodebin.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_ENCODEBIN_H__
diff --git a/gst/encoding/gstsmartencoder.c b/gst/encoding/gstsmartencoder.c
index 88efa65..9960204 100644
--- a/gst/encoding/gstsmartencoder.c
+++ b/gst/encoding/gstsmartencoder.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO:
diff --git a/gst/encoding/gstsmartencoder.h b/gst/encoding/gstsmartencoder.h
index 1536626..52b65f6 100644
--- a/gst/encoding/gstsmartencoder.h
+++ b/gst/encoding/gstsmartencoder.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifndef __SMART_ENCODER_H__
 #define __SMART_ENCODER_H__
diff --git a/gst/encoding/gststreamcombiner.c b/gst/encoding/gststreamcombiner.c
index 68dee8b..2eb73c2 100644
--- a/gst/encoding/gststreamcombiner.c
+++ b/gst/encoding/gststreamcombiner.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/encoding/gststreamcombiner.h b/gst/encoding/gststreamcombiner.h
index 246d935..6e84602 100644
--- a/gst/encoding/gststreamcombiner.h
+++ b/gst/encoding/gststreamcombiner.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_STREAMCOMBINER_H__
diff --git a/gst/encoding/gststreamsplitter.c b/gst/encoding/gststreamsplitter.c
index 857f28a..ad8b161 100644
--- a/gst/encoding/gststreamsplitter.c
+++ b/gst/encoding/gststreamsplitter.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/encoding/gststreamsplitter.h b/gst/encoding/gststreamsplitter.h
index 8fa1dea..9f1f2b7 100644
--- a/gst/encoding/gststreamsplitter.h
+++ b/gst/encoding/gststreamsplitter.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_STREAMSPLITTER_H__
diff --git a/gst/gio/Makefile.in b/gst/gio/Makefile.in
index 33d714b..5664519 100644
--- a/gst/gio/Makefile.in
+++ b/gst/gio/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,23 +18,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,14 +83,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/gio
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -143,10 +169,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstgio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstgio_la_CFLAGS) $(CFLAGS) \
 	$(libgstgio_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -159,20 +198,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstgio_la_SOURCES)
 DIST_SOURCES = $(libgstgio_la_SOURCES)
 am__can_run_installinfo = \
@@ -181,6 +216,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -535,6 +587,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -561,12 +614,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstgio.la: $(libgstgio_la_OBJECTS) $(libgstgio_la_DEPENDENCIES) $(EXTRA_libgstgio_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstgio_la_LINK) -rpath $(plugindir) $(libgstgio_la_OBJECTS) $(libgstgio_la_LIBADD) $(LIBS)
 
@@ -660,26 +716,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -691,15 +736,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -708,6 +749,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -852,19 +908,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst/gio/gstgio.c b/gst/gio/gstgio.c
index f10d4a4..9f2f2ba 100644
--- a/gst/gio/gstgio.c
+++ b/gst/gio/gstgio.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -102,7 +102,11 @@
   gint i, j;
 
   schemes = g_vfs_get_supported_uri_schemes (g_vfs_get_default ());
-  num = g_strv_length ((gchar **) schemes);
+
+  if (schemes != NULL)
+    num = g_strv_length ((gchar **) schemes);
+  else
+    num = 0;
 
   if (num == 0) {
     GST_WARNING ("No GIO supported URI schemes found");
diff --git a/gst/gio/gstgio.h b/gst/gio/gstgio.h
index 01183e1..eb4ce22 100644
--- a/gst/gio/gstgio.h
+++ b/gst/gio/gstgio.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_H__
diff --git a/gst/gio/gstgiobasesink.c b/gst/gio/gstgiobasesink.c
index 606d3fc..71e67f2 100644
--- a/gst/gio/gstgiobasesink.c
+++ b/gst/gio/gstgiobasesink.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/gio/gstgiobasesink.h b/gst/gio/gstgiobasesink.h
index 7f13a85..675490d 100644
--- a/gst/gio/gstgiobasesink.h
+++ b/gst/gio/gstgiobasesink.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_BASE_SINK_H__
diff --git a/gst/gio/gstgiobasesrc.c b/gst/gio/gstgiobasesrc.c
index 9fd3b7c..0170664 100644
--- a/gst/gio/gstgiobasesrc.c
+++ b/gst/gio/gstgiobasesrc.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/gio/gstgiobasesrc.h b/gst/gio/gstgiobasesrc.h
index 7a14859..a0f5598 100644
--- a/gst/gio/gstgiobasesrc.h
+++ b/gst/gio/gstgiobasesrc.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_BASE_SRC_H__
diff --git a/gst/gio/gstgiosink.c b/gst/gio/gstgiosink.c
index 74c78a1..66919cb 100644
--- a/gst/gio/gstgiosink.c
+++ b/gst/gio/gstgiosink.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gio/gstgiosink.h b/gst/gio/gstgiosink.h
index 494d5db..c4520db 100644
--- a/gst/gio/gstgiosink.h
+++ b/gst/gio/gstgiosink.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_SINK_H__
diff --git a/gst/gio/gstgiosrc.c b/gst/gio/gstgiosrc.c
index 93f8ecb..d0a24d9 100644
--- a/gst/gio/gstgiosrc.c
+++ b/gst/gio/gstgiosrc.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gio/gstgiosrc.h b/gst/gio/gstgiosrc.h
index 080d3d8..97f351d 100644
--- a/gst/gio/gstgiosrc.h
+++ b/gst/gio/gstgiosrc.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_SRC_H__
diff --git a/gst/gio/gstgiostreamsink.c b/gst/gio/gstgiostreamsink.c
index b0e8e10..5e5f620 100644
--- a/gst/gio/gstgiostreamsink.c
+++ b/gst/gio/gstgiostreamsink.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gio/gstgiostreamsink.h b/gst/gio/gstgiostreamsink.h
index 5e6206b..3bddc45 100644
--- a/gst/gio/gstgiostreamsink.h
+++ b/gst/gio/gstgiostreamsink.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_STREAM_SINK_H__
diff --git a/gst/gio/gstgiostreamsrc.c b/gst/gio/gstgiostreamsrc.c
index 9b93bd3..957bd06 100644
--- a/gst/gio/gstgiostreamsrc.c
+++ b/gst/gio/gstgiostreamsrc.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/gio/gstgiostreamsrc.h b/gst/gio/gstgiostreamsrc.h
index 975a277..3b95423 100644
--- a/gst/gio/gstgiostreamsrc.h
+++ b/gst/gio/gstgiostreamsrc.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_GIO_STREAM_SRC_H__
diff --git a/gst/playback/Makefile.in b/gst/playback/Makefile.in
index 2e9003c..6ce098e 100644
--- a/gst/playback/Makefile.in
+++ b/gst/playback/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/playback
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -151,10 +177,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstplayback_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstplayback_la_CFLAGS) $(CFLAGS) \
 	$(libgstplayback_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -167,20 +206,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstplayback_la_SOURCES) \
 	$(nodist_libgstplayback_la_SOURCES)
 DIST_SOURCES = $(libgstplayback_la_SOURCES)
@@ -190,6 +225,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -556,6 +608,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -582,12 +635,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstplayback.la: $(libgstplayback_la_OBJECTS) $(libgstplayback_la_DEPENDENCIES) $(EXTRA_libgstplayback_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstplayback_la_LINK) -rpath $(plugindir) $(libgstplayback_la_OBJECTS) $(libgstplayback_la_LIBADD) $(LIBS)
 
@@ -713,26 +769,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -744,15 +789,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -761,6 +802,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -909,19 +965,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index dbddeb4..2d4e930 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -3,6 +3,8 @@
  * Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
  * Copyright (C) <2011> Hewlett-Packard Development Company, L.P.
  *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
+ * Copyright (C) <2013> Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -16,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -157,15 +159,15 @@
 
   GstElement *typefind;         /* this holds the typefind object */
 
-  GMutex *expose_lock;          /* Protects exposal and removal of groups */
+  GMutex expose_lock;           /* Protects exposal and removal of groups */
   GstDecodeChain *decode_chain; /* Top level decode chain */
   guint nbpads;                 /* unique identifier for source pads */
 
-  GMutex *factories_lock;
+  GMutex factories_lock;
   guint32 factories_cookie;     /* Cookie from last time when factories was updated */
   GList *factories;             /* factories we can use for selecting elements */
 
-  GMutex *subtitle_lock;        /* Protects changes to subtitles and encoding */
+  GMutex subtitle_lock;         /* Protects changes to subtitles and encoding */
   GList *subtitles;             /* List of elements with subtitle-encoding,
                                  * protected by above mutex! */
 
@@ -174,7 +176,7 @@
 
   gboolean async_pending;       /* async-start has been emitted */
 
-  GMutex *dyn_lock;             /* lock protecting pad blocking */
+  GMutex dyn_lock;              /* lock protecting pad blocking */
   gboolean shutdown;            /* if we are shutting down */
   GList *blocked_pads;          /* pads that have set to block */
 
@@ -202,6 +204,10 @@
   /* signal fired to select from the proposed list of factories */
     GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
       GstPad * pad, GstCaps * caps, GstElementFactory * factory);
+  /* signal fired when a autoplugged element that is not linked downstream
+   * or exposed wants to query something */
+    gboolean (*autoplug_query) (GstElement * element, GstPad * pad,
+      GstQuery * query);
 
   /* fired when the last group is drained */
   void (*drained) (GstElement * element);
@@ -215,6 +221,7 @@
   SIGNAL_AUTOPLUG_FACTORIES,
   SIGNAL_AUTOPLUG_SELECT,
   SIGNAL_AUTOPLUG_SORT,
+  SIGNAL_AUTOPLUG_QUERY,
   SIGNAL_DRAINED,
   LAST_SIGNAL
 };
@@ -285,6 +292,8 @@
     GstPad * pad, GstCaps * caps, GValueArray * factories);
 static GstAutoplugSelectResult gst_decode_bin_autoplug_select (GstElement *
     element, GstPad * pad, GstCaps * caps, GstElementFactory * factory);
+static gboolean gst_decode_bin_autoplug_query (GstElement * element,
+    GstPad * pad, GstQuery * query);
 
 static void gst_decode_bin_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
@@ -306,7 +315,7 @@
     GST_LOG_OBJECT (dbin,						\
 		    "expose locking from thread %p",			\
 		    g_thread_self ());					\
-    g_mutex_lock (GST_DECODE_BIN_CAST(dbin)->expose_lock);		\
+    g_mutex_lock (&GST_DECODE_BIN_CAST(dbin)->expose_lock);		\
     GST_LOG_OBJECT (dbin,						\
 		    "expose locked from thread %p",			\
 		    g_thread_self ());					\
@@ -316,14 +325,14 @@
     GST_LOG_OBJECT (dbin,						\
 		    "expose unlocking from thread %p",			\
 		    g_thread_self ());					\
-    g_mutex_unlock (GST_DECODE_BIN_CAST(dbin)->expose_lock);		\
+    g_mutex_unlock (&GST_DECODE_BIN_CAST(dbin)->expose_lock);		\
 } G_STMT_END
 
 #define DYN_LOCK(dbin) G_STMT_START {			\
     GST_LOG_OBJECT (dbin,						\
 		    "dynlocking from thread %p",			\
 		    g_thread_self ());					\
-    g_mutex_lock (GST_DECODE_BIN_CAST(dbin)->dyn_lock);			\
+    g_mutex_lock (&GST_DECODE_BIN_CAST(dbin)->dyn_lock);			\
     GST_LOG_OBJECT (dbin,						\
 		    "dynlocked from thread %p",				\
 		    g_thread_self ());					\
@@ -333,14 +342,14 @@
     GST_LOG_OBJECT (dbin,						\
 		    "dynunlocking from thread %p",			\
 		    g_thread_self ());					\
-    g_mutex_unlock (GST_DECODE_BIN_CAST(dbin)->dyn_lock);		\
+    g_mutex_unlock (&GST_DECODE_BIN_CAST(dbin)->dyn_lock);		\
 } G_STMT_END
 
 #define SUBTITLE_LOCK(dbin) G_STMT_START {				\
     GST_LOG_OBJECT (dbin,						\
 		    "subtitle locking from thread %p",			\
 		    g_thread_self ());					\
-    g_mutex_lock (GST_DECODE_BIN_CAST(dbin)->subtitle_lock);		\
+    g_mutex_lock (&GST_DECODE_BIN_CAST(dbin)->subtitle_lock);		\
     GST_LOG_OBJECT (dbin,						\
 		    "subtitle lock from thread %p",			\
 		    g_thread_self ());					\
@@ -350,7 +359,7 @@
     GST_LOG_OBJECT (dbin,						\
 		    "subtitle unlocking from thread %p",		\
 		    g_thread_self ());					\
-    g_mutex_unlock (GST_DECODE_BIN_CAST(dbin)->subtitle_lock);		\
+    g_mutex_unlock (&GST_DECODE_BIN_CAST(dbin)->subtitle_lock);		\
 } G_STMT_END
 
 struct _GstPendingPad
@@ -358,12 +367,16 @@
   GstPad *pad;
   GstDecodeChain *chain;
   gulong event_probe_id;
+  gulong notify_caps_id;
 };
 
 struct _GstDecodeElement
 {
   GstElement *element;
   GstElement *capsfilter;       /* Optional capsfilter for Parser/Convert */
+  gulong pad_added_id;
+  gulong pad_removed_id;
+  gulong no_more_pads_id;
 };
 
 /* GstDecodeGroup
@@ -397,7 +410,7 @@
   GstDecodeGroup *parent;
   GstDecodeBin *dbin;
 
-  GMutex *lock;                 /* Protects this chain and its groups */
+  GMutex lock;                  /* Protects this chain and its groups */
 
   GstPad *pad;                  /* srcpad that caused creation of this chain */
 
@@ -419,6 +432,9 @@
                                    all new pads will be ignored! */
   GList *pending_pads;          /* Pads that have no fixed caps yet */
 
+  GstDecodePad *current_pad;    /* Current ending pad of the chain that can't
+                                 * be exposed yet but would be the same as endpad
+                                 * once it can be exposed */
   GstDecodePad *endpad;         /* Pad of this chain that could be exposed */
   gboolean deadend;             /* This chain is incomplete and can't be completed,
                                    e.g. no suitable decoder could be found
@@ -443,18 +459,21 @@
 static gboolean gst_decode_chain_expose (GstDecodeChain * chain,
     GList ** endpads, gboolean * missing_plugin);
 static gboolean gst_decode_chain_is_drained (GstDecodeChain * chain);
+static gboolean gst_decode_chain_reset_buffering (GstDecodeChain * chain);
 static gboolean gst_decode_group_is_complete (GstDecodeGroup * group);
 static GstPad *gst_decode_group_control_demuxer_pad (GstDecodeGroup * group,
     GstPad * pad);
 static gboolean gst_decode_group_is_drained (GstDecodeGroup * group);
+static gboolean gst_decode_group_reset_buffering (GstDecodeGroup * group);
 
 static gboolean gst_decode_bin_expose (GstDecodeBin * dbin);
+static void gst_decode_bin_reset_buffering (GstDecodeBin * dbin);
 
 #define CHAIN_MUTEX_LOCK(chain) G_STMT_START {				\
     GST_LOG_OBJECT (chain->dbin,					\
 		    "locking chain %p from thread %p",			\
 		    chain, g_thread_self ());				\
-    g_mutex_lock (chain->lock);						\
+    g_mutex_lock (&chain->lock);						\
     GST_LOG_OBJECT (chain->dbin,					\
 		    "locked chain %p from thread %p",			\
 		    chain, g_thread_self ());				\
@@ -464,7 +483,7 @@
     GST_LOG_OBJECT (chain->dbin,					\
 		    "unlocking chain %p from thread %p",		\
 		    chain, g_thread_self ());				\
-    g_mutex_unlock (chain->lock);					\
+    g_mutex_unlock (&chain->lock);					\
 } G_STMT_END
 
 /* GstDecodePad
@@ -489,12 +508,14 @@
 #define GST_TYPE_DECODE_PAD (gst_decode_pad_get_type ())
 #define GST_DECODE_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DECODE_PAD,GstDecodePad))
 
-static GstDecodePad *gst_decode_pad_new (GstDecodeBin * dbin, GstPad * pad,
+static GstDecodePad *gst_decode_pad_new (GstDecodeBin * dbin,
     GstDecodeChain * chain);
 static void gst_decode_pad_activate (GstDecodePad * dpad,
     GstDecodeChain * chain);
 static void gst_decode_pad_unblock (GstDecodePad * dpad);
 static void gst_decode_pad_set_blocked (GstDecodePad * dpad, gboolean blocked);
+static gboolean gst_decode_pad_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
 static void gst_pending_pad_free (GstPendingPad * ppad);
 static GstPadProbeReturn pad_event_cb (GstPad * pad, GstPadProbeInfo * info,
@@ -550,6 +571,22 @@
   return myboolean;
 }
 
+static gboolean
+_gst_boolean_or_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gboolean myboolean;
+  gboolean retboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  retboolean = g_value_get_boolean (return_accu);
+
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boolean (return_accu, myboolean || retboolean);
+
+  return TRUE;
+}
+
 /* we collect the first result */
 static gboolean
 _gst_array_accumulator (GSignalInvocationHint * ihint,
@@ -759,6 +796,28 @@
       GST_TYPE_ELEMENT_FACTORY);
 
   /**
+   * GstDecodeBin::autoplug-query:
+   * @bin: The decodebin.
+   * @child: The child element doing the query
+   * @pad: The #GstPad.
+   * @element: The #GstElement.
+   * @query: The #GstQuery.
+   *
+   * This signal is emitted whenever an autoplugged element that is
+   * not linked downstream yet and not exposed does a query. It can
+   * be used to tell the element about the downstream supported caps
+   * for example.
+   *
+   * Returns: #TRUE if the query was handled, #FALSE otherwise.
+   */
+  gst_decode_bin_signals[SIGNAL_AUTOPLUG_QUERY] =
+      g_signal_new ("autoplug-query", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstDecodeBinClass, autoplug_query),
+      _gst_boolean_or_accumulator, NULL, g_cclosure_marshal_generic,
+      G_TYPE_BOOLEAN, 3, GST_TYPE_PAD, GST_TYPE_ELEMENT,
+      GST_TYPE_QUERY | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
    * GstDecodeBin::drained
    * @bin: The decodebin
    *
@@ -913,6 +972,7 @@
       GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_factories);
   klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_sort);
   klass->autoplug_select = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_select);
+  klass->autoplug_query = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_query);
 
   gst_element_class_add_pad_template (gstelement_klass,
       gst_static_pad_template_get (&decoder_bin_sink_template));
@@ -938,7 +998,6 @@
 _decode_bin_compare_factories_func (gconstpointer p1, gconstpointer p2)
 {
   GstPluginFeature *f1, *f2;
-  gint diff;
   gboolean is_parser1, is_parser2;
 
   f1 = (GstPluginFeature *) p1;
@@ -959,13 +1018,7 @@
 
   /* And if it's a both a parser we first sort by rank
    * and then by factory name */
-  diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1);
-  if (diff != 0)
-    return diff;
-
-  diff = strcmp (GST_OBJECT_NAME (f2), GST_OBJECT_NAME (f1));
-
-  return diff;
+  return gst_plugin_feature_rank_compare_func (p1, p2);
 }
 
 /* Must be called with factories lock! */
@@ -991,7 +1044,7 @@
 gst_decode_bin_init (GstDecodeBin * decode_bin)
 {
   /* first filter out the interesting element factories */
-  decode_bin->factories_lock = g_mutex_new ();
+  g_mutex_init (&decode_bin->factories_lock);
 
   /* we create the typefind element only once */
   decode_bin->typefind = gst_element_factory_make ("typefind", "typefind");
@@ -1022,22 +1075,16 @@
 
     gst_object_unref (pad_tmpl);
     gst_object_unref (pad);
-
-    /* connect a signal to find out when the typefind element found
-     * a type */
-    decode_bin->have_type_id =
-        g_signal_connect (G_OBJECT (decode_bin->typefind), "have-type",
-        G_CALLBACK (type_found), decode_bin);
   }
 
-  decode_bin->expose_lock = g_mutex_new ();
+  g_mutex_init (&decode_bin->expose_lock);
   decode_bin->decode_chain = NULL;
 
-  decode_bin->dyn_lock = g_mutex_new ();
+  g_mutex_init (&decode_bin->dyn_lock);
   decode_bin->shutdown = FALSE;
   decode_bin->blocked_pads = NULL;
 
-  decode_bin->subtitle_lock = g_mutex_new ();
+  g_mutex_init (&decode_bin->subtitle_lock);
 
   decode_bin->encoding = g_strdup (DEFAULT_SUBTITLE_ENCODING);
   decode_bin->caps = gst_static_caps_get (&default_raw_caps);
@@ -1088,25 +1135,10 @@
 
   decode_bin = GST_DECODE_BIN (object);
 
-  if (decode_bin->expose_lock) {
-    g_mutex_free (decode_bin->expose_lock);
-    decode_bin->expose_lock = NULL;
-  }
-
-  if (decode_bin->dyn_lock) {
-    g_mutex_free (decode_bin->dyn_lock);
-    decode_bin->dyn_lock = NULL;
-  }
-
-  if (decode_bin->subtitle_lock) {
-    g_mutex_free (decode_bin->subtitle_lock);
-    decode_bin->subtitle_lock = NULL;
-  }
-
-  if (decode_bin->factories_lock) {
-    g_mutex_free (decode_bin->factories_lock);
-    decode_bin->factories_lock = NULL;
-  }
+  g_mutex_clear (&decode_bin->expose_lock);
+  g_mutex_clear (&decode_bin->dyn_lock);
+  g_mutex_clear (&decode_bin->subtitle_lock);
+  g_mutex_clear (&decode_bin->factories_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -1334,12 +1366,12 @@
   GST_DEBUG_OBJECT (element, "finding factories");
 
   /* return all compatible factories for caps */
-  g_mutex_lock (dbin->factories_lock);
+  g_mutex_lock (&dbin->factories_lock);
   gst_decode_bin_update_factories_list (dbin);
   list =
       gst_element_factory_list_filter (dbin->factories, caps, GST_PAD_SINK,
-      FALSE);
-  g_mutex_unlock (dbin->factories_lock);
+      gst_caps_is_fixed (caps));
+  g_mutex_unlock (&dbin->factories_lock);
 
   result = g_value_array_new (g_list_length (list));
   for (tmp = list; tmp; tmp = tmp->next) {
@@ -1375,6 +1407,14 @@
   return GST_AUTOPLUG_SELECT_TRY;
 }
 
+static gboolean
+gst_decode_bin_autoplug_query (GstElement * element, GstPad * pad,
+    GstQuery * query)
+{
+  /* No query handled here */
+  return FALSE;
+}
+
 /********
  * Discovery methods
  *****/
@@ -1385,7 +1425,7 @@
 static gboolean connect_pad (GstDecodeBin * dbin, GstElement * src,
     GstDecodePad * dpad, GstPad * pad, GstCaps * caps, GValueArray * factories,
     GstDecodeChain * chain);
-static gboolean connect_element (GstDecodeBin * dbin, GstElement * element,
+static gboolean connect_element (GstDecodeBin * dbin, GstDecodeElement * delem,
     GstDecodeChain * chain);
 static void expose_pad (GstDecodeBin * dbin, GstElement * src,
     GstDecodePad * dpad, GstPad * pad, GstCaps * caps, GstDecodeChain * chain);
@@ -1442,11 +1482,15 @@
     GstDecodeGroup *group;
     GstDecodeChain *oldchain = chain;
 
+    if (chain->current_pad)
+      gst_object_unref (chain->current_pad);
+    chain->current_pad = NULL;
+
     /* we are adding a new pad for a demuxer (see is_demuxer_element(),
      * start a new chain for it */
     CHAIN_MUTEX_LOCK (oldchain);
     group = gst_decode_chain_get_current_group (chain);
-    if (group) {
+    if (group && !g_list_find (group->children, chain)) {
       chain = gst_decode_chain_new (dbin, group, pad);
       group->children = g_list_prepend (group->children, chain);
     }
@@ -1463,7 +1507,11 @@
   if (gst_caps_is_any (caps))
     goto any_caps;
 
-  dpad = gst_decode_pad_new (dbin, pad, chain);
+  if (!chain->current_pad)
+    chain->current_pad = gst_decode_pad_new (dbin, chain);
+
+  dpad = gst_object_ref (chain->current_pad);
+  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (dpad), pad);
 
   /* 1. Emit 'autoplug-continue' the result will tell us if this pads needs
    * further autoplugging. Only do this for fixed caps, for unfixed caps
@@ -1512,7 +1560,7 @@
       GstCaps *raw = gst_static_caps_get (&default_raw_caps);
 
       /* If the caps are raw, this just means we don't want to expose them */
-      if (gst_caps_can_intersect (raw, caps)) {
+      if (gst_caps_is_subset (caps, raw)) {
         g_value_array_free (factories);
         gst_caps_unref (raw);
         gst_object_unref (dpad);
@@ -1685,6 +1733,7 @@
     GST_LOG_OBJECT (pad, "Known type, but discarded because not final caps");
     chain->deadend = TRUE;
     chain->endcaps = gst_caps_ref (caps);
+    gst_object_replace ((GstObject **) & chain->current_pad, NULL);
 
     /* Try to expose anything */
     EXPOSE_LOCK (dbin);
@@ -1703,6 +1752,7 @@
 
     chain->deadend = TRUE;
     chain->endcaps = gst_caps_ref (caps);
+    gst_object_replace ((GstObject **) & chain->current_pad, NULL);
 
     gst_element_post_message (GST_ELEMENT_CAST (dbin),
         gst_missing_decoder_message_new (GST_ELEMENT_CAST (dbin), caps));
@@ -1763,7 +1813,7 @@
         gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
         pad_event_cb, ppad, NULL);
     chain->pending_pads = g_list_prepend (chain->pending_pads, ppad);
-    g_signal_connect (G_OBJECT (pad), "notify::caps",
+    ppad->notify_caps_id = g_signal_connect (pad, "notify::caps",
         G_CALLBACK (caps_notify_cb), chain);
     CHAIN_MUTEX_UNLOCK (chain);
 
@@ -2012,11 +2062,22 @@
     /* Stop filtering errors. */
     remove_error_filter (dbin, element);
 
+    /* check if we still accept the caps on the pad after setting
+     * the element to READY */
+    if (!gst_pad_query_accept_caps (sinkpad, caps)) {
+      GST_WARNING_OBJECT (dbin, "Element %s does not accept caps",
+          GST_ELEMENT_NAME (element));
+      gst_element_set_state (element, GST_STATE_NULL);
+      gst_object_unref (sinkpad);
+      gst_bin_remove (GST_BIN (dbin), element);
+      continue;
+    }
+
     gst_object_unref (sinkpad);
     GST_LOG_OBJECT (dbin, "linked on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
 
     CHAIN_MUTEX_LOCK (chain);
-    delem = g_slice_new (GstDecodeElement);
+    delem = g_slice_new0 (GstDecodeElement);
     delem->element = gst_object_ref (element);
     delem->capsfilter = NULL;
     chain->elements = g_list_prepend (chain->elements, delem);
@@ -2066,7 +2127,7 @@
     }
 
     /* link this element further */
-    connect_element (dbin, element, chain);
+    connect_element (dbin, delem, chain);
 
     /* try to configure the subtitle encoding property when we can */
     pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
@@ -2103,9 +2164,12 @@
 
         /* Disconnect any signal handlers that might be connected
          * in connect_element() or analyze_pad() */
-        g_signal_handlers_disconnect_by_func (tmp, pad_added_cb, chain);
-        g_signal_handlers_disconnect_by_func (tmp, pad_removed_cb, chain);
-        g_signal_handlers_disconnect_by_func (tmp, no_more_pads_cb, chain);
+        if (dtmp->pad_added_id)
+          g_signal_handler_disconnect (tmp, dtmp->pad_added_id);
+        if (dtmp->pad_removed_id)
+          g_signal_handler_disconnect (tmp, dtmp->pad_removed_id);
+        if (dtmp->no_more_pads_id)
+          g_signal_handler_disconnect (tmp, dtmp->no_more_pads_id);
 
         for (l = chain->pending_pads; l;) {
           GstPendingPad *pp = l->data;
@@ -2116,10 +2180,7 @@
             continue;
           }
 
-          g_signal_handlers_disconnect_by_func (pp->pad, caps_notify_cb, chain);
-          gst_pad_remove_probe (pp->pad, pp->event_probe_id);
-          gst_object_unref (pp->pad);
-          g_slice_free (GstPendingPad, pp);
+          gst_pending_pad_free (pp);
 
           /* Remove element from the list, update list head and go to the
            * next element in the list */
@@ -2188,9 +2249,10 @@
 }
 
 static gboolean
-connect_element (GstDecodeBin * dbin, GstElement * element,
+connect_element (GstDecodeBin * dbin, GstDecodeElement * delem,
     GstDecodeChain * chain)
 {
+  GstElement *element = delem->element;
   GList *pads;
   gboolean res = TRUE;
   gboolean dynamic = FALSE;
@@ -2262,11 +2324,11 @@
   if (dynamic) {
     GST_LOG_OBJECT (dbin, "Adding signals to element %s in chain %p",
         GST_ELEMENT_NAME (element), chain);
-    g_signal_connect (G_OBJECT (element), "pad-added",
+    delem->pad_added_id = g_signal_connect (element, "pad-added",
         G_CALLBACK (pad_added_cb), chain);
-    g_signal_connect (G_OBJECT (element), "pad-removed",
+    delem->pad_removed_id = g_signal_connect (element, "pad-removed",
         G_CALLBACK (pad_removed_cb), chain);
-    g_signal_connect (G_OBJECT (element), "no-more-pads",
+    delem->no_more_pads_id = g_signal_connect (element, "no-more-pads",
         G_CALLBACK (no_more_pads_cb), chain);
   }
 
@@ -2432,6 +2494,7 @@
       GST_DEBUG_OBJECT (dbin, "Received EOS on a non final pad, this stream "
           "ended too early");
       chain->deadend = TRUE;
+      gst_object_replace ((GstObject **) & chain->current_pad, NULL);
       /* we don't set the endcaps because NULL endcaps means early EOS */
       EXPOSE_LOCK (dbin);
       if (gst_decode_chain_is_complete (dbin->decode_chain))
@@ -2484,7 +2547,6 @@
     GstPad *opad = ppad->pad;
 
     if (pad == opad) {
-      g_signal_handlers_disconnect_by_func (pad, caps_notify_cb, chain);
       gst_pending_pad_free (ppad);
       chain->pending_pads = g_list_delete_link (chain->pending_pads, l);
       break;
@@ -2518,7 +2580,12 @@
   if (!chain->next_groups && chain->active_group) {
     group = chain->active_group;
   } else if (chain->next_groups) {
-    group = chain->next_groups->data;
+    GList *iter;
+    for (iter = chain->next_groups; iter; iter = g_list_next (iter)) {
+      group = iter->data;
+      if (!group->no_more_pads)
+        break;
+    }
   }
   if (!group) {
     GST_ERROR_OBJECT (chain->dbin, "can't find group for element");
@@ -2554,8 +2621,6 @@
 
   /* Disconnect this; if we still need it, we'll reconnect to this in
    * analyze_new_pad */
-  g_signal_handlers_disconnect_by_func (pad, caps_notify_cb, chain);
-
   element = GST_ELEMENT_CAST (gst_pad_get_parent (pad));
 
   CHAIN_MUTEX_LOCK (chain);
@@ -2639,7 +2704,7 @@
 
   /* lock for getting the caps */
   GST_OBJECT_LOCK (dbin);
-  res = gst_caps_can_intersect (dbin->caps, caps);
+  res = gst_caps_is_subset (caps, dbin->caps);
   GST_OBJECT_UNLOCK (dbin);
 
   GST_LOG_OBJECT (dbin, "Caps are %sfinal caps", res ? "" : "not ");
@@ -2647,10 +2712,42 @@
   return res;
 }
 
+/* gst_decode_bin_reset_buffering:
+ *
+ * Enables buffering on the last multiqueue of each group only,
+ * disabling the rest
+ *
+ */
+static void
+gst_decode_bin_reset_buffering (GstDecodeBin * dbin)
+{
+  if (!dbin->use_buffering)
+    return;
+
+  GST_DEBUG_OBJECT (dbin, "Reseting multiqueues buffering");
+  CHAIN_MUTEX_LOCK (dbin->decode_chain);
+  gst_decode_chain_reset_buffering (dbin->decode_chain);
+  CHAIN_MUTEX_UNLOCK (dbin->decode_chain);
+}
+
 /****
  * GstDecodeChain functions
  ****/
 
+static gboolean
+gst_decode_chain_reset_buffering (GstDecodeChain * chain)
+{
+  GstDecodeGroup *group;
+
+  group = chain->active_group;
+  GST_LOG_OBJECT (chain->dbin, "Resetting chain %p buffering, active group: %p",
+      chain, group);
+  if (group) {
+    return gst_decode_group_reset_buffering (group);
+  }
+  return FALSE;
+}
+
 /* gst_decode_chain_get_current_group:
  *
  * Returns the current group of this chain, to which
@@ -2687,12 +2784,21 @@
   } else if (!chain->active_group->overrun
       && !chain->active_group->no_more_pads) {
     group = chain->active_group;
-  } else if (chain->next_groups && (group = chain->next_groups->data)
-      && !group->overrun && !group->no_more_pads) {
-    /* group = chain->next_groups->data */
   } else {
+    GList *iter;
+    group = NULL;
+    for (iter = chain->next_groups; iter; iter = g_list_next (iter)) {
+      GstDecodeGroup *next_group = iter->data;
+
+      if (!next_group->overrun && !next_group->no_more_pads) {
+        group = next_group;
+        break;
+      }
+    }
+  }
+  if (!group) {
     group = gst_decode_group_new (chain->dbin, chain);
-    chain->next_groups = g_list_prepend (chain->next_groups, group);
+    chain->next_groups = g_list_append (chain->next_groups, group);
   }
 
   return group;
@@ -2739,9 +2845,6 @@
 
   for (l = chain->pending_pads; l; l = l->next) {
     GstPendingPad *ppad = l->data;
-    GstPad *pad = ppad->pad;
-
-    g_signal_handlers_disconnect_by_func (pad, caps_notify_cb, chain);
     gst_pending_pad_free (ppad);
     l->data = NULL;
   }
@@ -2752,9 +2855,15 @@
     GstDecodeElement *delem = l->data;
     GstElement *element = delem->element;
 
-    g_signal_handlers_disconnect_by_func (element, pad_added_cb, chain);
-    g_signal_handlers_disconnect_by_func (element, pad_removed_cb, chain);
-    g_signal_handlers_disconnect_by_func (element, no_more_pads_cb, chain);
+    if (delem->pad_added_id)
+      g_signal_handler_disconnect (element, delem->pad_added_id);
+    delem->pad_added_id = 0;
+    if (delem->pad_removed_id)
+      g_signal_handler_disconnect (element, delem->pad_removed_id);
+    delem->pad_removed_id = 0;
+    if (delem->no_more_pads_id)
+      g_signal_handler_disconnect (element, delem->no_more_pads_id);
+    delem->no_more_pads_id = 0;
 
     if (delem->capsfilter) {
       if (GST_OBJECT_PARENT (delem->capsfilter) ==
@@ -2807,6 +2916,11 @@
     }
   }
 
+  if (!hide && chain->current_pad) {
+    gst_object_unref (chain->current_pad);
+    chain->current_pad = NULL;
+  }
+
   if (chain->pad) {
     gst_object_unref (chain->pad);
     chain->pad = NULL;
@@ -2821,7 +2935,7 @@
       chain);
   CHAIN_MUTEX_UNLOCK (chain);
   if (!hide) {
-    g_mutex_free (chain->lock);
+    g_mutex_clear (&chain->lock);
     g_slice_free (GstDecodeChain, chain);
   }
 }
@@ -2858,7 +2972,7 @@
 
   chain->dbin = dbin;
   chain->parent = parent;
-  chain->lock = g_mutex_new ();
+  g_mutex_init (&chain->lock);
   chain->pad = gst_object_ref (pad);
 
   return chain;
@@ -2999,8 +3113,14 @@
 {
   guint max_bytes, max_buffers;
   guint64 max_time;
+  gboolean use_buffering;
 
-  if (preroll || dbin->use_buffering) {
+  /* get the current config from the multiqueue */
+  g_object_get (multiqueue, "use-buffering", &use_buffering, NULL);
+
+  GST_DEBUG_OBJECT (multiqueue, "use buffering %d", use_buffering);
+
+  if (preroll || use_buffering) {
     /* takes queue limits, initially we only queue up up to the max bytes limit,
      * with a default of 2MB. we use the same values for buffering mode. */
     if ((max_bytes = dbin->max_size_bytes) == 0)
@@ -3013,14 +3133,21 @@
   } else {
     /* update runtime limits. At runtime, we try to keep the amount of buffers
      * in the queues as low as possible (but at least 5 buffers). */
-    if ((max_bytes = dbin->max_size_bytes) == 0)
+    if (dbin->use_buffering)
+      max_bytes = 0;
+    else if ((max_bytes = dbin->max_size_bytes) == 0)
       max_bytes = AUTO_PLAY_SIZE_BYTES;
     if ((max_buffers = dbin->max_size_buffers) == 0)
       max_buffers = AUTO_PLAY_SIZE_BUFFERS;
-    if ((max_time = dbin->max_size_time) == 0)
+    /* this is a multiqueue with disabled buffering, don't limit max_time */
+    if (dbin->use_buffering)
+      max_time = 0;
+    else if ((max_time = dbin->max_size_time) == 0)
       max_time = AUTO_PLAY_SIZE_TIME;
   }
 
+  GST_DEBUG_OBJECT (multiqueue, "setting limits %u bytes, %u buffers, "
+      "%" G_GUINT64_FORMAT, max_bytes, max_buffers, max_time);
   g_object_set (multiqueue,
       "max-size-bytes", max_bytes, "max-size-time", max_time,
       "max-size-buffers", max_buffers, NULL);
@@ -3071,7 +3198,7 @@
   }
   decodebin_set_queue_size (dbin, mq, TRUE, seekable);
 
-  group->overrunsig = g_signal_connect (G_OBJECT (mq), "overrun",
+  group->overrunsig = g_signal_connect (mq, "overrun",
       G_CALLBACK (multi_queue_overrun_cb), group);
 
   gst_element_set_state (mq, GST_STATE_PAUSED);
@@ -3139,7 +3266,8 @@
   CHAIN_MUTEX_UNLOCK (group->parent);
 
 beach:
-  g_value_unset (&item);
+  if (G_IS_VALUE (&item))
+    g_value_unset (&item);
   if (it)
     gst_iterator_free (it);
   gst_object_unref (sinkpad);
@@ -3197,6 +3325,9 @@
   gboolean complete = FALSE;
 
   CHAIN_MUTEX_LOCK (chain);
+  if (chain->dbin->shutdown)
+    goto out;
+
   if (chain->deadend) {
     complete = TRUE;
     goto out;
@@ -3292,7 +3423,7 @@
   if (G_UNLIKELY (chain->drained)) {
     goto beach;
   }
-  
+
   if (chain->endpad) {
     /* Check if we're reached the target endchain */
     if (chain == drainpad->chain) {
@@ -3333,9 +3464,12 @@
       } else {
         GST_DEBUG ("Group %p was the last in chain %p", chain->active_group,
             chain);
-        chain->drained = TRUE;	
+        chain->drained = TRUE;
         /* We're drained ! */
       }
+    } else {
+      if (subdrained && !chain->next_groups)
+        *drained = TRUE;
     }
   }
 
@@ -3450,6 +3584,38 @@
   return drained;
 }
 
+static gboolean
+gst_decode_group_reset_buffering (GstDecodeGroup * group)
+{
+  GList *l;
+  gboolean ret = TRUE;
+
+  GST_DEBUG_OBJECT (group->dbin, "Group reset buffering %p %s", group,
+      GST_ELEMENT_NAME (group->multiqueue));
+  for (l = group->children; l; l = l->next) {
+    GstDecodeChain *chain = l->data;
+
+    CHAIN_MUTEX_LOCK (chain);
+    if (!gst_decode_chain_reset_buffering (chain)) {
+      ret = FALSE;
+    }
+    CHAIN_MUTEX_UNLOCK (chain);
+  }
+
+  if (ret) {
+    /* all chains are buffering already, no need to do it here */
+    g_object_set (group->multiqueue, "use-buffering", FALSE, NULL);
+  } else {
+    g_object_set (group->multiqueue, "use-buffering", TRUE, NULL);
+  }
+  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE, FALSE);
+
+  GST_DEBUG_OBJECT (group->dbin, "Setting %s buffering to %d",
+      GST_ELEMENT_NAME (group->multiqueue), !ret);
+  return TRUE;
+}
+
+
 /* sort_end_pads:
  * GCompareFunc to use with lists of GstPad.
  * Sorts pads by mime type.
@@ -3465,6 +3631,8 @@
   GstCaps *capsa, *capsb;
   GstStructure *sa, *sb;
   const gchar *namea, *nameb;
+  gchar *ida, *idb;
+  gint ret;
 
   capsa = get_pad_caps (GST_PAD_CAST (da));
   capsb = get_pad_caps (GST_PAD_CAST (db));
@@ -3500,7 +3668,17 @@
   gst_caps_unref (capsa);
   gst_caps_unref (capsb);
 
-  return va - vb;
+  if (va != vb)
+    return va - vb;
+
+  /* if otherwise the same, sort by stream-id */
+  ida = gst_pad_get_stream_id (GST_PAD_CAST (da));
+  idb = gst_pad_get_stream_id (GST_PAD_CAST (db));
+  ret = (ida) ? ((idb) ? strcmp (ida, idb) : -1) : 1;
+  g_free (ida);
+  g_free (idb);
+
+  return ret;
 }
 
 static GstCaps *
@@ -3675,6 +3853,14 @@
   gst_element_post_message (GST_ELEMENT (dbin), msg);
 }
 
+static gboolean
+debug_sticky_event (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  GST_DEBUG_OBJECT (pad, "sticky event %s", GST_EVENT_TYPE_NAME (*event));
+  return TRUE;
+}
+
+
 /* Must only be called if the toplevel chain is complete and blocked! */
 /* Not MT-safe, call with decodebin expose lock! */
 static gboolean
@@ -3733,6 +3919,9 @@
     return TRUE;
   }
 
+  /* going to expose something, reset buffering */
+  gst_decode_bin_reset_buffering (dbin);
+
   /* Set all already exposed pads to blocked */
   for (tmp = endpads; tmp; tmp = tmp->next) {
     GstDecodePad *dpad = tmp->data;
@@ -3759,14 +3948,19 @@
     gst_object_set_name (GST_OBJECT (dpad), padname);
     g_free (padname);
 
+    gst_pad_sticky_events_foreach (GST_PAD_CAST (dpad), debug_sticky_event,
+        dpad);
+
     /* 2. activate and add */
-    if (!dpad->exposed
-        && !gst_element_add_pad (GST_ELEMENT (dbin), GST_PAD_CAST (dpad))) {
-      /* not really fatal, we can try to add the other pads */
-      g_warning ("error adding pad to decodebin");
-      continue;
+    if (!dpad->exposed) {
+      dpad->exposed = TRUE;
+      if (!gst_element_add_pad (GST_ELEMENT (dbin), GST_PAD_CAST (dpad))) {
+        /* not really fatal, we can try to add the other pads */
+        g_warning ("error adding pad to decodebin");
+        dpad->exposed = FALSE;
+        continue;
+      }
     }
-    dpad->exposed = TRUE;
 
     /* 3. emit signal */
     GST_INFO_OBJECT (dpad, "added new decoded pad");
@@ -3883,16 +4077,52 @@
   GstDecodePad *dpad = user_data;
   GstDecodeChain *chain;
   GstDecodeBin *dbin;
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
 
   if (GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) {
-    GST_LOG_OBJECT (pad, "Seeing event '%s'",
-        GST_EVENT_TYPE_NAME (GST_PAD_PROBE_INFO_EVENT (info)));
-    if ((GST_EVENT_TYPE (GST_PAD_PROBE_INFO_EVENT (info)) != GST_EVENT_CAPS)
-        && (GST_EVENT_IS_STICKY (GST_PAD_PROBE_INFO_EVENT (info))
-            || !GST_EVENT_IS_SERIALIZED (GST_PAD_PROBE_INFO_EVENT (info)))) {
+    GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+
+    GST_LOG_OBJECT (pad, "Seeing event '%s'", GST_EVENT_TYPE_NAME (event));
+
+    if (!GST_EVENT_IS_SERIALIZED (event)) {
       /* do not block on sticky or out of band events otherwise the allocation query
          from demuxer might block the loop thread */
-      GST_LOG_OBJECT (pad, "Letting event through");
+      GST_LOG_OBJECT (pad, "Letting OOB event through");
+      return GST_PAD_PROBE_PASS;
+    }
+
+    if (GST_EVENT_IS_STICKY (event) && GST_EVENT_TYPE (event) != GST_EVENT_EOS) {
+      /* manually push sticky events to ghost pad to avoid exposing pads
+       * that don't have the sticky events. Handle EOS separately as we
+       * want to block the pad on it if we didn't get any buffers before
+       * EOS and expose the pad then. */
+      gst_pad_push_event (GST_PAD_CAST (dpad), gst_event_ref (event));
+
+      /* let the sticky events pass */
+      ret = GST_PAD_PROBE_PASS;
+
+      /* we only want to try to expose on CAPS events */
+      if (GST_EVENT_TYPE (event) != GST_EVENT_CAPS) {
+        GST_LOG_OBJECT (pad, "Letting sticky non-CAPS event through");
+        goto done;
+      }
+    }
+  } else if (GST_PAD_PROBE_INFO_TYPE (info) &
+      GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM) {
+    GstQuery *query = GST_PAD_PROBE_INFO_QUERY (info);
+
+    if (!GST_QUERY_IS_SERIALIZED (query)) {
+      /* do not block on non-serialized queries */
+      GST_LOG_OBJECT (pad, "Letting non-serialized query through");
+      return GST_PAD_PROBE_PASS;
+    }
+    if (!gst_pad_has_current_caps (pad)) {
+      /* do not block on allocation queries before we have caps,
+       * this would deadlock because we are doing no autoplugging
+       * without caps.
+       * TODO: Try to do autoplugging based on the query caps
+       */
+      GST_LOG_OBJECT (pad, "Letting serialized query before caps through");
       return GST_PAD_PROBE_PASS;
     }
   }
@@ -3910,12 +4140,8 @@
   }
   EXPOSE_UNLOCK (dbin);
 
-  /* If we unblocked due to a caps event, let it go through */
-  if ((GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) &&
-      (GST_EVENT_TYPE (GST_PAD_PROBE_INFO_EVENT (info)) == GST_EVENT_CAPS))
-    return GST_PAD_PROBE_PASS;
-
-  return GST_PAD_PROBE_OK;
+done:
+  return ret;
 }
 
 static GstPadProbeReturn
@@ -3966,9 +4192,10 @@
     if (blocked) {
       if (dpad->block_id == 0)
         dpad->block_id =
-            gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
-            source_pad_blocked_cb, gst_object_ref (dpad),
-            (GDestroyNotify) gst_object_unref);
+            gst_pad_add_probe (opad,
+            GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM |
+            GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM, source_pad_blocked_cb,
+            gst_object_ref (dpad), (GDestroyNotify) gst_object_unref);
     } else {
       if (dpad->block_id != 0) {
         gst_pad_remove_probe (opad, dpad->block_id);
@@ -4026,27 +4253,65 @@
   gst_decode_pad_set_blocked (dpad, FALSE);
 }
 
+static gboolean
+gst_decode_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstDecodePad *dpad = GST_DECODE_PAD (parent);
+  gboolean ret = FALSE;
+
+  CHAIN_MUTEX_LOCK (dpad->chain);
+  if (!dpad->exposed && !dpad->dbin->shutdown && !dpad->chain->deadend
+      && dpad->chain->elements) {
+    GstDecodeElement *delem = dpad->chain->elements->data;
+
+    ret = FALSE;
+    GST_DEBUG_OBJECT (dpad->dbin,
+        "calling autoplug-query for %s (element %s): %" GST_PTR_FORMAT,
+        GST_PAD_NAME (dpad), GST_ELEMENT_NAME (delem->element), query);
+    g_signal_emit (G_OBJECT (dpad->dbin),
+        gst_decode_bin_signals[SIGNAL_AUTOPLUG_QUERY], 0, dpad, delem->element,
+        query, &ret);
+
+    if (ret)
+      GST_DEBUG_OBJECT (dpad->dbin,
+          "autoplug-query returned %d: %" GST_PTR_FORMAT, ret, query);
+    else
+      GST_DEBUG_OBJECT (dpad->dbin, "autoplug-query returned %d", ret);
+  }
+  CHAIN_MUTEX_UNLOCK (dpad->chain);
+
+  /* If exposed or nothing handled the query use the default handler */
+  if (!ret)
+    ret = gst_pad_query_default (pad, parent, query);
+
+  return ret;
+}
+
 /*gst_decode_pad_new:
  *
  * Creates a new GstDecodePad for the given pad.
  */
 static GstDecodePad *
-gst_decode_pad_new (GstDecodeBin * dbin, GstPad * pad, GstDecodeChain * chain)
+gst_decode_pad_new (GstDecodeBin * dbin, GstDecodeChain * chain)
 {
   GstDecodePad *dpad;
+  GstProxyPad *ppad;
   GstPadTemplate *pad_tmpl;
 
   GST_DEBUG_OBJECT (dbin, "making new decodepad");
   pad_tmpl = gst_static_pad_template_get (&decoder_bin_src_template);
   dpad =
-      g_object_new (GST_TYPE_DECODE_PAD, "direction", GST_PAD_DIRECTION (pad),
+      g_object_new (GST_TYPE_DECODE_PAD, "direction", GST_PAD_SRC,
       "template", pad_tmpl, NULL);
   gst_ghost_pad_construct (GST_GHOST_PAD_CAST (dpad));
-  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (dpad), pad);
   dpad->chain = chain;
   dpad->dbin = dbin;
   gst_object_unref (pad_tmpl);
 
+  ppad = gst_proxy_pad_get_internal (GST_PROXY_PAD (dpad));
+  gst_pad_set_query_function (GST_PAD_CAST (ppad), gst_decode_pad_query);
+  gst_object_unref (ppad);
+
   return dpad;
 }
 
@@ -4058,6 +4323,8 @@
 
   if (ppad->event_probe_id != 0)
     gst_pad_remove_probe (ppad->pad, ppad->event_probe_id);
+  if (ppad->notify_caps_id)
+    g_signal_handler_disconnect (ppad->pad, ppad->notify_caps_id);
   gst_object_unref (ppad->pad);
   g_slice_free (GstPendingPad, ppad);
 }
@@ -4166,10 +4433,12 @@
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       /* Make sure we've cleared all existing chains */
+      EXPOSE_LOCK (dbin);
       if (dbin->decode_chain) {
         gst_decode_chain_free (dbin->decode_chain);
         dbin->decode_chain = NULL;
       }
+      EXPOSE_UNLOCK (dbin);
       DYN_LOCK (dbin);
       GST_LOG_OBJECT (dbin, "clearing shutdown flag");
       dbin->shutdown = FALSE;
@@ -4177,8 +4446,18 @@
       dbin->have_type = FALSE;
       ret = GST_STATE_CHANGE_ASYNC;
       do_async_start (dbin);
+
+
+      /* connect a signal to find out when the typefind element found
+       * a type */
+      dbin->have_type_id =
+          g_signal_connect (dbin->typefind, "have-type",
+          G_CALLBACK (type_found), dbin);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      if (dbin->have_type_id)
+        g_signal_handler_disconnect (dbin->typefind, dbin->have_type_id);
+      dbin->have_type_id = 0;
       DYN_LOCK (dbin);
       GST_LOG_OBJECT (dbin, "setting shutdown flag");
       dbin->shutdown = TRUE;
@@ -4202,10 +4481,12 @@
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       do_async_done (dbin);
+      EXPOSE_LOCK (dbin);
       if (dbin->decode_chain) {
         gst_decode_chain_free (dbin->decode_chain);
         dbin->decode_chain = NULL;
       }
+      EXPOSE_UNLOCK (dbin);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
     default:
diff --git a/gst/playback/gstplay-enum.c b/gst/playback/gstplay-enum.c
index 4fe137d..4c4861f 100644
--- a/gst/playback/gstplay-enum.c
+++ b/gst/playback/gstplay-enum.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gstplay-enum.h"
diff --git a/gst/playback/gstplay-enum.h b/gst/playback/gstplay-enum.h
index ac98569..f6ab5d9 100644
--- a/gst/playback/gstplay-enum.h
+++ b/gst/playback/gstplay-enum.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PLAY_ENUM_H__
diff --git a/gst/playback/gstplayback.c b/gst/playback/gstplayback.c
index b0d34e3..882a7ec 100644
--- a/gst/playback/gstplayback.c
+++ b/gst/playback/gstplayback.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/playback/gstplayback.h b/gst/playback/gstplayback.h
index 910b1a3..b4309c7 100644
--- a/gst/playback/gstplayback.h
+++ b/gst/playback/gstplayback.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PLAY_BACK_H__
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index bef9e9a..f3d8c75 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -1,6 +1,8 @@
 /* GStreamer
  * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
  * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2013> Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -14,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -251,24 +253,29 @@
 typedef struct _GstPlayBin GstPlayBin;
 typedef struct _GstPlayBinClass GstPlayBinClass;
 typedef struct _GstSourceGroup GstSourceGroup;
-typedef struct _GstSourceSelect GstSourceSelect;
+typedef struct _GstSourceCombine GstSourceCombine;
 
-typedef GstCaps *(*SourceSelectGetMediaCapsFunc) (void);
+typedef GstCaps *(*SourceCombineGetMediaCapsFunc) (void);
 
-/* has the info for a selector and provides the link to the sink */
-struct _GstSourceSelect
+/* has the info for a combiner and provides the link to the sink */
+struct _GstSourceCombine
 {
-  const gchar *media_list[8];   /* the media types for the selector */
-  SourceSelectGetMediaCapsFunc get_media_caps;  /* more complex caps for the selector */
-  GstPlaySinkType type;         /* the sink pad type of the selector */
+  const gchar *media_list[8];   /* the media types for the combiner */
+  SourceCombineGetMediaCapsFunc get_media_caps; /* more complex caps for the combiner */
+  GstPlaySinkType type;         /* the sink pad type of the combiner */
 
-  GstElement *selector;         /* the selector */
+  GstElement *combiner;         /* the combiner */
   GPtrArray *channels;
-  GstPad *srcpad;               /* the source pad of the selector */
-  GstPad *sinkpad;              /* the sinkpad of the sink when the selector
+  GstPad *srcpad;               /* the source pad of the combiner */
+  GstPad *sinkpad;              /* the sinkpad of the sink when the combiner
                                  * is linked
                                  */
   gulong block_id;
+
+  gboolean has_active_pad;      /* stream combiner has the "active-pad" property */
+
+  gboolean has_always_ok;       /* stream combiner's sink pads have the "always-ok" property */
+  gboolean has_tags;            /* stream combiner's sink pads have the "tags" property */
 };
 
 #define GST_SOURCE_GROUP_GET_LOCK(group) (&((GstSourceGroup*)(group))->lock)
@@ -283,6 +290,20 @@
   PLAYBIN_STREAM_LAST
 };
 
+static void avelements_free (gpointer data);
+static GSequence *avelements_create (GstPlayBin * playbin,
+    gboolean isaudioelement);
+
+/* The GstAudioVideoElement structure holding the audio/video decoder
+ * and the audio/video sink factories together with field indicating
+ * the number of common caps features */
+typedef struct
+{
+  GstElementFactory *dec;       /* audio:video decoder */
+  GstElementFactory *sink;      /* audio:video sink */
+  guint n_comm_cf;              /* number of common caps features */
+} GstAVElement;
+
 /* a structure to hold the objects for decoding a uri and the subtitle uri
  */
 struct _GstSourceGroup
@@ -300,12 +321,18 @@
   GValueArray *streaminfo;
   GstElement *source;
 
-  GPtrArray *video_channels;    /* links to selector pads */
-  GPtrArray *audio_channels;    /* links to selector pads */
-  GPtrArray *text_channels;     /* links to selector pads */
+  GPtrArray *video_channels;    /* links to combiner pads */
+  GPtrArray *audio_channels;    /* links to combiner pads */
+  GPtrArray *text_channels;     /* links to combiner pads */
 
-  GstElement *audio_sink;       /* autoplugged audio and video sinks */
+  /* Sinks for this group. These are initialized with
+   * the configure or currently used sink, otherwise
+   * left as NULL and playbin tries to automatically
+   * select a good sink
+   */
+  GstElement *audio_sink;
   GstElement *video_sink;
+  GstElement *text_sink;
 
   /* uridecodebins for uri and subtitle uri */
   GstElement *uridecodebin;
@@ -321,11 +348,13 @@
   gulong autoplug_factories_id;
   gulong autoplug_select_id;
   gulong autoplug_continue_id;
+  gulong autoplug_query_id;
 
   gulong sub_pad_added_id;
   gulong sub_pad_removed_id;
   gulong sub_no_more_pads_id;
   gulong sub_autoplug_continue_id;
+  gulong sub_autoplug_query_id;
 
   gulong block_id;
 
@@ -336,8 +365,8 @@
   GMutex suburi_flushes_to_drop_lock;
   GSList *suburi_flushes_to_drop;
 
-  /* selectors for different streams */
-  GstSourceSelect selector[PLAYBIN_STREAM_LAST];
+  /* combiners for different streams */
+  GstSourceCombine combiner[PLAYBIN_STREAM_LAST];
 };
 
 #define GST_PLAY_BIN_GET_LOCK(bin) (&((GstPlayBin*)(bin))->lock)
@@ -423,6 +452,13 @@
   GstElement *video_sink;       /* configured video sink, or NULL      */
   GstElement *text_sink;        /* configured text sink, or NULL       */
 
+  GstElement *audio_stream_combiner;    /* configured audio stream combiner, or NULL */
+  GstElement *video_stream_combiner;    /* configured video stream combiner, or NULL */
+  GstElement *text_stream_combiner;     /* configured text stream combiner, or NULL */
+
+  GSequence *aelements;         /* a list of GstAVElements for audio stream */
+  GSequence *velements;         /* a list of GstAVElements for video stream */
+
   struct
   {
     gboolean valid;
@@ -512,6 +548,9 @@
   PROP_VIDEO_SINK,
   PROP_VIS_PLUGIN,
   PROP_TEXT_SINK,
+  PROP_VIDEO_STREAM_COMBINER,
+  PROP_AUDIO_STREAM_COMBINER,
+  PROP_TEXT_STREAM_COMBINER,
   PROP_VOLUME,
   PROP_MUTE,
   PROP_SAMPLE,
@@ -560,6 +599,8 @@
 
 static void gst_play_bin_handle_message (GstBin * bin, GstMessage * message);
 static gboolean gst_play_bin_query (GstElement * element, GstQuery * query);
+static void gst_play_bin_set_context (GstElement * element,
+    GstContext * context);
 
 static GstTagList *gst_play_bin_get_video_tags (GstPlayBin * playbin,
     gint stream);
@@ -805,6 +846,36 @@
       g_param_spec_object ("text-sink", "Text plugin",
           "the text output element to use (NULL = default subtitleoverlay)",
           GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin:video-stream-combiner
+   *
+   * Get or set the current video stream combiner. By default, an input-selector
+   * is created and deleted as-needed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_VIDEO_STREAM_COMBINER,
+      g_param_spec_object ("video-stream-combiner", "Video stream combiner",
+          "Current video stream combiner (NULL = input-selector)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin:audio-stream-combiner
+   *
+   * Get or set the current audio stream combiner. By default, an input-selector
+   * is created and deleted as-needed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_AUDIO_STREAM_COMBINER,
+      g_param_spec_object ("audio-stream-combiner", "Audio stream combiner",
+          "Current audio stream combiner (NULL = input-selector)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin:text-stream-combiner
+   *
+   * Get or set the current text stream combiner. By default, an input-selector
+   * is created and deleted as-needed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_TEXT_STREAM_COMBINER,
+      g_param_spec_object ("text-stream-combiner", "Text stream combiner",
+          "Current text stream combiner (NULL = input-selector)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstPlayBin:volume:
@@ -1124,7 +1195,7 @@
    * @playbin: a #GstPlayBin
    * @stream: a video stream number
    *
-   * Action signal to retrieve the stream-selector sinkpad for a specific
+   * Action signal to retrieve the stream-combiner sinkpad for a specific
    * video stream.
    * This pad can be used for notifications of caps changes, stream-specific
    * queries, etc.
@@ -1141,7 +1212,7 @@
    * @playbin: a #GstPlayBin
    * @stream: an audio stream number
    *
-   * Action signal to retrieve the stream-selector sinkpad for a specific
+   * Action signal to retrieve the stream-combiner sinkpad for a specific
    * audio stream.
    * This pad can be used for notifications of caps changes, stream-specific
    * queries, etc.
@@ -1158,7 +1229,7 @@
    * @playbin: a #GstPlayBin
    * @stream: a text stream number
    *
-   * Action signal to retrieve the stream-selector sinkpad for a specific
+   * Action signal to retrieve the stream-combiner sinkpad for a specific
    * text stream.
    * This pad can be used for notifications of caps changes, stream-specific
    * queries, etc.
@@ -1189,6 +1260,7 @@
   gstelement_klass->change_state =
       GST_DEBUG_FUNCPTR (gst_play_bin_change_state);
   gstelement_klass->query = GST_DEBUG_FUNCPTR (gst_play_bin_query);
+  gstelement_klass->set_context = GST_DEBUG_FUNCPTR (gst_play_bin_set_context);
 
   gstbin_klass->handle_message =
       GST_DEBUG_FUNCPTR (gst_play_bin_handle_message);
@@ -1202,30 +1274,30 @@
   group->audio_channels = g_ptr_array_new ();
   group->text_channels = g_ptr_array_new ();
   g_mutex_init (&group->lock);
-  /* init selectors. The selector is found by finding the first prefix that
+  /* init combiners. The combiner is found by finding the first prefix that
    * matches the media. */
   group->playbin = playbin;
   /* If you add any items to these lists, check that media_list[] is defined
    * above to be large enough to hold MAX(items)+1, so as to accommodate a
    * NULL terminator (set when the memory is zeroed on allocation) */
-  group->selector[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
-  group->selector[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
-  group->selector[PLAYBIN_STREAM_AUDIO].channels = group->audio_channels;
-  group->selector[PLAYBIN_STREAM_VIDEO].media_list[0] = "video/";
-  group->selector[PLAYBIN_STREAM_VIDEO].media_list[1] = "image/";
-  group->selector[PLAYBIN_STREAM_VIDEO].type = GST_PLAY_SINK_TYPE_VIDEO;
-  group->selector[PLAYBIN_STREAM_VIDEO].channels = group->video_channels;
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[0] = "text/";
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[1] = "application/x-subtitle";
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[2] = "application/x-ssa";
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[3] = "application/x-ass";
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[4] = "subpicture/x-dvd";
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[5] = "subpicture/";
-  group->selector[PLAYBIN_STREAM_TEXT].media_list[6] = "subtitle/";
-  group->selector[PLAYBIN_STREAM_TEXT].get_media_caps =
+  group->combiner[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
+  group->combiner[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
+  group->combiner[PLAYBIN_STREAM_AUDIO].channels = group->audio_channels;
+  group->combiner[PLAYBIN_STREAM_VIDEO].media_list[0] = "video/";
+  group->combiner[PLAYBIN_STREAM_VIDEO].media_list[1] = "image/";
+  group->combiner[PLAYBIN_STREAM_VIDEO].type = GST_PLAY_SINK_TYPE_VIDEO;
+  group->combiner[PLAYBIN_STREAM_VIDEO].channels = group->video_channels;
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[0] = "text/";
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[1] = "application/x-subtitle";
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[2] = "application/x-ssa";
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[3] = "application/x-ass";
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[4] = "subpicture/x-dvd";
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[5] = "subpicture/";
+  group->combiner[PLAYBIN_STREAM_TEXT].media_list[6] = "subtitle/";
+  group->combiner[PLAYBIN_STREAM_TEXT].get_media_caps =
       gst_subtitle_overlay_create_factory_caps;
-  group->selector[PLAYBIN_STREAM_TEXT].type = GST_PLAY_SINK_TYPE_TEXT;
-  group->selector[PLAYBIN_STREAM_TEXT].channels = group->text_channels;
+  group->combiner[PLAYBIN_STREAM_TEXT].type = GST_PLAY_SINK_TYPE_TEXT;
+  group->combiner[PLAYBIN_STREAM_TEXT].channels = group->text_channels;
 }
 
 static void
@@ -1238,18 +1310,15 @@
   g_ptr_array_free (group->text_channels, TRUE);
 
   g_mutex_clear (&group->lock);
-  if (group->audio_sink) {
-    if (group->audio_sink != playbin->audio_sink)
-      gst_element_set_state (group->audio_sink, GST_STATE_NULL);
+  if (group->audio_sink)
     gst_object_unref (group->audio_sink);
-  }
   group->audio_sink = NULL;
-  if (group->video_sink) {
-    if (group->video_sink != playbin->video_sink)
-      gst_element_set_state (group->video_sink, GST_STATE_NULL);
+  if (group->video_sink)
     gst_object_unref (group->video_sink);
-  }
   group->video_sink = NULL;
+  if (group->text_sink)
+    gst_object_unref (group->text_sink);
+  group->text_sink = NULL;
 
   g_list_free (group->stream_changed_pending);
   group->stream_changed_pending = NULL;
@@ -1267,13 +1336,13 @@
 }
 
 static void
-notify_volume_cb (GObject * selector, GParamSpec * pspec, GstPlayBin * playbin)
+notify_volume_cb (GObject * combiner, GParamSpec * pspec, GstPlayBin * playbin)
 {
   g_object_notify (G_OBJECT (playbin), "volume");
 }
 
 static void
-notify_mute_cb (GObject * selector, GParamSpec * pspec, GstPlayBin * playbin)
+notify_mute_cb (GObject * combiner, GParamSpec * pspec, GstPlayBin * playbin)
 {
   g_object_notify (G_OBJECT (playbin), "mute");
 }
@@ -1289,7 +1358,6 @@
 compare_factories_func (gconstpointer p1, gconstpointer p2)
 {
   GstPluginFeature *f1, *f2;
-  gint diff;
   gboolean is_sink1, is_sink2;
   gboolean is_parser1, is_parser2;
 
@@ -1321,13 +1389,7 @@
 
   /* And if it's a both a parser or sink we first sort by rank
    * and then by factory name */
-  diff = gst_plugin_feature_get_rank (f2) - gst_plugin_feature_get_rank (f1);
-  if (diff != 0)
-    return diff;
-
-  diff = strcmp (GST_OBJECT_NAME (f2), GST_OBJECT_NAME (f1));
-
-  return diff;
+  return gst_plugin_feature_rank_compare_func (p1, p2);
 }
 
 /* Must be called with elements lock! */
@@ -1338,6 +1400,7 @@
   guint cookie;
 
   cookie = gst_registry_get_feature_list_cookie (gst_registry_get ());
+
   if (!playbin->elements || playbin->elements_cookie != cookie) {
     if (playbin->elements)
       gst_plugin_feature_list_free (playbin->elements);
@@ -1349,8 +1412,21 @@
         (GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS, GST_RANK_MARGINAL);
     playbin->elements = g_list_concat (res, tmp);
     playbin->elements = g_list_sort (playbin->elements, compare_factories_func);
-    playbin->elements_cookie = cookie;
   }
+
+  if (!playbin->aelements || playbin->elements_cookie != cookie) {
+    if (playbin->aelements)
+      g_sequence_free (playbin->aelements);
+    playbin->aelements = avelements_create (playbin, TRUE);
+  }
+
+  if (!playbin->velements || playbin->elements_cookie != cookie) {
+    if (playbin->velements)
+      g_sequence_free (playbin->velements);
+    playbin->velements = avelements_create (playbin, FALSE);
+  }
+
+  playbin->elements_cookie = cookie;
 }
 
 static void
@@ -1359,7 +1435,7 @@
   g_rec_mutex_init (&playbin->lock);
   g_mutex_init (&playbin->dyn_lock);
 
-  /* assume we can create a selector */
+  /* assume we can create an input-selector */
   playbin->have_selector = TRUE;
 
   /* init groups */
@@ -1408,6 +1484,11 @@
 
   if (playbin->source)
     gst_object_unref (playbin->source);
+
+  /* Setting states to NULL is safe here because playsink
+   * will already be gone and none of these sinks will be
+   * a child of playsink
+   */
   if (playbin->video_sink) {
     gst_element_set_state (playbin->video_sink, GST_STATE_NULL);
     gst_object_unref (playbin->video_sink);
@@ -1421,9 +1502,28 @@
     gst_object_unref (playbin->text_sink);
   }
 
+  if (playbin->video_stream_combiner) {
+    gst_element_set_state (playbin->video_stream_combiner, GST_STATE_NULL);
+    gst_object_unref (playbin->video_stream_combiner);
+  }
+  if (playbin->audio_stream_combiner) {
+    gst_element_set_state (playbin->audio_stream_combiner, GST_STATE_NULL);
+    gst_object_unref (playbin->audio_stream_combiner);
+  }
+  if (playbin->text_stream_combiner) {
+    gst_element_set_state (playbin->text_stream_combiner, GST_STATE_NULL);
+    gst_object_unref (playbin->text_stream_combiner);
+  }
+
   if (playbin->elements)
     gst_plugin_feature_list_free (playbin->elements);
 
+  if (playbin->aelements)
+    g_sequence_free (playbin->aelements);
+
+  if (playbin->velements)
+    g_sequence_free (playbin->velements);
+
   g_rec_mutex_clear (&playbin->lock);
   g_mutex_clear (&playbin->dyn_lock);
   g_mutex_clear (&playbin->elements_lock);
@@ -1595,12 +1695,13 @@
 
 
 static GstTagList *
-get_tags (GstPlayBin * playbin, GPtrArray * channels, gint stream)
+get_tags (GstPlayBin * playbin, GstSourceGroup * group, GPtrArray * channels,
+    gint stream)
 {
   GstTagList *result;
   GstPad *sinkpad;
 
-  if (!channels || stream >= channels->len)
+  if (!channels || stream >= channels->len || !group->combiner[stream].has_tags)
     return NULL;
 
   sinkpad = g_ptr_array_index (channels, stream);
@@ -1617,7 +1718,7 @@
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
-  result = get_tags (playbin, group->video_channels, stream);
+  result = get_tags (playbin, group, group->video_channels, stream);
   GST_PLAY_BIN_UNLOCK (playbin);
 
   return result;
@@ -1631,7 +1732,7 @@
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
-  result = get_tags (playbin, group->audio_channels, stream);
+  result = get_tags (playbin, group, group->audio_channels, stream);
   GST_PLAY_BIN_UNLOCK (playbin);
 
   return result;
@@ -1645,7 +1746,7 @@
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
-  result = get_tags (playbin, group->text_channels, stream);
+  result = get_tags (playbin, group, group->text_channels, stream);
   GST_PLAY_BIN_UNLOCK (playbin);
 
   return result;
@@ -1659,19 +1760,26 @@
 
 /* Returns current stream number, or -1 if none has been selected yet */
 static int
-get_current_stream_number (GstPlayBin * playbin, GPtrArray * channels)
+get_current_stream_number (GstPlayBin * playbin, GstSourceCombine * combine,
+    GPtrArray * channels)
 {
   /* Internal API cleanup would make this easier... */
   int i;
   GstPad *pad, *current;
-  GstObject *selector = NULL;
+  GstObject *combiner = NULL;
   int ret = -1;
 
+  if (!combine->has_active_pad) {
+    GST_WARNING_OBJECT (playbin,
+        "combiner doesn't have the \"active-pad\" property");
+    return ret;
+  }
+
   for (i = 0; i < channels->len; i++) {
     pad = g_ptr_array_index (channels, i);
-    if ((selector = gst_pad_get_parent (pad))) {
-      g_object_get (selector, "active-pad", &current, NULL);
-      gst_object_unref (selector);
+    if ((combiner = gst_pad_get_parent (pad))) {
+      g_object_get (combiner, "active-pad", &current, NULL);
+      gst_object_unref (combiner);
 
       if (pad == current) {
         gst_object_unref (current);
@@ -1688,7 +1796,7 @@
 }
 
 static gboolean
-gst_play_bin_send_custom_event (GstObject * selector, const gchar * event_name)
+gst_play_bin_send_custom_event (GstObject * combiner, const gchar * event_name)
 {
   GstPad *src;
   GstPad *peer;
@@ -1696,7 +1804,7 @@
   GstEvent *event;
   gboolean ret = FALSE;
 
-  src = gst_element_get_static_pad (GST_ELEMENT_CAST (selector), "src");
+  src = gst_element_get_static_pad (GST_ELEMENT_CAST (combiner), "src");
   peer = gst_pad_get_peer (src);
   if (peer) {
     s = gst_structure_new_empty (event_name);
@@ -1722,6 +1830,8 @@
       playbin->current_video, stream);
 
   group = get_group (playbin);
+  if (!group->combiner[PLAYBIN_STREAM_VIDEO].has_active_pad)
+    goto no_active_pad;
   if (!(channels = group->video_channels))
     goto no_channels;
 
@@ -1737,28 +1847,35 @@
   GST_PLAY_BIN_UNLOCK (playbin);
 
   if (sinkpad) {
-    GstObject *selector;
+    GstObject *combiner;
 
-    if ((selector = gst_pad_get_parent (sinkpad))) {
+    if ((combiner = gst_pad_get_parent (sinkpad))) {
       GstPad *old_sinkpad;
 
-      g_object_get (selector, "active-pad", &old_sinkpad, NULL);
+      g_object_get (combiner, "active-pad", &old_sinkpad, NULL);
 
       if (old_sinkpad != sinkpad) {
-        if (gst_play_bin_send_custom_event (selector,
+        if (gst_play_bin_send_custom_event (combiner,
                 "playsink-custom-video-flush"))
           playbin->video_pending_flush_finish = TRUE;
 
         /* activate the selected pad */
-        g_object_set (selector, "active-pad", sinkpad, NULL);
+        g_object_set (combiner, "active-pad", sinkpad, NULL);
       }
 
-      gst_object_unref (selector);
+      gst_object_unref (combiner);
     }
     gst_object_unref (sinkpad);
   }
   return TRUE;
 
+no_active_pad:
+  {
+    GST_PLAY_BIN_UNLOCK (playbin);
+    GST_WARNING_OBJECT (playbin,
+        "can't switch video, the stream combiner's sink pads don't have the \"active-pad\" property");
+    return FALSE;
+  }
 no_channels:
   {
     GST_PLAY_BIN_UNLOCK (playbin);
@@ -1780,6 +1897,8 @@
       playbin->current_audio, stream);
 
   group = get_group (playbin);
+  if (!group->combiner[PLAYBIN_STREAM_AUDIO].has_active_pad)
+    goto no_active_pad;
   if (!(channels = group->audio_channels))
     goto no_channels;
 
@@ -1795,27 +1914,34 @@
   GST_PLAY_BIN_UNLOCK (playbin);
 
   if (sinkpad) {
-    GstObject *selector;
+    GstObject *combiner;
 
-    if ((selector = gst_pad_get_parent (sinkpad))) {
+    if ((combiner = gst_pad_get_parent (sinkpad))) {
       GstPad *old_sinkpad;
 
-      g_object_get (selector, "active-pad", &old_sinkpad, NULL);
+      g_object_get (combiner, "active-pad", &old_sinkpad, NULL);
 
       if (old_sinkpad != sinkpad) {
-        if (gst_play_bin_send_custom_event (selector,
+        if (gst_play_bin_send_custom_event (combiner,
                 "playsink-custom-audio-flush"))
           playbin->audio_pending_flush_finish = TRUE;
 
         /* activate the selected pad */
-        g_object_set (selector, "active-pad", sinkpad, NULL);
+        g_object_set (combiner, "active-pad", sinkpad, NULL);
       }
-      gst_object_unref (selector);
+      gst_object_unref (combiner);
     }
     gst_object_unref (sinkpad);
   }
   return TRUE;
 
+no_active_pad:
+  {
+    GST_PLAY_BIN_UNLOCK (playbin);
+    GST_WARNING_OBJECT (playbin,
+        "can't switch audio, the stream combiner's sink pads don't have the \"active-pad\" property");
+    return FALSE;
+  }
 no_channels:
   {
     GST_PLAY_BIN_UNLOCK (playbin);
@@ -1928,6 +2054,8 @@
       playbin->current_text, stream);
 
   group = get_group (playbin);
+  if (!group->combiner[PLAYBIN_STREAM_TEXT].has_active_pad)
+    goto no_active_pad;
   if (!(channels = group->text_channels))
     goto no_channels;
 
@@ -1943,12 +2071,12 @@
   GST_PLAY_BIN_UNLOCK (playbin);
 
   if (sinkpad) {
-    GstObject *selector;
+    GstObject *combiner;
 
-    if ((selector = gst_pad_get_parent (sinkpad))) {
+    if ((combiner = gst_pad_get_parent (sinkpad))) {
       GstPad *old_sinkpad;
 
-      g_object_get (selector, "active-pad", &old_sinkpad, NULL);
+      g_object_get (combiner, "active-pad", &old_sinkpad, NULL);
 
       if (old_sinkpad != sinkpad) {
         gboolean need_unblock, need_block, need_seek;
@@ -1989,12 +2117,12 @@
           gst_play_bin_suburidecodebin_block (group, group->suburidecodebin,
               TRUE);
 
-        if (gst_play_bin_send_custom_event (selector,
+        if (gst_play_bin_send_custom_event (combiner,
                 "playsink-custom-subtitle-flush"))
           playbin->text_pending_flush_finish = TRUE;
 
         /* activate the selected pad */
-        g_object_set (selector, "active-pad", sinkpad, NULL);
+        g_object_set (combiner, "active-pad", sinkpad, NULL);
 
         /* Unblock pads if necessary */
         if (need_unblock)
@@ -2005,7 +2133,7 @@
         if (need_seek)
           gst_play_bin_suburidecodebin_seek_to_start (group);
       }
-      gst_object_unref (selector);
+      gst_object_unref (combiner);
 
       if (old_sinkpad)
         gst_object_unref (old_sinkpad);
@@ -2014,6 +2142,13 @@
   }
   return TRUE;
 
+no_active_pad:
+  {
+    GST_PLAY_BIN_UNLOCK (playbin);
+    GST_WARNING_OBJECT (playbin,
+        "can't switch text, the stream combiner's sink pads don't have the \"active-pad\" property");
+    return FALSE;
+  }
 no_channels:
   {
     GST_PLAY_BIN_UNLOCK (playbin);
@@ -2022,24 +2157,39 @@
 }
 
 static void
-gst_play_bin_set_sink (GstPlayBin * playbin, GstElement ** elem,
-    const gchar * dbg, GstElement * sink)
+gst_play_bin_set_sink (GstPlayBin * playbin, GstPlaySinkType type,
+    const gchar * dbg, GstElement ** elem, GstElement * sink)
 {
   GST_INFO_OBJECT (playbin, "Setting %s sink to %" GST_PTR_FORMAT, dbg, sink);
 
+  gst_play_sink_set_sink (playbin->playsink, type, sink);
+
+  if (*elem)
+    gst_object_unref (*elem);
+  *elem = gst_object_ref (sink);
+}
+
+static void
+gst_play_bin_set_stream_combiner (GstPlayBin * playbin, GstElement ** elem,
+    const gchar * dbg, GstElement * combiner)
+{
+  GST_INFO_OBJECT (playbin, "Setting %s stream combiner to %" GST_PTR_FORMAT,
+      dbg, combiner);
+
   GST_PLAY_BIN_LOCK (playbin);
-  if (*elem != sink) {
+  if (*elem != combiner) {
     GstElement *old;
 
     old = *elem;
-    if (sink)
-      gst_object_ref_sink (sink);
+    if (combiner)
+      gst_object_ref_sink (combiner);
 
-    *elem = sink;
+    *elem = combiner;
     if (old)
       gst_object_unref (old);
   }
-  GST_LOG_OBJECT (playbin, "%s sink now %" GST_PTR_FORMAT, dbg, *elem);
+  GST_LOG_OBJECT (playbin, "%s stream combiner now %" GST_PTR_FORMAT, dbg,
+      *elem);
   GST_PLAY_BIN_UNLOCK (playbin);
 }
 
@@ -2093,20 +2243,32 @@
       gst_play_bin_set_encoding (playbin, g_value_get_string (value));
       break;
     case PROP_VIDEO_SINK:
-      gst_play_bin_set_sink (playbin, &playbin->video_sink, "video",
-          g_value_get_object (value));
+      gst_play_bin_set_sink (playbin, GST_PLAY_SINK_TYPE_VIDEO, "video",
+          &playbin->video_sink, g_value_get_object (value));
       break;
     case PROP_AUDIO_SINK:
-      gst_play_bin_set_sink (playbin, &playbin->audio_sink, "audio",
-          g_value_get_object (value));
+      gst_play_bin_set_sink (playbin, GST_PLAY_SINK_TYPE_AUDIO, "audio",
+          &playbin->audio_sink, g_value_get_object (value));
       break;
     case PROP_VIS_PLUGIN:
       gst_play_sink_set_vis_plugin (playbin->playsink,
           g_value_get_object (value));
       break;
     case PROP_TEXT_SINK:
-      gst_play_bin_set_sink (playbin, &playbin->text_sink, "text",
-          g_value_get_object (value));
+      gst_play_bin_set_sink (playbin, GST_PLAY_SINK_TYPE_TEXT, "text",
+          &playbin->text_sink, g_value_get_object (value));
+      break;
+    case PROP_VIDEO_STREAM_COMBINER:
+      gst_play_bin_set_stream_combiner (playbin,
+          &playbin->video_stream_combiner, "video", g_value_get_object (value));
+      break;
+    case PROP_AUDIO_STREAM_COMBINER:
+      gst_play_bin_set_stream_combiner (playbin,
+          &playbin->audio_stream_combiner, "audio", g_value_get_object (value));
+      break;
+    case PROP_TEXT_STREAM_COMBINER:
+      gst_play_bin_set_stream_combiner (playbin,
+          &playbin->text_stream_combiner, "text", g_value_get_object (value));
       break;
     case PROP_VOLUME:
       gst_play_sink_set_volume (playbin->playsink, g_value_get_double (value));
@@ -2166,6 +2328,22 @@
   return sink;
 }
 
+static GstElement *
+gst_play_bin_get_current_stream_combiner (GstPlayBin * playbin,
+    GstElement ** elem, const gchar * dbg, int stream_type)
+{
+  GstElement *combiner;
+
+  GST_PLAY_BIN_LOCK (playbin);
+  if ((combiner = playbin->curr_group->combiner[stream_type].combiner))
+    gst_object_ref (combiner);
+  else if ((combiner = *elem))
+    gst_object_ref (combiner);
+  GST_PLAY_BIN_UNLOCK (playbin);
+
+  return combiner;
+}
+
 static void
 gst_play_bin_get_property (GObject * object, guint prop_id, GValue * value,
     GParamSpec * pspec)
@@ -2300,6 +2478,21 @@
           gst_play_bin_get_current_sink (playbin, &playbin->text_sink,
               "text", GST_PLAY_SINK_TYPE_TEXT));
       break;
+    case PROP_VIDEO_STREAM_COMBINER:
+      g_value_take_object (value,
+          gst_play_bin_get_current_stream_combiner (playbin,
+              &playbin->video_stream_combiner, "video", PLAYBIN_STREAM_VIDEO));
+      break;
+    case PROP_AUDIO_STREAM_COMBINER:
+      g_value_take_object (value,
+          gst_play_bin_get_current_stream_combiner (playbin,
+              &playbin->audio_stream_combiner, "audio", PLAYBIN_STREAM_VIDEO));
+      break;
+    case PROP_TEXT_STREAM_COMBINER:
+      g_value_take_object (value,
+          gst_play_bin_get_current_stream_combiner (playbin,
+              &playbin->text_stream_combiner, "text", PLAYBIN_STREAM_VIDEO));
+      break;
     case PROP_VOLUME:
       g_value_set_double (value, gst_play_sink_get_volume (playbin->playsink));
       break;
@@ -2524,6 +2717,7 @@
         REMOVE_SIGNAL (group->suburidecodebin, group->sub_pad_removed_id);
         REMOVE_SIGNAL (group->suburidecodebin, group->sub_no_more_pads_id);
         REMOVE_SIGNAL (group->suburidecodebin, group->sub_autoplug_continue_id);
+        REMOVE_SIGNAL (group->suburidecodebin, group->sub_autoplug_query_id);
 
         it = gst_element_iterate_src_pads (group->suburidecodebin);
         while (it && !done) {
@@ -2571,40 +2765,40 @@
 }
 
 static void
-selector_active_pad_changed (GObject * selector, GParamSpec * pspec,
+combiner_active_pad_changed (GObject * combiner, GParamSpec * pspec,
     GstPlayBin * playbin)
 {
   const gchar *property;
   GstSourceGroup *group;
-  GstSourceSelect *select = NULL;
+  GstSourceCombine *combine = NULL;
   int i;
 
   GST_PLAY_BIN_LOCK (playbin);
   group = get_group (playbin);
 
   for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
-    if (selector == G_OBJECT (group->selector[i].selector)) {
-      select = &group->selector[i];
+    if (combiner == G_OBJECT (group->combiner[i].combiner)) {
+      combine = &group->combiner[i];
     }
   }
 
   /* We got a pad-change after our group got switched out; no need to notify */
-  if (!select) {
+  if (!combine) {
     GST_PLAY_BIN_UNLOCK (playbin);
     return;
   }
 
-  switch (select->type) {
+  switch (combine->type) {
     case GST_PLAY_SINK_TYPE_VIDEO:
     case GST_PLAY_SINK_TYPE_VIDEO_RAW:
       property = "current-video";
       playbin->current_video = get_current_stream_number (playbin,
-          group->video_channels);
+          combine, group->video_channels);
 
       if (playbin->video_pending_flush_finish) {
         playbin->video_pending_flush_finish = FALSE;
         GST_PLAY_BIN_UNLOCK (playbin);
-        gst_play_bin_send_custom_event (GST_OBJECT (selector),
+        gst_play_bin_send_custom_event (GST_OBJECT (combiner),
             "playsink-custom-video-flush-finish");
         goto notify;
       }
@@ -2613,12 +2807,12 @@
     case GST_PLAY_SINK_TYPE_AUDIO_RAW:
       property = "current-audio";
       playbin->current_audio = get_current_stream_number (playbin,
-          group->audio_channels);
+          combine, group->audio_channels);
 
       if (playbin->audio_pending_flush_finish) {
         playbin->audio_pending_flush_finish = FALSE;
         GST_PLAY_BIN_UNLOCK (playbin);
-        gst_play_bin_send_custom_event (GST_OBJECT (selector),
+        gst_play_bin_send_custom_event (GST_OBJECT (combiner),
             "playsink-custom-audio-flush-finish");
         goto notify;
       }
@@ -2626,12 +2820,12 @@
     case GST_PLAY_SINK_TYPE_TEXT:
       property = "current-text";
       playbin->current_text = get_current_stream_number (playbin,
-          group->text_channels);
+          combine, group->text_channels);
 
       if (playbin->text_pending_flush_finish) {
         playbin->text_pending_flush_finish = FALSE;
         GST_PLAY_BIN_UNLOCK (playbin);
-        gst_play_bin_send_custom_event (GST_OBJECT (selector),
+        gst_play_bin_send_custom_event (GST_OBJECT (combiner),
             "playsink-custom-subtitle-flush-finish");
         goto notify;
       }
@@ -2730,7 +2924,7 @@
 }
 
 /* this function is called when a new pad is added to decodebin. We check the
- * type of the pad and add it to the selector element of the group.
+ * type of the pad and add it to the combiner element of the group.
  */
 static void
 pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
@@ -2741,9 +2935,10 @@
   const gchar *name;
   GstPad *sinkpad;
   GstPadLinkReturn res;
-  GstSourceSelect *select = NULL;
+  GstSourceCombine *combine = NULL;
   gint i, pass;
   gboolean changed = FALSE;
+  GstElement *custom_combiner = NULL;
 
   playbin = group->playbin;
 
@@ -2755,37 +2950,51 @@
       "pad %s:%s with caps %" GST_PTR_FORMAT " added in group %p",
       GST_DEBUG_PAD_NAME (pad), caps, group);
 
-  /* major type of the pad, this determines the selector to use,
+  /* major type of the pad, this determines the combiner to use,
      try exact match first */
-  for (pass = 0; !select && pass < 2; pass++) {
+  for (pass = 0; !combine && pass < 2; pass++) {
     for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
-      if (array_has_value (group->selector[i].media_list, name, pass == 0)) {
-        select = &group->selector[i];
+      if (array_has_value (group->combiner[i].media_list, name, pass == 0)) {
+        combine = &group->combiner[i];
         break;
-      } else if (group->selector[i].get_media_caps) {
-        GstCaps *media_caps = group->selector[i].get_media_caps ();
+      } else if (group->combiner[i].get_media_caps) {
+        GstCaps *media_caps = group->combiner[i].get_media_caps ();
 
         if (media_caps && gst_caps_can_intersect (media_caps, caps)) {
-          select = &group->selector[i];
+          combine = &group->combiner[i];
           gst_caps_unref (media_caps);
           break;
         }
         gst_caps_unref (media_caps);
       }
     }
+    /* get custom stream combiner if there is one */
+    if (combine) {
+      if (i == PLAYBIN_STREAM_AUDIO) {
+        custom_combiner = playbin->audio_stream_combiner;
+      } else if (i == PLAYBIN_STREAM_TEXT) {
+        custom_combiner = playbin->text_stream_combiner;
+      } else if (i == PLAYBIN_STREAM_VIDEO) {
+        custom_combiner = playbin->video_stream_combiner;
+      }
+    }
   }
-  /* no selector found for the media type, don't bother linking it to a
-   * selector. This will leave the pad unlinked and thus ignored. */
-  if (select == NULL)
+  /* no combiner found for the media type, don't bother linking it to a
+   * combiner. This will leave the pad unlinked and thus ignored. */
+  if (combine == NULL)
     goto unknown_type;
 
   GST_SOURCE_GROUP_LOCK (group);
-  if (select->selector == NULL && playbin->have_selector) {
-    /* no selector, create one */
+  if (combine->combiner == NULL && playbin->have_selector) {
+    /* no combiner, create one */
     GST_DEBUG_OBJECT (playbin, "creating new input selector");
-    select->selector = gst_element_factory_make ("input-selector", NULL);
-    if (select->selector == NULL) {
-      /* post the missing selector message only once */
+    if (custom_combiner)
+      combine->combiner = custom_combiner;
+    else
+      combine->combiner = gst_element_factory_make ("input-selector", NULL);
+
+    if (combine->combiner == NULL) {
+      /* post the missing input-selector message only once */
       playbin->have_selector = FALSE;
       gst_element_post_message (GST_ELEMENT_CAST (playbin),
           gst_missing_element_message_new (GST_ELEMENT_CAST (playbin),
@@ -2794,91 +3003,113 @@
           (_("Missing element '%s' - check your GStreamer installation."),
               "input-selector"), (NULL));
     } else {
-      /* sync-mode=1, use clock */
-      if (select->type == GST_PLAY_SINK_TYPE_TEXT)
-        g_object_set (select->selector, "sync-streams", TRUE,
-            "sync-mode", 1, "cache-buffers", TRUE, NULL);
-      else
-        g_object_set (select->selector, "sync-streams", TRUE, NULL);
+      /* find out which properties the stream combiner supports */
+      combine->has_active_pad =
+          g_object_class_find_property (G_OBJECT_GET_CLASS (combine->combiner),
+          "active-pad") != NULL;
 
-      g_signal_connect (select->selector, "notify::active-pad",
-          G_CALLBACK (selector_active_pad_changed), playbin);
+      if (!custom_combiner) {
+        /* sync-mode=1, use clock */
+        if (combine->type == GST_PLAY_SINK_TYPE_TEXT)
+          g_object_set (combine->combiner, "sync-streams", TRUE,
+              "sync-mode", 1, "cache-buffers", TRUE, NULL);
+        else
+          g_object_set (combine->combiner, "sync-streams", TRUE, NULL);
+      }
 
-      GST_DEBUG_OBJECT (playbin, "adding new selector %p", select->selector);
-      gst_bin_add (GST_BIN_CAST (playbin), select->selector);
-      gst_element_set_state (select->selector, GST_STATE_PAUSED);
+      if (combine->has_active_pad)
+        g_signal_connect (combine->combiner, "notify::active-pad",
+            G_CALLBACK (combiner_active_pad_changed), playbin);
+
+      GST_DEBUG_OBJECT (playbin, "adding new stream combiner %p",
+          combine->combiner);
+      gst_element_set_state (combine->combiner, GST_STATE_PAUSED);
+      gst_bin_add (GST_BIN_CAST (playbin), combine->combiner);
     }
   }
 
-  if (select->srcpad == NULL) {
-    if (select->selector) {
-      /* save source pad of the selector */
-      select->srcpad = gst_element_get_static_pad (select->selector, "src");
+  if (combine->srcpad == NULL) {
+    if (combine->combiner) {
+      /* save source pad of the combiner */
+      combine->srcpad = gst_element_get_static_pad (combine->combiner, "src");
     } else {
-      /* no selector, use the pad as the source pad then */
-      select->srcpad = gst_object_ref (pad);
+      /* no combiner, use the pad as the source pad then */
+      combine->srcpad = gst_object_ref (pad);
     }
 
-    /* block the selector srcpad. It's possible that multiple decodebins start
-     * pushing data into the selectors before we have a chance to collect all
+    /* block the combiner srcpad. It's possible that multiple decodebins start
+     * pushing data into the combiners before we have a chance to collect all
      * streams and connect the sinks, resulting in not-linked errors. After we
      * configured the sinks we will unblock them all. */
-    GST_DEBUG_OBJECT (playbin, "blocking %" GST_PTR_FORMAT, select->srcpad);
-    select->block_id =
-        gst_pad_add_probe (select->srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+    GST_DEBUG_OBJECT (playbin, "blocking %" GST_PTR_FORMAT, combine->srcpad);
+    combine->block_id =
+        gst_pad_add_probe (combine->srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
         NULL, NULL, NULL);
   }
 
   /* get sinkpad for the new stream */
-  if (select->selector) {
-    if ((sinkpad = gst_element_get_request_pad (select->selector, "sink_%u"))) {
-      gulong notify_tags_handler = 0;
-      NotifyTagsData *ntdata;
+  if (combine->combiner) {
+    if ((sinkpad = gst_element_get_request_pad (combine->combiner, "sink_%u"))) {
 
-      GST_DEBUG_OBJECT (playbin, "got pad %s:%s from selector",
+      GST_DEBUG_OBJECT (playbin, "got pad %s:%s from combiner",
           GST_DEBUG_PAD_NAME (sinkpad));
 
-      /* store the selector for the pad */
-      g_object_set_data (G_OBJECT (sinkpad), "playbin.select", select);
+      /* find out which properties the sink pad supports */
+      combine->has_always_ok =
+          g_object_class_find_property (G_OBJECT_GET_CLASS (sinkpad),
+          "always-ok") != NULL;
+      combine->has_tags =
+          g_object_class_find_property (G_OBJECT_GET_CLASS (sinkpad),
+          "tags") != NULL;
 
-      /* connect to the notify::tags signal for our
-       * own *-tags-changed signals
-       */
-      ntdata = g_new0 (NotifyTagsData, 1);
-      ntdata->playbin = playbin;
-      ntdata->stream_id = select->channels->len;
-      ntdata->type = select->type;
+      /* store the combiner for the pad */
+      g_object_set_data (G_OBJECT (sinkpad), "playbin.combine", combine);
 
-      notify_tags_handler =
-          g_signal_connect_data (G_OBJECT (sinkpad), "notify::tags",
-          G_CALLBACK (notify_tags_cb), ntdata, (GClosureNotify) g_free,
-          (GConnectFlags) 0);
-      g_object_set_data (G_OBJECT (sinkpad), "playbin.notify_tags_handler",
-          (gpointer) (guintptr) notify_tags_handler);
+      if (combine->has_tags) {
+        gulong notify_tags_handler = 0;
+        NotifyTagsData *ntdata;
+
+        /* connect to the notify::tags signal for our
+         * own *-tags-changed signals
+         */
+        ntdata = g_new0 (NotifyTagsData, 1);
+        ntdata->playbin = playbin;
+        ntdata->stream_id = combine->channels->len;
+        ntdata->type = combine->type;
+
+        notify_tags_handler =
+            g_signal_connect_data (G_OBJECT (sinkpad), "notify::tags",
+            G_CALLBACK (notify_tags_cb), ntdata, (GClosureNotify) g_free,
+            (GConnectFlags) 0);
+        g_object_set_data (G_OBJECT (sinkpad), "playbin.notify_tags_handler",
+            (gpointer) (guintptr) notify_tags_handler);
+      }
 
       /* store the pad in the array */
       GST_DEBUG_OBJECT (playbin, "pad %p added to array", sinkpad);
-      g_ptr_array_add (select->channels, sinkpad);
+      g_ptr_array_add (combine->channels, sinkpad);
 
       res = gst_pad_link (pad, sinkpad);
       if (GST_PAD_LINK_FAILED (res))
         goto link_failed;
 
-      /* store selector pad so we can release it */
+      /* store combiner pad so we can release it */
       g_object_set_data (G_OBJECT (pad), "playbin.sinkpad", sinkpad);
 
       changed = TRUE;
-      GST_DEBUG_OBJECT (playbin, "linked pad %s:%s to selector %p",
-          GST_DEBUG_PAD_NAME (pad), select->selector);
+      GST_DEBUG_OBJECT (playbin, "linked pad %s:%s to combiner %p",
+          GST_DEBUG_PAD_NAME (pad), combine->combiner);
+    } else {
+      goto request_pad_failed;
     }
   } else {
-    /* no selector, don't configure anything, we'll link the new pad directly to
+    /* no combiner, don't configure anything, we'll link the new pad directly to
      * the sink. */
     changed = FALSE;
     sinkpad = NULL;
 
-    /* store the selector for the pad */
-    g_object_set_data (G_OBJECT (pad), "playbin.select", select);
+    /* store the combiner for the pad */
+    g_object_set_data (G_OBJECT (pad), "playbin.combine", combine);
   }
   GST_SOURCE_GROUP_UNLOCK (group);
 
@@ -2891,34 +3122,35 @@
 
   if (changed) {
     int signal;
-    gboolean always_ok = (decodebin == group->suburidecodebin);
 
-    switch (select->type) {
+    switch (combine->type) {
       case GST_PLAY_SINK_TYPE_VIDEO:
       case GST_PLAY_SINK_TYPE_VIDEO_RAW:
-        /* we want to return NOT_LINKED for unselected pads but only for pads
-         * from the normal uridecodebin. This makes sure that subtitle streams
-         * are not raced past audio/video from decodebin's multiqueue.
-         * For pads from suburidecodebin OK should always be returned, otherwise
-         * it will most likely stop. */
-        g_object_set (sinkpad, "always-ok", always_ok, NULL);
         signal = SIGNAL_VIDEO_CHANGED;
         break;
       case GST_PLAY_SINK_TYPE_AUDIO:
       case GST_PLAY_SINK_TYPE_AUDIO_RAW:
-        g_object_set (sinkpad, "always-ok", always_ok, NULL);
         signal = SIGNAL_AUDIO_CHANGED;
         break;
       case GST_PLAY_SINK_TYPE_TEXT:
-        g_object_set (sinkpad, "always-ok", always_ok, NULL);
         signal = SIGNAL_TEXT_CHANGED;
         break;
       default:
         signal = -1;
     }
 
-    if (signal >= 0)
+    if (signal >= 0) {
+      /* we want to return NOT_LINKED for unselected pads but only for pads
+       * from the normal uridecodebin. This makes sure that subtitle streams
+       * are not raced past audio/video from decodebin's multiqueue.
+       * For pads from suburidecodebin OK should always be returned, otherwise
+       * it will most likely stop. */
+      if (combine->has_always_ok) {
+        gboolean always_ok = (decodebin == group->suburidecodebin);
+        g_object_set (sinkpad, "always-ok", always_ok, NULL);
+      }
       g_signal_emit (G_OBJECT (playbin), gst_play_bin_signals[signal], 0, NULL);
+    }
   }
 
 done:
@@ -2935,22 +3167,29 @@
 link_failed:
   {
     GST_ERROR_OBJECT (playbin,
-        "failed to link pad %s:%s to selector, reason %d",
+        "failed to link pad %s:%s to combiner, reason %d",
         GST_DEBUG_PAD_NAME (pad), res);
     GST_SOURCE_GROUP_UNLOCK (group);
     goto done;
   }
+request_pad_failed:
+  GST_ELEMENT_ERROR (playbin, CORE, PAD,
+      ("Internal playbin error."),
+      ("Failed to get request pad from combiner %p.", combine->combiner));
+  GST_SOURCE_GROUP_UNLOCK (group);
+  goto done;
 }
 
 /* called when a pad is removed from the uridecodebin. We unlink the pad from
- * the selector. This will make the selector select a new pad. */
+ * the combiner. This will make the combiner select a new pad. */
 static void
 pad_removed_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
 {
   GstPlayBin *playbin;
   GstPad *peer;
-  GstElement *selector;
-  GstSourceSelect *select;
+  GstElement *combiner;
+  GstSourceCombine *combine;
+  int signal = -1;
 
   playbin = group->playbin;
 
@@ -2959,77 +3198,97 @@
 
   GST_SOURCE_GROUP_LOCK (group);
 
-  if ((select = g_object_get_data (G_OBJECT (pad), "playbin.select"))) {
-    g_assert (select->selector == NULL);
-    g_assert (select->srcpad == pad);
+  if ((combine = g_object_get_data (G_OBJECT (pad), "playbin.combine"))) {
+    g_assert (combine->combiner == NULL);
+    g_assert (combine->srcpad == pad);
     gst_object_unref (pad);
-    select->srcpad = NULL;
+    combine->srcpad = NULL;
     goto exit;
   }
 
-  /* get the selector sinkpad */
+  /* get the combiner sinkpad */
   if (!(peer = g_object_get_data (G_OBJECT (pad), "playbin.sinkpad")))
     goto not_linked;
 
-  if ((select = g_object_get_data (G_OBJECT (peer), "playbin.select"))) {
-    gulong notify_tags_handler;
+  if ((combine = g_object_get_data (G_OBJECT (peer), "playbin.combine"))) {
+    if (combine->has_tags) {
+      gulong notify_tags_handler;
 
-    notify_tags_handler =
-        (guintptr) g_object_get_data (G_OBJECT (peer),
-        "playbin.notify_tags_handler");
-    if (notify_tags_handler != 0)
-      g_signal_handler_disconnect (G_OBJECT (peer), notify_tags_handler);
-    g_object_set_data (G_OBJECT (peer), "playbin.notify_tags_handler", NULL);
+      notify_tags_handler =
+          (guintptr) g_object_get_data (G_OBJECT (peer),
+          "playbin.notify_tags_handler");
+      if (notify_tags_handler != 0)
+        g_signal_handler_disconnect (G_OBJECT (peer), notify_tags_handler);
+      g_object_set_data (G_OBJECT (peer), "playbin.notify_tags_handler", NULL);
+    }
 
     /* remove the pad from the array */
-    g_ptr_array_remove (select->channels, peer);
+    g_ptr_array_remove (combine->channels, peer);
     GST_DEBUG_OBJECT (playbin, "pad %p removed from array", peer);
 
-    if (!select->channels->len && select->selector) {
-      GST_DEBUG_OBJECT (playbin, "all selector sinkpads removed");
-      GST_DEBUG_OBJECT (playbin, "removing selector %p", select->selector);
-      gst_object_unref (select->srcpad);
-      select->srcpad = NULL;
-      gst_element_set_state (select->selector, GST_STATE_NULL);
-      gst_bin_remove (GST_BIN_CAST (playbin), select->selector);
-      select->selector = NULL;
+    /* get the correct type-changed signal */
+    switch (combine->type) {
+      case GST_PLAY_SINK_TYPE_VIDEO:
+      case GST_PLAY_SINK_TYPE_VIDEO_RAW:
+        signal = SIGNAL_VIDEO_CHANGED;
+        break;
+      case GST_PLAY_SINK_TYPE_AUDIO:
+      case GST_PLAY_SINK_TYPE_AUDIO_RAW:
+        signal = SIGNAL_AUDIO_CHANGED;
+        break;
+      case GST_PLAY_SINK_TYPE_TEXT:
+        signal = SIGNAL_TEXT_CHANGED;
+        break;
+      default:
+        signal = -1;
+    }
+
+    if (!combine->channels->len && combine->combiner) {
+      GST_DEBUG_OBJECT (playbin, "all combiner sinkpads removed");
+      GST_DEBUG_OBJECT (playbin, "removing combiner %p", combine->combiner);
+      gst_object_unref (combine->srcpad);
+      combine->srcpad = NULL;
+      gst_element_set_state (combine->combiner, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), combine->combiner);
+      combine->combiner = NULL;
     }
   }
 
   /* unlink the pad now (can fail, the pad is unlinked before it's removed) */
   gst_pad_unlink (pad, peer);
 
-  /* get selector, this can be NULL when the element is removing the pads
+  /* get combiner, this can be NULL when the element is removing the pads
    * because it's being disposed. */
-  selector = GST_ELEMENT_CAST (gst_pad_get_parent (peer));
-  if (!selector) {
+  combiner = GST_ELEMENT_CAST (gst_pad_get_parent (peer));
+  if (!combiner) {
     gst_object_unref (peer);
-    goto no_selector;
+    goto no_combiner;
   }
 
-  /* release the pad to the selector, this will make the selector choose a new
+  /* release the pad to the combiner, this will make the combiner choose a new
    * pad. */
-  gst_element_release_request_pad (selector, peer);
+  gst_element_release_request_pad (combiner, peer);
   gst_object_unref (peer);
 
-  gst_object_unref (selector);
+  gst_object_unref (combiner);
 exit:
   GST_SOURCE_GROUP_UNLOCK (group);
 
+  if (signal >= 0)
+    g_signal_emit (G_OBJECT (playbin), gst_play_bin_signals[signal], 0, NULL);
+
   return;
 
   /* ERRORS */
 not_linked:
   {
     GST_DEBUG_OBJECT (playbin, "pad not linked");
-    GST_SOURCE_GROUP_UNLOCK (group);
-    return;
+    goto exit;
   }
-no_selector:
+no_combiner:
   {
-    GST_DEBUG_OBJECT (playbin, "selector not found");
-    GST_SOURCE_GROUP_UNLOCK (group);
-    return;
+    GST_DEBUG_OBJECT (playbin, "combiner not found");
+    goto exit;
   }
 }
 
@@ -3038,7 +3297,7 @@
  * The main purpose of the code is to see if we have video/audio and subtitles
  * and pick the right pipelines to display them.
  *
- * The selectors installed on the group tell us about the presence of
+ * The combiners installed on the group tell us about the presence of
  * audio/video and subtitle streams. This allows us to see if we need
  * visualisation, video or/and audio.
  */
@@ -3058,34 +3317,34 @@
 
   GST_SOURCE_GROUP_LOCK (group);
   for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
-    GstSourceSelect *select = &group->selector[i];
+    GstSourceCombine *combine = &group->combiner[i];
 
-    /* check if the specific media type was detected and thus has a selector
+    /* check if the specific media type was detected and thus has a combiner
      * created for it. If there is the media type, get a sinkpad from the sink
      * and link it. We only do this if we have not yet requested the sinkpad
      * before. */
-    if (select->srcpad && select->sinkpad == NULL) {
-      GST_DEBUG_OBJECT (playbin, "requesting new sink pad %d", select->type);
-      select->sinkpad =
-          gst_play_sink_request_pad (playbin->playsink, select->type);
-    } else if (select->srcpad && select->sinkpad) {
-      GST_DEBUG_OBJECT (playbin, "refreshing new sink pad %d", select->type);
-      gst_play_sink_refresh_pad (playbin->playsink, select->sinkpad,
-          select->type);
-    } else if (select->sinkpad && select->srcpad == NULL) {
-      GST_DEBUG_OBJECT (playbin, "releasing sink pad %d", select->type);
-      gst_play_sink_release_pad (playbin->playsink, select->sinkpad);
-      select->sinkpad = NULL;
+    if (combine->srcpad && combine->sinkpad == NULL) {
+      GST_DEBUG_OBJECT (playbin, "requesting new sink pad %d", combine->type);
+      combine->sinkpad =
+          gst_play_sink_request_pad (playbin->playsink, combine->type);
+    } else if (combine->srcpad && combine->sinkpad) {
+      GST_DEBUG_OBJECT (playbin, "refreshing new sink pad %d", combine->type);
+      gst_play_sink_refresh_pad (playbin->playsink, combine->sinkpad,
+          combine->type);
+    } else if (combine->sinkpad && combine->srcpad == NULL) {
+      GST_DEBUG_OBJECT (playbin, "releasing sink pad %d", combine->type);
+      gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
+      combine->sinkpad = NULL;
     }
-    if (select->sinkpad && select->srcpad &&
-        !gst_pad_is_linked (select->srcpad)) {
-      res = gst_pad_link (select->srcpad, select->sinkpad);
+    if (combine->sinkpad && combine->srcpad &&
+        !gst_pad_is_linked (combine->srcpad)) {
+      res = gst_pad_link (combine->srcpad, combine->sinkpad);
       GST_DEBUG_OBJECT (playbin, "linked type %s, result: %d",
-          select->media_list[0], res);
+          combine->media_list[0], res);
       if (res != GST_PAD_LINK_OK) {
         GST_ELEMENT_ERROR (playbin, CORE, PAD,
             ("Internal playbin error."),
-            ("Failed to link selector to sink. Error %d", res));
+            ("Failed to link combiner to sink. Error %d", res));
       }
     }
   }
@@ -3127,31 +3386,32 @@
           group->video_sink);
     }
 
-    if (playbin->text_sink) {
+    if (group->text_sink) {
       GST_INFO_OBJECT (playbin, "setting custom text sink %" GST_PTR_FORMAT,
-          playbin->text_sink);
+          group->text_sink);
       gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT,
-          playbin->text_sink);
+          group->text_sink);
     }
 
     GST_SOURCE_GROUP_UNLOCK (group);
 
     /* signal the other decodebins that they can continue now. */
     GST_SOURCE_GROUP_LOCK (group);
-    /* unblock all selectors */
+    /* unblock all combiners */
     for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
-      GstSourceSelect *select = &group->selector[i];
+      GstSourceCombine *combine = &group->combiner[i];
 
-      if (select->srcpad) {
+      if (combine->srcpad) {
         GST_DEBUG_OBJECT (playbin, "unblocking %" GST_PTR_FORMAT,
-            select->srcpad);
-        if (select->block_id) {
-          gst_pad_remove_probe (select->srcpad, select->block_id);
-          select->block_id = 0;
+            combine->srcpad);
+        if (combine->block_id) {
+          gst_pad_remove_probe (combine->srcpad, combine->block_id);
+          combine->block_id = 0;
         }
       }
     }
     GST_SOURCE_GROUP_UNLOCK (group);
+    gst_play_sink_reconfigure (playbin->playsink);
   }
 
   GST_PLAY_BIN_SHUTDOWN_UNLOCK (playbin);
@@ -3161,28 +3421,28 @@
 shutdown:
   {
     GST_DEBUG ("ignoring, we are shutting down");
-    /* Request a flushing pad from playsink that we then link to the selector.
-     * Then we unblock the selectors so that they stop with a WRONG_STATE
+    /* Request a flushing pad from playsink that we then link to the combiner.
+     * Then we unblock the combiners so that they stop with a WRONG_STATE
      * instead of a NOT_LINKED error.
      */
     GST_SOURCE_GROUP_LOCK (group);
     for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
-      GstSourceSelect *select = &group->selector[i];
+      GstSourceCombine *combine = &group->combiner[i];
 
-      if (select->srcpad) {
-        if (select->sinkpad == NULL) {
+      if (combine->srcpad) {
+        if (combine->sinkpad == NULL) {
           GST_DEBUG_OBJECT (playbin, "requesting new flushing sink pad");
-          select->sinkpad =
+          combine->sinkpad =
               gst_play_sink_request_pad (playbin->playsink,
               GST_PLAY_SINK_TYPE_FLUSHING);
-          res = gst_pad_link (select->srcpad, select->sinkpad);
+          res = gst_pad_link (combine->srcpad, combine->sinkpad);
           GST_DEBUG_OBJECT (playbin, "linked flushing, result: %d", res);
         }
         GST_DEBUG_OBJECT (playbin, "unblocking %" GST_PTR_FORMAT,
-            select->srcpad);
-        if (select->block_id) {
-          gst_pad_remove_probe (select->srcpad, select->block_id);
-          select->block_id = 0;
+            combine->srcpad);
+        if (combine->block_id) {
+          gst_pad_remove_probe (combine->srcpad, combine->block_id);
+          combine->block_id = 0;
         }
       }
     }
@@ -3225,7 +3485,7 @@
       GstCaps *templcaps = gst_static_caps_get (&templ->static_caps);
 
       if (!gst_caps_is_any (templcaps)
-          && gst_caps_can_intersect (templcaps, caps)) {
+          && gst_caps_is_subset (caps, templcaps)) {
         gst_caps_unref (templcaps);
         return TRUE;
       }
@@ -3237,6 +3497,303 @@
   return FALSE;
 }
 
+static void
+avelements_free (gpointer avelement)
+{
+  GstAVElement *elm = (GstAVElement *) avelement;
+
+  if (elm->dec)
+    gst_object_unref (elm->dec);
+  if (elm->sink)
+    gst_object_unref (elm->sink);
+  g_slice_free (GstAVElement, elm);
+}
+
+static gint
+avelement_compare_decoder (gconstpointer p1, gconstpointer p2,
+    gpointer user_data)
+{
+  GstAVElement *v1, *v2;
+
+  v1 = (GstAVElement *) p1;
+  v2 = (GstAVElement *) p2;
+
+  return strcmp (GST_OBJECT_NAME (v1->dec), GST_OBJECT_NAME (v2->dec));
+}
+
+static gint
+avelement_lookup_decoder (gconstpointer p1, gconstpointer p2,
+    gpointer user_data)
+{
+  GstAVElement *v1;
+  GstElementFactory *f2;
+
+  v1 = (GstAVElement *) p1;
+  f2 = (GstElementFactory *) p2;
+
+  return strcmp (GST_OBJECT_NAME (v1->dec), GST_OBJECT_NAME (f2));
+}
+
+static gint
+avelement_compare (gconstpointer p1, gconstpointer p2)
+{
+  GstAVElement *v1, *v2;
+  GstPluginFeature *fd1, *fd2, *fs1, *fs2;
+  gint64 diff, v1_rank, v2_rank;
+
+  v1 = (GstAVElement *) p1;
+  v2 = (GstAVElement *) p2;
+
+  fs1 = (GstPluginFeature *) v1->sink;
+  fs2 = (GstPluginFeature *) v2->sink;
+  fd1 = (GstPluginFeature *) v1->dec;
+  fd2 = (GstPluginFeature *) v2->dec;
+
+  v1_rank =
+      gst_plugin_feature_get_rank (fd1) * gst_plugin_feature_get_rank (fs1);
+  v2_rank =
+      gst_plugin_feature_get_rank (fd2) * gst_plugin_feature_get_rank (fs2);
+
+  /* comparison based on the rank */
+  diff = v2_rank - v1_rank;
+  if (diff < 0)
+    return -1;
+  else if (diff > 0)
+    return 1;
+
+  /* comparison based on number of common caps features */
+  diff = v2->n_comm_cf - v1->n_comm_cf;
+  if (diff != 0)
+    return diff;
+
+  /* comparison based on the name of sink elements */
+  diff = strcmp (GST_OBJECT_NAME (fs1), GST_OBJECT_NAME (fs2));
+  if (diff != 0)
+    return diff;
+
+  /* comparison based on the name of decoder elements */
+  return strcmp (GST_OBJECT_NAME (fd1), GST_OBJECT_NAME (fd2));
+}
+
+/* unref the caps after usage */
+static GstCaps *
+get_template_caps (GstElementFactory * factory, GstPadDirection direction)
+{
+  const GList *templates;
+  GstStaticPadTemplate *templ = NULL;
+  GList *walk;
+
+  templates = gst_element_factory_get_static_pad_templates (factory);
+  for (walk = (GList *) templates; walk; walk = g_list_next (walk)) {
+    templ = walk->data;
+    if (templ->direction == direction)
+      break;
+  }
+  if (templ)
+    return gst_static_caps_get (&templ->static_caps);
+  else
+    return NULL;
+}
+
+static gboolean
+is_included (GList * list, GstCapsFeatures * cf)
+{
+  for (; list; list = list->next) {
+    if (gst_caps_features_is_equal ((GstCapsFeatures *) list->data, cf))
+      return TRUE;
+  }
+  return FALSE;
+}
+
+/* compute the number of common caps features */
+static guint
+get_n_common_capsfeatures (GstElementFactory * dec, GstElementFactory * sink)
+{
+  GstCaps *d_tmpl_caps, *s_tmpl_caps;
+  GstCapsFeatures *d_features, *s_features;
+  GstStructure *d_struct, *s_struct;
+  GList *cf_list = NULL;
+  guint d_caps_size, s_caps_size;
+  guint i, j, n_common_cf = 0;
+
+  d_tmpl_caps = get_template_caps (dec, GST_PAD_SRC);
+  s_tmpl_caps = get_template_caps (sink, GST_PAD_SINK);
+
+  if (!d_tmpl_caps || !s_tmpl_caps) {
+    GST_ERROR ("Failed to get template caps from decoder or sink");
+    return 0;
+  }
+
+  d_caps_size = gst_caps_get_size (d_tmpl_caps);
+  s_caps_size = gst_caps_get_size (s_tmpl_caps);
+
+  for (i = 0; i < d_caps_size; i++) {
+    d_features = gst_caps_get_features ((const GstCaps *) d_tmpl_caps, i);
+    d_struct = gst_caps_get_structure ((const GstCaps *) d_tmpl_caps, i);
+    for (j = 0; j < s_caps_size; j++) {
+      s_features = gst_caps_get_features ((const GstCaps *) s_tmpl_caps, j);
+      s_struct = gst_caps_get_structure ((const GstCaps *) s_tmpl_caps, j);
+      if (gst_structure_can_intersect (d_struct, s_struct) &&
+          gst_caps_features_is_equal (d_features, s_features) &&
+          !is_included (cf_list, s_features)) {
+        cf_list = g_list_prepend (cf_list, s_features);
+        n_common_cf++;
+      }
+    }
+  }
+  if (cf_list)
+    g_list_free (cf_list);
+
+  gst_caps_unref (d_tmpl_caps);
+  gst_caps_unref (s_tmpl_caps);
+
+  return n_common_cf;
+}
+
+static GSequence *
+avelements_create (GstPlayBin * playbin, gboolean isaudioelement)
+{
+  GstElementFactory *d_factory, *s_factory;
+  GList *dec_list, *sink_list, *dl, *sl;
+  GSequence *ave_seq = NULL;
+  GstAVElement *ave;
+  guint n_common_cf = 0;
+
+  if (isaudioelement) {
+    sink_list = gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_SINK |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO, GST_RANK_MARGINAL);
+    dec_list =
+        gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECODER
+        | GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO, GST_RANK_MARGINAL);
+  } else {
+    sink_list = gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_SINK |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE, GST_RANK_MARGINAL);
+
+    dec_list =
+        gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECODER
+        | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE, GST_RANK_MARGINAL);
+  }
+
+  /* create a list of audio/video elements. Each element in the list
+   * is holding an audio/video decoder and an auido/video sink in which
+   * the decoders srcpad template caps and sink element's sinkpad template
+   * caps are compatible */
+  dl = dec_list;
+  sl = sink_list;
+
+  ave_seq = g_sequence_new ((GDestroyNotify) avelements_free);
+
+  for (; dl; dl = dl->next) {
+    d_factory = (GstElementFactory *) dl->data;
+    for (; sl; sl = sl->next) {
+      s_factory = (GstElementFactory *) sl->data;
+
+      n_common_cf = get_n_common_capsfeatures (d_factory, s_factory);
+      if (n_common_cf < 1)
+        continue;
+
+      ave = g_slice_new (GstAVElement);
+      ave->dec = gst_object_ref (d_factory);
+      ave->sink = gst_object_ref (s_factory);
+      ave->n_comm_cf = n_common_cf;
+      g_sequence_append (ave_seq, ave);
+    }
+    sl = sink_list;
+  }
+  g_sequence_sort (ave_seq, (GCompareDataFunc) avelement_compare_decoder, NULL);
+
+  gst_plugin_feature_list_free (dec_list);
+  gst_plugin_feature_list_free (sink_list);
+
+  return ave_seq;
+}
+
+static gboolean
+avelement_iter_is_equal (GSequenceIter * iter, GstElementFactory * factory)
+{
+  GstAVElement *ave;
+
+  if (!iter)
+    return FALSE;
+
+  ave = g_sequence_get (iter);
+  if (!ave)
+    return FALSE;
+
+  return strcmp (GST_OBJECT_NAME (ave->dec), GST_OBJECT_NAME (factory)) == 0;
+}
+
+static GList *
+create_decoders_list (GList * factory_list, GSequence * avelements)
+{
+  GList *dec_list = NULL, *tmp;
+  GList *ave_list = NULL;
+  GstAVElement *ave, *best_ave;
+
+  g_return_val_if_fail (factory_list != NULL, NULL);
+  g_return_val_if_fail (avelements != NULL, NULL);
+
+  for (tmp = factory_list; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = (GstElementFactory *) tmp->data;
+
+    /* if there are parsers or sink elements, add them first */
+    if (!gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_DECODER)) {
+      dec_list = g_list_prepend (dec_list, factory);
+    } else {
+      GSequenceIter *seq_iter;
+
+      seq_iter =
+          g_sequence_lookup (avelements, factory,
+          (GCompareDataFunc) avelement_lookup_decoder, NULL);
+      if (!seq_iter) {
+        dec_list = g_list_prepend (dec_list, factory);
+        continue;
+      }
+
+      /* Go to first iter with that decoder */
+      do {
+        GSequenceIter *tmp_seq_iter;
+
+        tmp_seq_iter = g_sequence_iter_prev (seq_iter);
+        if (!avelement_iter_is_equal (tmp_seq_iter, factory))
+          break;
+        seq_iter = tmp_seq_iter;
+      } while (!g_sequence_iter_is_begin (seq_iter));
+
+      /* Get the best ranked GstAVElement for that factory */
+      best_ave = NULL;
+      while (!g_sequence_iter_is_end (seq_iter)
+          && avelement_iter_is_equal (seq_iter, factory)) {
+        ave = g_sequence_get (seq_iter);
+
+        if (!best_ave || avelement_compare (ave, best_ave) < 0)
+          best_ave = ave;
+
+        seq_iter = g_sequence_iter_next (seq_iter);
+      }
+      ave_list = g_list_prepend (ave_list, best_ave);
+    }
+  }
+
+  /* Sort all GstAVElements by their relative ranks and insert
+   * into the decoders list */
+  ave_list = g_list_sort (ave_list, (GCompareFunc) avelement_compare);
+  for (tmp = ave_list; tmp; tmp = tmp->next) {
+    ave = (GstAVElement *) tmp->data;
+    dec_list = g_list_prepend (dec_list, ave->dec);
+  }
+  g_list_free (ave_list);
+
+  dec_list = g_list_reverse (dec_list);
+
+  return dec_list;
+}
+
 /* Called when we must provide a list of factories to plug to @pad with @caps.
  * We first check if we have a sink that can handle the format and if we do, we
  * return NULL, to expose the pad. If we have no sink (or the sink does not
@@ -3246,8 +3803,16 @@
     GstCaps * caps, GstSourceGroup * group)
 {
   GstPlayBin *playbin;
-  GList *mylist, *tmp;
+  GList *factory_list, *tmp;
   GValueArray *result;
+  gboolean unref_caps = FALSE;
+  gboolean isaudiodeclist = FALSE;
+  gboolean isvideodeclist = FALSE;
+
+  if (!caps) {
+    caps = gst_caps_new_any ();
+    unref_caps = TRUE;
+  }
 
   playbin = group->playbin;
 
@@ -3257,16 +3822,48 @@
   /* filter out the elements based on the caps. */
   g_mutex_lock (&playbin->elements_lock);
   gst_play_bin_update_elements_list (playbin);
-  mylist =
+  factory_list =
       gst_element_factory_list_filter (playbin->elements, caps, GST_PAD_SINK,
-      FALSE);
+      gst_caps_is_fixed (caps));
   g_mutex_unlock (&playbin->elements_lock);
 
-  GST_DEBUG_OBJECT (playbin, "found factories %p", mylist);
-  GST_PLUGIN_FEATURE_LIST_DEBUG (mylist);
+  GST_DEBUG_OBJECT (playbin, "found factories %p", factory_list);
+  GST_PLUGIN_FEATURE_LIST_DEBUG (factory_list);
+
+  /* check whether the caps are asking for a list of audio/video decoders */
+  tmp = factory_list;
+  if (!gst_caps_is_any (caps)) {
+    for (; tmp; tmp = tmp->next) {
+      GstElementFactory *factory = (GstElementFactory *) tmp->data;
+
+      isvideodeclist = gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_DECODER |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE);
+      isaudiodeclist = gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_DECODER |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO);
+
+      if (isaudiodeclist || isvideodeclist)
+        break;
+    }
+  }
+
+  if (isaudiodeclist || isvideodeclist) {
+    GSequence **ave_list;
+    if (isaudiodeclist)
+      ave_list = &playbin->aelements;
+    else
+      ave_list = &playbin->velements;
+
+    g_mutex_lock (&playbin->elements_lock);
+    /* sort factory_list based on the GstAVElement list priority */
+    factory_list = create_decoders_list (factory_list, *ave_list);
+    g_mutex_unlock (&playbin->elements_lock);
+  }
 
   /* 2 additional elements for the already set audio/video sinks */
-  result = g_value_array_new (g_list_length (mylist) + 2);
+  result = g_value_array_new (g_list_length (factory_list) + 2);
 
   /* Check if we already have an audio/video sink and if this is the case
    * put it as the first element of the array */
@@ -3296,7 +3893,7 @@
     }
   }
 
-  for (tmp = mylist; tmp; tmp = tmp->next) {
+  for (tmp = factory_list; tmp; tmp = tmp->next) {
     GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (tmp->data);
     GValue val = { 0, };
 
@@ -3316,11 +3913,123 @@
     g_value_array_append (result, &val);
     g_value_unset (&val);
   }
-  gst_plugin_feature_list_free (mylist);
+  gst_plugin_feature_list_free (factory_list);
+
+  if (unref_caps)
+    gst_caps_unref (caps);
 
   return result;
 }
 
+static void
+gst_play_bin_set_context (GstElement * element, GstContext * context)
+{
+  GstPlayBin *playbin = GST_PLAY_BIN (element);
+
+  /* Proxy contexts to the sinks, they might not be in playsink yet */
+  GST_PLAY_BIN_LOCK (playbin);
+  if (playbin->audio_sink)
+    gst_element_set_context (playbin->audio_sink, context);
+  if (playbin->video_sink)
+    gst_element_set_context (playbin->video_sink, context);
+  if (playbin->text_sink)
+    gst_element_set_context (playbin->text_sink, context);
+
+  GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+
+  if (playbin->curr_group->audio_sink)
+    gst_element_set_context (playbin->curr_group->audio_sink, context);
+  if (playbin->curr_group->video_sink)
+    gst_element_set_context (playbin->curr_group->video_sink, context);
+  if (playbin->curr_group->text_sink)
+    gst_element_set_context (playbin->curr_group->text_sink, context);
+
+  GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+  GST_PLAY_BIN_UNLOCK (playbin);
+
+  GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
+}
+
+/* Pass sink messages to the application, e.g. NEED_CONTEXT messages */
+static GstBusSyncReply
+activate_sink_bus_handler (GstBus * bus, GstMessage * msg, GstPlayBin * playbin)
+{
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
+    /* Only proxy errors from a fixed sink. If that fails we can just error out
+     * early as stuff will fail later anyway */
+    if (playbin->audio_sink
+        && gst_object_has_ancestor (GST_MESSAGE_SRC (msg),
+            GST_OBJECT_CAST (playbin->audio_sink)))
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    else if (playbin->video_sink
+        && gst_object_has_ancestor (GST_MESSAGE_SRC (msg),
+            GST_OBJECT_CAST (playbin->video_sink)))
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    else if (playbin->text_sink
+        && gst_object_has_ancestor (GST_MESSAGE_SRC (msg),
+            GST_OBJECT_CAST (playbin->text_sink)))
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    else
+      gst_message_unref (msg);
+  } else {
+    gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+  }
+
+  /* Doesn't really matter, nothing is using this bus */
+  return GST_BUS_DROP;
+}
+
+static gboolean
+activate_sink (GstPlayBin * playbin, GstElement * sink, gboolean * activated)
+{
+  GstState state;
+  GstBus *bus = NULL;
+  GstStateChangeReturn sret;
+  gboolean ret = FALSE;
+  GstContext *context;
+
+  if (activated)
+    *activated = FALSE;
+
+  GST_OBJECT_LOCK (sink);
+  state = GST_STATE (sink);
+  GST_OBJECT_UNLOCK (sink);
+  if (state >= GST_STATE_READY) {
+    ret = TRUE;
+    goto done;
+  }
+
+  /* Proxy the playbin context to the sink, just in case */
+  context = gst_element_get_context (GST_ELEMENT_CAST (playbin));
+  if (context) {
+    gst_element_set_context (sink, context);
+    gst_context_unref (context);
+  }
+
+  if (!GST_OBJECT_PARENT (sink)) {
+    bus = gst_bus_new ();
+    gst_bus_set_sync_handler (bus,
+        (GstBusSyncHandler) activate_sink_bus_handler, playbin, NULL);
+    gst_element_set_bus (sink, bus);
+  }
+
+  sret = gst_element_set_state (sink, GST_STATE_READY);
+  if (sret == GST_STATE_CHANGE_FAILURE)
+    goto done;
+
+  if (activated)
+    *activated = TRUE;
+  ret = TRUE;
+
+done:
+  if (bus) {
+    gst_element_set_bus (sink, NULL);
+    gst_object_unref (bus);
+  }
+
+  return ret;
+}
+
 /* autoplug-continue decides, if a pad has raw caps that can be exposed
  * directly or if further decoding is necessary. We use this to expose
  * supported subtitles directly */
@@ -3338,17 +4047,11 @@
 
   GST_SOURCE_GROUP_LOCK (group);
 
-  if ((sink = group->playbin->text_sink))
+  if ((sink = group->text_sink))
     sinkpad = gst_element_get_static_pad (sink, "sink");
   if (sinkpad) {
     GstCaps *sinkcaps;
 
-    /* Ignore errors here, if a custom sink fails to go
-     * to READY things are wrong and will error out later
-     */
-    if (GST_STATE (sink) < GST_STATE_READY)
-      gst_element_set_state (sink, GST_STATE_READY);
-
     sinkcaps = gst_pad_query_caps (sinkpad, NULL);
     if (!gst_caps_is_any (sinkcaps))
       ret = !gst_pad_query_accept_caps (sinkpad, caps);
@@ -3375,12 +4078,6 @@
     if (sinkpad) {
       GstCaps *sinkcaps;
 
-      /* Ignore errors here, if a custom sink fails to go
-       * to READY things are wrong and will error out later
-       */
-      if (GST_STATE (sink) < GST_STATE_READY)
-        gst_element_set_state (sink, GST_STATE_READY);
-
       sinkcaps = gst_pad_query_caps (sinkpad, NULL);
       if (!gst_caps_is_any (sinkcaps))
         ret = !gst_pad_query_accept_caps (sinkpad, caps);
@@ -3396,12 +4093,6 @@
     if (sinkpad) {
       GstCaps *sinkcaps;
 
-      /* Ignore errors here, if a custom sink fails to go
-       * to READY things are wrong and will error out later
-       */
-      if (GST_STATE (sink) < GST_STATE_READY)
-        gst_element_set_state (sink, GST_STATE_READY);
-
       sinkcaps = gst_pad_query_caps (sinkpad, NULL);
       if (!gst_caps_is_any (sinkcaps))
         ret = !gst_pad_query_accept_caps (sinkpad, caps);
@@ -3421,19 +4112,10 @@
 }
 
 static gboolean
-sink_accepts_caps (GstElement * sink, GstCaps * caps)
+sink_accepts_caps (GstPlayBin * playbin, GstElement * sink, GstCaps * caps)
 {
   GstPad *sinkpad;
 
-  /* ... activate it ... We do this before adding it to the bin so that we
-   * don't accidentally make it post error messages that will stop
-   * everything. */
-  if (GST_STATE (sink) < GST_STATE_READY &&
-      gst_element_set_state (sink,
-          GST_STATE_READY) == GST_STATE_CHANGE_FAILURE) {
-    return FALSE;
-  }
-
   if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
     /* Got the sink pad, now let's see if the element actually does accept the
      * caps that we have */
@@ -3463,6 +4145,10 @@
   const gchar *klass;
   GstPlaySinkType type;
   GstElement **sinkp;
+  GList *ave_list = NULL, *l;
+  GstAVElement *ave = NULL;
+  GSequence *ave_seq = NULL;
+  GSequenceIter *seq_iter;
 
   playbin = group->playbin;
 
@@ -3483,66 +4169,154 @@
         GST_ELEMENT_FACTORY_TYPE_DECODER |
         GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO);
 
-    /* If it is a decoder and we have a fixed sink for the media
-     * type it outputs, check that the decoder is compatible with this sink */
-    if ((isvideodec && group->video_sink) || (isaudiodec && group->audio_sink)) {
-      gboolean compatible = TRUE;
-      GstPad *sinkpad;
-      GstCaps *caps;
-      GstElement *sink;
+    if (!isvideodec && !isaudiodec)
+      return GST_AUTOPLUG_SELECT_TRY;
 
-      if (isaudiodec)
-        sink = group->audio_sink;
-      else
-        sink = group->video_sink;
+    GST_SOURCE_GROUP_LOCK (group);
+    g_mutex_lock (&playbin->elements_lock);
 
-      if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
-        GstPlayFlags flags = gst_play_bin_get_flags (playbin);
-        GstCaps *raw_caps =
-            (isaudiodec) ? gst_static_caps_get (&raw_audio_caps) :
-            gst_static_caps_get (&raw_video_caps);
+    if (isaudiodec) {
+      ave_seq = playbin->aelements;
+      sinkp = &group->audio_sink;
+    } else {
+      ave_seq = playbin->velements;
+      sinkp = &group->video_sink;
+    }
 
-        caps = gst_pad_query_caps (sinkpad, NULL);
+    seq_iter =
+        g_sequence_lookup (ave_seq, factory,
+        (GCompareDataFunc) avelement_lookup_decoder, NULL);
+    if (seq_iter) {
+      /* Go to first iter with that decoder */
+      do {
+        GSequenceIter *tmp_seq_iter;
 
-        /* If the sink supports raw audio/video, we first check
-         * if the decoder could output any raw audio/video format
-         * and assume it is compatible with the sink then. We don't
-         * do a complete compatibility check here if converters
-         * are plugged between the decoder and the sink because
-         * the converters will convert between raw formats and
-         * even if the decoder format is not supported by the decoder
-         * a converter will convert it.
-         *
-         * We assume here that the converters can convert between
-         * any raw format.
-         */
-        if ((isaudiodec && !(flags & GST_PLAY_FLAG_NATIVE_AUDIO)
-                && gst_caps_can_intersect (caps, raw_caps)) || (!isaudiodec
-                && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO)
-                && gst_caps_can_intersect (caps, raw_caps))) {
-          compatible = gst_element_factory_can_src_any_caps (factory, raw_caps)
-              || gst_element_factory_can_src_any_caps (factory, caps);
-        } else {
-          compatible = gst_element_factory_can_src_any_caps (factory, caps);
-        }
+        tmp_seq_iter = g_sequence_iter_prev (seq_iter);
+        if (!avelement_iter_is_equal (tmp_seq_iter, factory))
+          break;
+        seq_iter = tmp_seq_iter;
+      } while (!g_sequence_iter_is_begin (seq_iter));
 
-        gst_object_unref (sinkpad);
-        gst_caps_unref (caps);
+      while (!g_sequence_iter_is_end (seq_iter)
+          && avelement_iter_is_equal (seq_iter, factory)) {
+        ave = g_sequence_get (seq_iter);
+        ave_list = g_list_prepend (ave_list, ave);
+        seq_iter = g_sequence_iter_next (seq_iter);
       }
 
-      if (compatible)
-        return GST_AUTOPLUG_SELECT_TRY;
+      /* Sort all GstAVElements by their relative ranks and insert
+       * into the decoders list */
+      ave_list = g_list_sort (ave_list, (GCompareFunc) avelement_compare);
+    } else {
+      ave_list = g_list_prepend (ave_list, NULL);
+    }
 
-      GST_DEBUG_OBJECT (playbin, "%s not compatible with the fixed sink",
-          GST_OBJECT_NAME (factory));
+    /* if it is a decoder and we don't have a fixed sink, then find out 
+     * the matching audio/video sink from GstAVElements list */
+    for (l = ave_list; l; l = l->next) {
+      gboolean created_sink = FALSE;
 
-      return GST_AUTOPLUG_SELECT_SKIP;
-    } else
-      return GST_AUTOPLUG_SELECT_TRY;
+      ave = (GstAVElement *) l->data;
+
+      if (((isaudiodec && !group->audio_sink) ||
+              (isvideodec && !group->video_sink))) {
+        if (ave && ave->sink) {
+          GST_DEBUG_OBJECT (playbin,
+              "Trying to create sink '%s' for decoder '%s'",
+              gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (ave->sink)),
+              gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+          if ((*sinkp = gst_element_factory_create (ave->sink, NULL)) == NULL) {
+            GST_WARNING_OBJECT (playbin,
+                "Could not create an element from %s",
+                gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (ave->sink)));
+            continue;
+          } else {
+            if (!activate_sink (playbin, *sinkp, NULL)) {
+              gst_object_unref (*sinkp);
+              GST_WARNING_OBJECT (playbin,
+                  "Could not activate sink %s",
+                  gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (ave->sink)));
+              continue;
+            }
+            gst_object_ref_sink (*sinkp);
+            created_sink = TRUE;
+          }
+        }
+      }
+
+      /* If it is a decoder and we have a fixed sink for the media
+       * type it outputs, check that the decoder is compatible with this sink */
+      if ((isaudiodec && group->audio_sink) || (isvideodec
+              && group->video_sink)) {
+        gboolean compatible = FALSE;
+        GstPad *sinkpad;
+        GstCaps *caps;
+        GstElement *sink;
+
+        sink = *sinkp;
+
+        if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
+          GstPlayFlags flags = gst_play_bin_get_flags (playbin);
+          GstCaps *raw_caps =
+              (isaudiodec) ? gst_static_caps_get (&raw_audio_caps) :
+              gst_static_caps_get (&raw_video_caps);
+
+          caps = gst_pad_query_caps (sinkpad, NULL);
+
+          /* If the sink supports raw audio/video, we first check
+           * if the decoder could output any raw audio/video format
+           * and assume it is compatible with the sink then. We don't
+           * do a complete compatibility check here if converters
+           * are plugged between the decoder and the sink because
+           * the converters will convert between raw formats and
+           * even if the decoder format is not supported by the decoder
+           * a converter will convert it.
+           *
+           * We assume here that the converters can convert between
+           * any raw format.
+           */
+          if ((isaudiodec && !(flags & GST_PLAY_FLAG_NATIVE_AUDIO)
+                  && gst_caps_can_intersect (caps, raw_caps)) || (!isaudiodec
+                  && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO)
+                  && gst_caps_can_intersect (caps, raw_caps))) {
+            compatible =
+                gst_element_factory_can_src_any_caps (factory, raw_caps)
+                || gst_element_factory_can_src_any_caps (factory, caps);
+          } else {
+            compatible = gst_element_factory_can_src_any_caps (factory, caps);
+          }
+
+          gst_object_unref (sinkpad);
+          gst_caps_unref (caps);
+        }
+
+        if (compatible)
+          break;
+
+        GST_DEBUG_OBJECT (playbin, "%s not compatible with the fixed sink",
+            GST_OBJECT_NAME (factory));
+
+        /* If it is not compatible, either continue with the next possible
+         * sink or if we have a fixed sink, skip the decoder */
+        if (created_sink) {
+          gst_element_set_state (*sinkp, GST_STATE_NULL);
+          gst_object_unref (*sinkp);
+          *sinkp = NULL;
+        } else {
+          g_mutex_unlock (&playbin->elements_lock);
+          GST_SOURCE_GROUP_UNLOCK (group);
+          return GST_AUTOPLUG_SELECT_SKIP;
+        }
+      }
+    }
+    g_list_free (ave_list);
+    g_mutex_unlock (&playbin->elements_lock);
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return GST_AUTOPLUG_SELECT_TRY;
   }
 
   /* it's a sink, see if an instance of it actually works */
-  GST_DEBUG_OBJECT (playbin, "we found a sink");
+  GST_DEBUG_OBJECT (playbin, "we found a sink '%s'", GST_OBJECT_NAME (factory));
 
   klass =
       gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS);
@@ -3576,7 +4350,7 @@
   if (*sinkp) {
     GstElement *sink = gst_object_ref (*sinkp);
 
-    if (sink_accepts_caps (sink, caps)) {
+    if (sink_accepts_caps (playbin, sink, caps)) {
       GST_DEBUG_OBJECT (playbin,
           "Existing sink '%s' accepts caps: %" GST_PTR_FORMAT,
           GST_ELEMENT_NAME (sink), caps);
@@ -3592,18 +4366,29 @@
       return GST_AUTOPLUG_SELECT_SKIP;
     }
   }
-  GST_DEBUG_OBJECT (playbin, "we have no pending sink, try to create one");
+  GST_DEBUG_OBJECT (playbin, "we have no pending sink, try to create '%s'",
+      gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
 
-  if ((element = gst_element_factory_create (factory, NULL)) == NULL) {
+  if ((*sinkp = gst_element_factory_create (factory, NULL)) == NULL) {
     GST_WARNING_OBJECT (playbin, "Could not create an element from %s",
         gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
     GST_SOURCE_GROUP_UNLOCK (group);
     return GST_AUTOPLUG_SELECT_SKIP;
   }
 
+  element = *sinkp;
+
+  if (!activate_sink (playbin, element, NULL)) {
+    GST_WARNING_OBJECT (playbin, "Could not activate sink %s",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return GST_AUTOPLUG_SELECT_SKIP;
+  }
+
   /* Check if the selected sink actually supports the
    * caps and can be set to READY*/
-  if (!sink_accepts_caps (element, caps)) {
+  if (!sink_accepts_caps (playbin, element, caps)) {
+    *sinkp = NULL;
     gst_element_set_state (element, GST_STATE_NULL);
     gst_object_unref (element);
     GST_SOURCE_GROUP_UNLOCK (group);
@@ -3617,7 +4402,6 @@
    * reconfigure the sink */
   GST_DEBUG_OBJECT (playbin, "remember sink");
   gst_object_ref_sink (element);
-  *sinkp = element;
   GST_SOURCE_GROUP_UNLOCK (group);
 
   /* tell decodebin to expose the pad because we are going to use this
@@ -3627,6 +4411,270 @@
   return GST_AUTOPLUG_SELECT_EXPOSE;
 }
 
+static gboolean
+autoplug_query_caps (GstElement * uridecodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstSourceGroup * group)
+{
+  GstCaps *filter, *result = NULL;
+  GstElement *sink;
+  GstPad *sinkpad = NULL;
+  GstElementFactory *factory;
+  GstElementFactoryListType factory_type;
+  gboolean have_sink = FALSE;
+
+  GST_SOURCE_GROUP_LOCK (group);
+  gst_query_parse_caps (query, &filter);
+
+  factory = gst_element_get_factory (element);
+  if (!factory)
+    goto done;
+
+  if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+    factory_type =
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE;
+
+    /* If this is from the subtitle uridecodebin we don't need to
+     * check the audio and video sink */
+    if (group->suburidecodebin
+        && gst_object_has_ancestor (GST_OBJECT_CAST (pad),
+            GST_OBJECT_CAST (group->suburidecodebin))) {
+      goto done;
+    }
+
+    if ((sink = group->video_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        GstCaps *sinkcaps;
+
+        sinkcaps = gst_pad_query_caps (sinkpad, filter);
+        if (!gst_caps_is_any (sinkcaps)) {
+          if (!result)
+            result = sinkcaps;
+          else
+            result = gst_caps_merge (result, sinkcaps);
+        } else {
+          gst_caps_unref (sinkcaps);
+        }
+        gst_object_unref (sinkpad);
+      }
+      have_sink = TRUE;
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+    factory_type = GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO;
+
+    /* If this is from the subtitle uridecodebin we don't need to
+     * check the audio and video sink */
+    if (group->suburidecodebin
+        && gst_object_has_ancestor (GST_OBJECT_CAST (pad),
+            GST_OBJECT_CAST (group->suburidecodebin))) {
+      goto done;
+    }
+
+    if ((sink = group->audio_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        GstCaps *sinkcaps;
+
+        sinkcaps = gst_pad_query_caps (sinkpad, filter);
+        if (!gst_caps_is_any (sinkcaps)) {
+          if (!result)
+            result = sinkcaps;
+          else
+            result = gst_caps_merge (result, sinkcaps);
+        } else {
+          gst_caps_unref (sinkcaps);
+        }
+        gst_object_unref (sinkpad);
+      }
+      have_sink = TRUE;
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE)) {
+    factory_type = GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE;
+
+    if ((sink = group->playbin->text_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        GstCaps *sinkcaps;
+
+        sinkcaps = gst_pad_query_caps (sinkpad, filter);
+        if (!gst_caps_is_any (sinkcaps)) {
+          if (!result)
+            result = sinkcaps;
+          else
+            result = gst_caps_merge (result, sinkcaps);
+        } else {
+          gst_caps_unref (sinkcaps);
+        }
+        gst_object_unref (sinkpad);
+      }
+      have_sink = TRUE;
+    } else {
+      GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
+      if (!result)
+        result = subcaps;
+      else
+        result = gst_caps_merge (result, subcaps);
+    }
+  } else {
+    goto done;
+  }
+
+  if (!have_sink) {
+    GValueArray *factories;
+    gint i, n;
+
+    factories = autoplug_factories_cb (uridecodebin, pad, NULL, group);
+    n = factories->n_values;
+    for (i = 0; i < n; i++) {
+      GValue *v = g_value_array_get_nth (factories, i);
+      GstElementFactory *f = g_value_get_object (v);
+      const GList *templates;
+      const GList *l;
+      GstCaps *templ_caps;
+
+      if (!gst_element_factory_list_is_type (f, factory_type))
+        continue;
+
+      templates = gst_element_factory_get_static_pad_templates (f);
+
+      for (l = templates; l; l = l->next) {
+        templ_caps = gst_static_pad_template_get_caps (l->data);
+
+        if (!gst_caps_is_any (templ_caps)) {
+          if (!result)
+            result = templ_caps;
+          else
+            result = gst_caps_merge (result, templ_caps);
+        } else {
+          gst_caps_unref (templ_caps);
+        }
+      }
+    }
+    g_value_array_free (factories);
+  }
+
+done:
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  if (!result)
+    return FALSE;
+
+  /* Add the actual decoder/parser/etc caps at the very end to
+   * make sure we don't cause empty caps to be returned, e.g.
+   * if a parser asks us but a decoder is required after it
+   * because no sink can handle the format directly.
+   */
+  {
+    GstPad *target = gst_ghost_pad_get_target (GST_GHOST_PAD (pad));
+
+    if (target) {
+      result = gst_caps_merge (result, gst_pad_get_pad_template_caps (target));
+      gst_object_unref (target);
+    }
+  }
+
+  if (filter) {
+    GstCaps *intersection =
+        gst_caps_intersect_full (filter, result, GST_CAPS_INTERSECT_FIRST);
+    gst_caps_unref (result);
+    result = intersection;
+  }
+
+  gst_query_set_caps_result (query, result);
+  gst_caps_unref (result);
+
+  return TRUE;
+}
+
+static gboolean
+autoplug_query_context (GstElement * uridecodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstSourceGroup * group)
+{
+  GstElement *sink;
+  GstPad *sinkpad = NULL;
+  GstElementFactory *factory;
+  gboolean res = FALSE;
+
+  GST_SOURCE_GROUP_LOCK (group);
+
+  factory = gst_element_get_factory (element);
+  if (!factory)
+    goto done;
+
+  if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+    /* If this is from the subtitle uridecodebin we don't need to
+     * check the audio and video sink */
+    if (group->suburidecodebin
+        && gst_object_has_ancestor (GST_OBJECT_CAST (pad),
+            GST_OBJECT_CAST (group->suburidecodebin))) {
+      goto done;
+    }
+
+    if ((sink = group->video_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        res = gst_pad_query (sinkpad, query);
+        gst_object_unref (sinkpad);
+      }
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+    /* If this is from the subtitle uridecodebin we don't need to
+     * check the audio and video sink */
+    if (group->suburidecodebin
+        && gst_object_has_ancestor (GST_OBJECT_CAST (pad),
+            GST_OBJECT_CAST (group->suburidecodebin))) {
+      goto done;
+    }
+
+    if ((sink = group->audio_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        res = gst_pad_query (sinkpad, query);
+        gst_object_unref (sinkpad);
+      }
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE)) {
+    if ((sink = group->playbin->text_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        res = gst_pad_query (sinkpad, query);
+        gst_object_unref (sinkpad);
+      }
+    }
+  } else {
+    goto done;
+  }
+
+done:
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  return res;
+}
+
+static gboolean
+autoplug_query_cb (GstElement * uridecodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstSourceGroup * group)
+{
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+      return autoplug_query_caps (uridecodebin, pad, element, query, group);
+    case GST_QUERY_CONTEXT:
+      return autoplug_query_context (uridecodebin, pad, element, query, group);
+    default:
+      return FALSE;
+  }
+}
+
 static void
 notify_source_cb (GstElement * uridecodebin, GParamSpec * pspec,
     GstSourceGroup * group)
@@ -3669,9 +4717,12 @@
 static gboolean
 activate_group (GstPlayBin * playbin, GstSourceGroup * group, GstState target)
 {
-  GstElement *uridecodebin;
+  GstElement *uridecodebin = NULL;
   GstElement *suburidecodebin = NULL;
   GstPlayFlags flags;
+  gboolean audio_sink_activated = FALSE;
+  gboolean video_sink_activated = FALSE;
+  gboolean text_sink_activated = FALSE;
 
   g_return_val_if_fail (group->valid, FALSE);
   g_return_val_if_fail (!group->active, FALSE);
@@ -3683,8 +4734,54 @@
   /* First set up the custom sources */
   if (playbin->audio_sink)
     group->audio_sink = gst_object_ref (playbin->audio_sink);
+  else
+    group->audio_sink =
+        gst_play_sink_get_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO);
+
+  if (group->audio_sink) {
+    if (!activate_sink (playbin, group->audio_sink, &audio_sink_activated)) {
+      if (group->audio_sink == playbin->audio_sink) {
+        goto sink_failure;
+      } else {
+        gst_object_unref (group->audio_sink);
+        group->audio_sink = NULL;
+      }
+    }
+  }
+
   if (playbin->video_sink)
     group->video_sink = gst_object_ref (playbin->video_sink);
+  else
+    group->video_sink =
+        gst_play_sink_get_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO);
+
+  if (group->video_sink) {
+    if (!activate_sink (playbin, group->video_sink, &video_sink_activated)) {
+      if (group->video_sink == playbin->video_sink) {
+        goto sink_failure;
+      } else {
+        gst_object_unref (group->video_sink);
+        group->video_sink = NULL;
+      }
+    }
+  }
+
+  if (playbin->text_sink)
+    group->text_sink = gst_object_ref (playbin->text_sink);
+  else
+    group->text_sink =
+        gst_play_sink_get_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT);
+
+  if (group->text_sink) {
+    if (!activate_sink (playbin, group->text_sink, &text_sink_activated)) {
+      if (group->text_sink == playbin->text_sink) {
+        goto sink_failure;
+      } else {
+        gst_object_unref (group->text_sink);
+        group->text_sink = NULL;
+      }
+    }
+  }
 
   g_list_free (group->stream_changed_pending);
   group->stream_changed_pending = NULL;
@@ -3759,6 +4856,9 @@
   group->autoplug_continue_id =
       g_signal_connect (uridecodebin, "autoplug-continue",
       G_CALLBACK (autoplug_continue_cb), group);
+  group->autoplug_query_id =
+      g_signal_connect (uridecodebin, "autoplug-query",
+      G_CALLBACK (autoplug_query_cb), group);
 
   if (group->suburi) {
     /* subtitles */
@@ -3798,6 +4898,10 @@
         g_signal_connect (suburidecodebin, "autoplug-continue",
         G_CALLBACK (autoplug_continue_cb), group);
 
+    group->sub_autoplug_query_id =
+        g_signal_connect (suburidecodebin, "autoplug-query",
+        G_CALLBACK (autoplug_query_cb), group);
+
     /* we have 2 pending no-more-pads */
     group->pending = 2;
     group->sub_pending = TRUE;
@@ -3821,6 +4925,7 @@
       REMOVE_SIGNAL (group->suburidecodebin, group->sub_pad_removed_id);
       REMOVE_SIGNAL (group->suburidecodebin, group->sub_no_more_pads_id);
       REMOVE_SIGNAL (group->suburidecodebin, group->sub_autoplug_continue_id);
+      REMOVE_SIGNAL (group->suburidecodebin, group->sub_autoplug_query_id);
       /* Might already be removed because of an error message */
       if (GST_OBJECT_PARENT (suburidecodebin) == GST_OBJECT_CAST (playbin))
         gst_bin_remove (GST_BIN_CAST (playbin), suburidecodebin);
@@ -3848,22 +4953,6 @@
   {
     GstMessage *msg;
 
-    /* delete any custom sinks we might have */
-    if (group->audio_sink) {
-      /* If this is a automatically created sink set it to NULL */
-      if (group->audio_sink != playbin->audio_sink)
-        gst_element_set_state (group->audio_sink, GST_STATE_NULL);
-      gst_object_unref (group->audio_sink);
-    }
-    group->audio_sink = NULL;
-    if (group->video_sink) {
-      /* If this is a automatically created sink set it to NULL */
-      if (group->video_sink != playbin->video_sink)
-        gst_element_set_state (group->video_sink, GST_STATE_NULL);
-      gst_object_unref (group->video_sink);
-    }
-    group->video_sink = NULL;
-
     GST_SOURCE_GROUP_UNLOCK (group);
     msg =
         gst_missing_element_message_new (GST_ELEMENT_CAST (playbin),
@@ -3872,29 +4961,56 @@
 
     GST_ELEMENT_ERROR (playbin, CORE, MISSING_PLUGIN,
         (_("Could not create \"uridecodebin\" element.")), (NULL));
-    return FALSE;
+
+    GST_SOURCE_GROUP_LOCK (group);
+
+    goto error_cleanup;
   }
 uridecodebin_failure:
   {
+    GST_DEBUG_OBJECT (playbin, "failed state change of uridecodebin");
+    goto error_cleanup;
+  }
+sink_failure:
+  {
+    GST_ERROR_OBJECT (playbin, "failed to activate sinks");
+    goto error_cleanup;
+  }
+
+error_cleanup:
+  {
     /* delete any custom sinks we might have */
     if (group->audio_sink) {
       /* If this is a automatically created sink set it to NULL */
-      if (group->audio_sink != playbin->audio_sink)
+      if (audio_sink_activated)
         gst_element_set_state (group->audio_sink, GST_STATE_NULL);
       gst_object_unref (group->audio_sink);
     }
     group->audio_sink = NULL;
+
     if (group->video_sink) {
       /* If this is a automatically created sink set it to NULL */
-      if (group->video_sink != playbin->video_sink)
+      if (video_sink_activated)
         gst_element_set_state (group->video_sink, GST_STATE_NULL);
       gst_object_unref (group->video_sink);
     }
     group->video_sink = NULL;
 
-    gst_bin_remove (GST_BIN_CAST (playbin), uridecodebin);
+    if (group->text_sink) {
+      /* If this is a automatically created sink set it to NULL */
+      if (text_sink_activated)
+        gst_element_set_state (group->text_sink, GST_STATE_NULL);
+      gst_object_unref (group->text_sink);
+    }
+    group->text_sink = NULL;
 
-    GST_DEBUG_OBJECT (playbin, "failed state change of uridecodebin");
+    if (uridecodebin) {
+      gst_element_set_state (uridecodebin, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), uridecodebin);
+    }
+
+    GST_SOURCE_GROUP_UNLOCK (group);
+
     return FALSE;
   }
 }
@@ -3914,57 +5030,52 @@
   GST_SOURCE_GROUP_LOCK (group);
   group->active = FALSE;
   for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
-    GstSourceSelect *select = &group->selector[i];
+    GstSourceCombine *combine = &group->combiner[i];
 
-    GST_DEBUG_OBJECT (playbin, "unlinking selector %s", select->media_list[0]);
+    GST_DEBUG_OBJECT (playbin, "unlinking combiner %s", combine->media_list[0]);
 
-    if (select->srcpad) {
-      if (select->sinkpad) {
+    if (combine->srcpad) {
+      if (combine->sinkpad) {
         GST_LOG_OBJECT (playbin, "unlinking from sink");
-        gst_pad_unlink (select->srcpad, select->sinkpad);
+        gst_pad_unlink (combine->srcpad, combine->sinkpad);
 
         /* release back */
         GST_LOG_OBJECT (playbin, "release sink pad");
-        gst_play_sink_release_pad (playbin->playsink, select->sinkpad);
-        select->sinkpad = NULL;
+        gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
+        combine->sinkpad = NULL;
       }
 
-      gst_object_unref (select->srcpad);
-      select->srcpad = NULL;
+      gst_object_unref (combine->srcpad);
+      combine->srcpad = NULL;
     }
 
-    if (select->selector) {
+    if (combine->combiner) {
       gint n;
 
-      /* release and unref requests pad from the selector */
-      for (n = 0; n < select->channels->len; n++) {
-        GstPad *sinkpad = g_ptr_array_index (select->channels, n);
+      /* release and unref requests pad from the combiner */
+      for (n = 0; n < combine->channels->len; n++) {
+        GstPad *sinkpad = g_ptr_array_index (combine->channels, n);
 
-        gst_element_release_request_pad (select->selector, sinkpad);
+        gst_element_release_request_pad (combine->combiner, sinkpad);
         gst_object_unref (sinkpad);
       }
-      g_ptr_array_set_size (select->channels, 0);
+      g_ptr_array_set_size (combine->channels, 0);
 
-      gst_element_set_state (select->selector, GST_STATE_NULL);
-      gst_bin_remove (GST_BIN_CAST (playbin), select->selector);
-      select->selector = NULL;
+      gst_element_set_state (combine->combiner, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), combine->combiner);
+      combine->combiner = NULL;
     }
   }
   /* delete any custom sinks we might have */
-  if (group->audio_sink) {
-    /* If this is a automatically created sink set it to NULL */
-    if (group->audio_sink != playbin->audio_sink)
-      gst_element_set_state (group->audio_sink, GST_STATE_NULL);
+  if (group->audio_sink)
     gst_object_unref (group->audio_sink);
-  }
   group->audio_sink = NULL;
-  if (group->video_sink) {
-    /* If this is a automatically created sink set it to NULL */
-    if (group->video_sink != playbin->video_sink)
-      gst_element_set_state (group->video_sink, GST_STATE_NULL);
+  if (group->video_sink)
     gst_object_unref (group->video_sink);
-  }
   group->video_sink = NULL;
+  if (group->text_sink)
+    gst_object_unref (group->text_sink);
+  group->text_sink = NULL;
 
   if (group->uridecodebin) {
     REMOVE_SIGNAL (group->uridecodebin, group->pad_added_id);
@@ -3975,6 +5086,7 @@
     REMOVE_SIGNAL (group->uridecodebin, group->autoplug_factories_id);
     REMOVE_SIGNAL (group->uridecodebin, group->autoplug_select_id);
     REMOVE_SIGNAL (group->uridecodebin, group->autoplug_continue_id);
+    REMOVE_SIGNAL (group->uridecodebin, group->autoplug_query_id);
     gst_bin_remove (GST_BIN_CAST (playbin), group->uridecodebin);
   }
 
@@ -3983,6 +5095,7 @@
     REMOVE_SIGNAL (group->suburidecodebin, group->sub_pad_removed_id);
     REMOVE_SIGNAL (group->suburidecodebin, group->sub_no_more_pads_id);
     REMOVE_SIGNAL (group->suburidecodebin, group->sub_autoplug_continue_id);
+    REMOVE_SIGNAL (group->suburidecodebin, group->sub_autoplug_query_id);
 
     /* Might already be removed because of errors */
     if (GST_OBJECT_PARENT (group->suburidecodebin) == GST_OBJECT_CAST (playbin))
@@ -4200,6 +5313,13 @@
       if (playbin->text_sink)
         gst_element_set_state (playbin->text_sink, GST_STATE_NULL);
 
+      if (playbin->video_stream_combiner)
+        gst_element_set_state (playbin->video_stream_combiner, GST_STATE_NULL);
+      if (playbin->audio_stream_combiner)
+        gst_element_set_state (playbin->audio_stream_combiner, GST_STATE_NULL);
+      if (playbin->text_stream_combiner)
+        gst_element_set_state (playbin->text_stream_combiner, GST_STATE_NULL);
+
       /* make sure the groups don't perform a state change anymore until we
        * enable them again */
       groups_set_locked_state (playbin, TRUE);
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 214274c..ec5f921 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -102,7 +102,9 @@
   GstElement *conv;
   GstElement *volume;           /* element with the volume property */
   gboolean sink_volume;         /* if the volume was provided by the sink */
+  gulong notify_volume_id;
   GstElement *mute;             /* element with the mute property */
+  gulong notify_mute_id;
   GstElement *sink;
   GstElement *ts_offset;
 } GstPlayAudioChain;
@@ -207,6 +209,7 @@
   GstPad *audio_srcpad_stream_synchronizer;
   GstPad *audio_sinkpad_stream_synchronizer;
   gulong audio_block_id;
+  gulong audio_notify_caps_id;
   /* audio tee */
   GstElement *audio_tee;
   GstPad *audio_tee_sink;
@@ -219,6 +222,7 @@
   GstPad *video_srcpad_stream_synchronizer;
   GstPad *video_sinkpad_stream_synchronizer;
   gulong video_block_id;
+  gulong video_notify_caps_id;
   /* text */
   GstPad *text_pad;
   gboolean text_pad_blocked;
@@ -258,6 +262,7 @@
   GstColorBalance *colorbalance_element;
   GList *colorbalance_channels; /* CONTRAST, BRIGHTNESS, HUE, SATURATION */
   gint colorbalance_values[4];
+  gulong colorbalance_value_changed_id;
 
   /* sending audio/video flushes break stream changes when the pipeline
    * is paused and played again in 0.10 */
@@ -700,15 +705,14 @@
 }
 
 static void
-disconnect_chain (GstPlayAudioChain * chain, GstPlaySink * playsink)
+disconnect_audio_chain (GstPlayAudioChain * chain, GstPlaySink * playsink)
 {
   if (chain) {
-    if (chain->volume)
-      g_signal_handlers_disconnect_by_func (chain->volume, notify_volume_cb,
-          playsink);
-    if (chain->mute)
-      g_signal_handlers_disconnect_by_func (chain->mute, notify_mute_cb,
-          playsink);
+    if (chain->notify_volume_id)
+      g_signal_handler_disconnect (chain->volume, chain->notify_volume_id);
+    if (chain->notify_mute_id)
+      g_signal_handler_disconnect (chain->mute, chain->notify_mute_id);
+    chain->notify_volume_id = chain->notify_mute_id = 0;
   }
 }
 
@@ -835,7 +839,7 @@
   if (elem) {
     old = *elem;
     if (sink)
-      gst_object_ref (sink);
+      gst_object_ref_sink (sink);
     *elem = sink;
   }
   GST_PLAY_SINK_UNLOCK (playsink);
@@ -1321,16 +1325,16 @@
 }
 
 /* make the element (bin) that contains the elements needed to perform
- * video display. Only used for *raw* video streams.
+ * video deinterlacing. Only used for *raw* video streams.
  *
- *  +------------------------------------------------------------+
- *  | vbin                                                       |
- *  |      +-------+   +----------+   +----------+   +---------+ |
- *  |      | queue |   |colorspace|   |videoscale|   |videosink| |
- *  |   +-sink    src-sink       src-sink       src-sink       | |
- *  |   |  +-------+   +----------+   +----------+   +---------+ |
- * sink-+                                                        |
- *  +------------------------------------------------------------+
+ *  +---------------------------------------+
+ *  | vbin                                  |
+ *  |      +----------+   +-----------+     |
+ *  |      |colorspace|   |deinterlace|     |
+ *  |   +-sink       src-sink        src-+  |
+ *  |   |  +----------+   +-----------+  |  |
+ * sink-+                                +-src
+ *  +---------------------------------------+
  *
  */
 static GstPlayVideoDeinterlaceChain *
@@ -1533,13 +1537,13 @@
   if (!balance)
     return;
 
-  g_signal_handlers_block_by_func (balance,
-      G_CALLBACK (colorbalance_value_changed_cb), playsink);
+  g_signal_handler_block (balance, playsink->colorbalance_value_changed_id);
 
   for (i = 0, l = playsink->colorbalance_channels; l; l = l->next, i++) {
     GstColorBalanceChannel *proxy = l->data;
     GstColorBalanceChannel *channel = NULL;
     const GList *channels, *k;
+    gdouble new_val;
 
     channels = gst_color_balance_list_channels (balance);
     for (k = channels; k; k = k->next) {
@@ -1553,12 +1557,20 @@
 
     g_assert (channel);
 
-    gst_color_balance_set_value (balance, channel,
-        playsink->colorbalance_values[i]);
+    /* Convert to [0, 1] range */
+    new_val =
+        ((gdouble) playsink->colorbalance_values[i] -
+        (gdouble) proxy->min_value) / ((gdouble) proxy->max_value -
+        (gdouble) proxy->min_value);
+    /* Convert to channel range */
+    new_val =
+        channel->min_value + new_val * ((gdouble) channel->max_value -
+        (gdouble) channel->min_value);
+
+    gst_color_balance_set_value (balance, channel, (gint) (new_val + 0.5));
   }
 
-  g_signal_handlers_unblock_by_func (balance,
-      G_CALLBACK (colorbalance_value_changed_cb), playsink);
+  g_signal_handler_unblock (balance, playsink->colorbalance_value_changed_id);
 
   gst_object_unref (balance);
 }
@@ -1699,13 +1711,14 @@
 
   GST_OBJECT_LOCK (playsink);
   if (playsink->colorbalance_element) {
-    g_signal_handlers_disconnect_by_func (playsink->colorbalance_element,
-        G_CALLBACK (colorbalance_value_changed_cb), playsink);
+    g_signal_handler_disconnect (playsink->colorbalance_element,
+        playsink->colorbalance_value_changed_id);
     gst_object_unref (playsink->colorbalance_element);
   }
   playsink->colorbalance_element = find_color_balance_element (chain->sink);
   if (playsink->colorbalance_element) {
-    g_signal_connect (playsink->colorbalance_element, "value-changed",
+    playsink->colorbalance_value_changed_id =
+        g_signal_connect (playsink->colorbalance_element, "value-changed",
         G_CALLBACK (colorbalance_value_changed_cb), playsink);
   }
   GST_OBJECT_UNLOCK (playsink);
@@ -1723,10 +1736,14 @@
         "use-converters", use_converters, "use-balance", use_balance, NULL);
 
     GST_OBJECT_LOCK (playsink);
-    if (use_balance && GST_PLAY_SINK_VIDEO_CONVERT (chain->conv)->balance)
+    if (use_balance && GST_PLAY_SINK_VIDEO_CONVERT (chain->conv)->balance) {
       playsink->colorbalance_element =
           GST_COLOR_BALANCE (gst_object_ref (GST_PLAY_SINK_VIDEO_CONVERT
               (chain->conv)->balance));
+      playsink->colorbalance_value_changed_id =
+          g_signal_connect (playsink->colorbalance_element, "value-changed",
+          G_CALLBACK (colorbalance_value_changed_cb), playsink);
+    }
     GST_OBJECT_UNLOCK (playsink);
 
     gst_bin_add (bin, chain->conv);
@@ -1889,13 +1906,14 @@
 
   GST_OBJECT_LOCK (playsink);
   if (playsink->colorbalance_element) {
-    g_signal_handlers_disconnect_by_func (playsink->colorbalance_element,
-        G_CALLBACK (colorbalance_value_changed_cb), playsink);
+    g_signal_handler_disconnect (playsink->colorbalance_element,
+        playsink->colorbalance_value_changed_id);
     gst_object_unref (playsink->colorbalance_element);
   }
   playsink->colorbalance_element = find_color_balance_element (chain->sink);
   if (playsink->colorbalance_element) {
-    g_signal_connect (playsink->colorbalance_element, "value-changed",
+    playsink->colorbalance_value_changed_id =
+        g_signal_connect (playsink->colorbalance_element, "value-changed",
         G_CALLBACK (colorbalance_value_changed_cb), playsink);
   }
   GST_OBJECT_UNLOCK (playsink);
@@ -2548,10 +2566,11 @@
   elem =
       gst_play_sink_find_property_sinks (playsink, chain->sink, "volume",
       G_TYPE_DOUBLE);
+  chain->notify_volume_id = chain->notify_mute_id = 0;
   if (elem) {
     chain->volume = elem;
 
-    g_signal_connect (chain->volume, "notify::volume",
+    chain->notify_volume_id = g_signal_connect (chain->volume, "notify::volume",
         G_CALLBACK (notify_volume_cb), playsink);
 
     GST_DEBUG_OBJECT (playsink, "the sink has a volume property");
@@ -2565,7 +2584,7 @@
         G_TYPE_BOOLEAN);
     if (chain->mute) {
       GST_DEBUG_OBJECT (playsink, "the sink has a mute property");
-      g_signal_connect (chain->mute, "notify::mute",
+      chain->notify_mute_id = g_signal_connect (chain->mute, "notify::mute",
           G_CALLBACK (notify_mute_cb), playsink);
     }
     /* use the sink to control the volume and mute */
@@ -2618,12 +2637,13 @@
         chain->volume = conv->volume;
         have_volume = TRUE;
 
-        g_signal_connect (chain->volume, "notify::volume",
+        chain->notify_volume_id =
+            g_signal_connect (chain->volume, "notify::volume",
             G_CALLBACK (notify_volume_cb), playsink);
 
         /* volume also has the mute property */
         chain->mute = chain->volume;
-        g_signal_connect (chain->mute, "notify::mute",
+        chain->notify_mute_id = g_signal_connect (chain->mute, "notify::mute",
             G_CALLBACK (notify_mute_cb), playsink);
 
         /* configure with the latest volume and mute */
@@ -2739,6 +2759,9 @@
       gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
           G_TYPE_INT64));
 
+  /* Disconnect signals */
+  disconnect_audio_chain (chain, playsink);
+
   /* check if the sink, or something within the sink, has the volume property.
    * If it does we don't need to add a volume element.  */
   elem =
@@ -2755,7 +2778,7 @@
       playsink->volume_changed = FALSE;
     }
 
-    g_signal_connect (chain->volume, "notify::volume",
+    chain->notify_volume_id = g_signal_connect (chain->volume, "notify::volume",
         G_CALLBACK (notify_volume_cb), playsink);
     /* if the sink also has a mute property we can use this as well. We'll only
      * use the mute property if there is a volume property. We can simulate the
@@ -2765,7 +2788,7 @@
         G_TYPE_BOOLEAN);
     if (chain->mute) {
       GST_DEBUG_OBJECT (playsink, "the sink has a mute property");
-      g_signal_connect (chain->mute, "notify::mute",
+      chain->notify_mute_id = g_signal_connect (chain->mute, "notify::mute",
           G_CALLBACK (notify_mute_cb), playsink);
     }
 
@@ -2776,17 +2799,15 @@
         ! !(playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME), NULL);
     GST_DEBUG_OBJECT (playsink, "the sink has no volume property");
 
-    /* Disconnect signals */
-    disconnect_chain (chain, playsink);
-
     if (conv->volume && (playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME)) {
       chain->volume = conv->volume;
       chain->mute = chain->volume;
 
-      g_signal_connect (chain->volume, "notify::volume",
+      chain->notify_volume_id =
+          g_signal_connect (chain->volume, "notify::volume",
           G_CALLBACK (notify_volume_cb), playsink);
 
-      g_signal_connect (chain->mute, "notify::mute",
+      chain->notify_mute_id = g_signal_connect (chain->mute, "notify::mute",
           G_CALLBACK (notify_mute_cb), playsink);
 
       /* configure with the latest volume and mute */
@@ -3030,7 +3051,9 @@
 
     if (playsink->videochain) {
       /* try to reactivate the chain */
-      if (!setup_video_chain (playsink, raw, async)) {
+      if ((playsink->video_sink
+              && playsink->video_sink != playsink->videochain->sink)
+          || !setup_video_chain (playsink, raw, async)) {
         if (playsink->video_sinkpad_stream_synchronizer) {
           gst_element_release_request_pad (GST_ELEMENT_CAST
               (playsink->stream_synchronizer),
@@ -3045,9 +3068,12 @@
 
         /* Remove the sink from the bin to keep its state
          * and unparent it to allow reuse */
-        if (playsink->videochain->sink)
+        if (playsink->videochain->sink) {
+          if (playsink->videochain->sink != playsink->video_sink)
+            gst_element_set_state (playsink->videochain->sink, GST_STATE_NULL);
           gst_bin_remove (GST_BIN_CAST (playsink->videochain->chain.bin),
               playsink->videochain->sink);
+        }
 
         activate_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
         free_chain ((GstPlayChain *) playsink->videochain);
@@ -3059,8 +3085,8 @@
         playsink->overlay_element = NULL;
 
         if (playsink->colorbalance_element) {
-          g_signal_handlers_disconnect_by_func (playsink->colorbalance_element,
-              G_CALLBACK (colorbalance_value_changed_cb), playsink);
+          g_signal_handler_disconnect (playsink->colorbalance_element,
+              playsink->colorbalance_value_changed_id);
           gst_object_unref (playsink->colorbalance_element);
         }
         playsink->colorbalance_element = NULL;
@@ -3193,13 +3219,15 @@
     playsink->overlay_element = NULL;
 
     if (playsink->colorbalance_element) {
-      g_signal_handlers_disconnect_by_func (playsink->colorbalance_element,
-          G_CALLBACK (colorbalance_value_changed_cb), playsink);
+      g_signal_handler_disconnect (playsink->colorbalance_element,
+          playsink->colorbalance_value_changed_id);
       gst_object_unref (playsink->colorbalance_element);
     }
     playsink->colorbalance_element = NULL;
     GST_OBJECT_UNLOCK (playsink);
 
+    if (playsink->video_sink)
+      gst_element_set_state (playsink->video_sink, GST_STATE_NULL);
   }
 
   if (need_audio) {
@@ -3212,7 +3240,9 @@
 
     if (playsink->audiochain) {
       /* try to reactivate the chain */
-      if (!setup_audio_chain (playsink, raw)) {
+      if ((playsink->audio_sink
+              && playsink->audio_sink != playsink->audiochain->sink)
+          || !setup_audio_chain (playsink, raw)) {
         GST_DEBUG_OBJECT (playsink, "removing current audio chain");
         if (playsink->audio_tee_asrc) {
           gst_element_release_request_pad (playsink->audio_tee,
@@ -3235,12 +3265,15 @@
 
         /* Remove the sink from the bin to keep its state
          * and unparent it to allow reuse */
-        if (playsink->audiochain->sink)
+        if (playsink->audiochain->sink) {
+          if (playsink->audiochain->sink != playsink->audio_sink)
+            gst_element_set_state (playsink->audiochain->sink, GST_STATE_NULL);
           gst_bin_remove (GST_BIN_CAST (playsink->audiochain->chain.bin),
               playsink->audiochain->sink);
+        }
 
         activate_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
-        disconnect_chain (playsink->audiochain, playsink);
+        disconnect_audio_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
         if (playsink->audiochain->ts_offset)
@@ -3257,6 +3290,9 @@
       playsink->audiochain = gen_audio_chain (playsink, raw);
     }
 
+    if (!playsink->audiochain)
+      goto no_chain;
+
     if (!playsink->audio_sinkpad_stream_synchronizer) {
       GValue item = { 0, };
       GstIterator *it;
@@ -3312,7 +3348,7 @@
       }
 
       if (playsink->audiochain->sink_volume) {
-        disconnect_chain (playsink->audiochain, playsink);
+        disconnect_audio_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
         if (playsink->audiochain->ts_offset)
@@ -3322,6 +3358,9 @@
       add_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
       activate_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
     }
+
+    if (playsink->audio_sink)
+      gst_element_set_state (playsink->audio_sink, GST_STATE_NULL);
   }
 
   if (need_vis) {
@@ -3469,6 +3508,9 @@
 
     if (playsink->text_pad && !playsink->textchain)
       gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad), NULL);
+
+    if (playsink->text_sink)
+      gst_element_set_state (playsink->text_sink, GST_STATE_NULL);
   }
   update_av_offset (playsink);
   do_async_done (playsink);
@@ -4055,7 +4097,8 @@
         GST_LOG_OBJECT (playsink, "ghosting tee sinkpad");
         playsink->audio_pad =
             gst_ghost_pad_new (pad_name, playsink->audio_tee_sink);
-        g_signal_connect (G_OBJECT (playsink->audio_pad), "notify::caps",
+        playsink->audio_notify_caps_id =
+            g_signal_connect (G_OBJECT (playsink->audio_pad), "notify::caps",
             G_CALLBACK (caps_notify_cb), playsink);
         created = TRUE;
       }
@@ -4070,7 +4113,8 @@
         GST_LOG_OBJECT (playsink, "ghosting videosink");
         playsink->video_pad =
             gst_ghost_pad_new_no_target (pad_name, GST_PAD_SINK);
-        g_signal_connect (G_OBJECT (playsink->video_pad), "notify::caps",
+        playsink->video_notify_caps_id =
+            g_signal_connect (G_OBJECT (playsink->video_pad), "notify::caps",
             G_CALLBACK (caps_notify_cb), playsink);
         created = TRUE;
       }
@@ -4179,13 +4223,13 @@
   GST_PLAY_SINK_LOCK (playsink);
   if (pad == playsink->video_pad) {
     res = &playsink->video_pad;
-    g_signal_handlers_disconnect_by_func (playsink->video_pad, caps_notify_cb,
-        playsink);
+    g_signal_handler_disconnect (playsink->video_pad,
+        playsink->video_notify_caps_id);
     video_set_blocked (playsink, FALSE);
   } else if (pad == playsink->audio_pad) {
     res = &playsink->audio_pad;
-    g_signal_handlers_disconnect_by_func (playsink->audio_pad, caps_notify_cb,
-        playsink);
+    g_signal_handler_disconnect (playsink->audio_pad,
+        playsink->audio_notify_caps_id);
     audio_set_blocked (playsink, FALSE);
   } else if (pad == playsink->text_pad) {
     res = &playsink->text_pad;
@@ -4429,7 +4473,7 @@
       if (playsink->audiochain && playsink->audiochain->sink_volume) {
         /* remove our links to the mute and volume elements when they were
          * provided by a sink */
-        disconnect_chain (playsink->audiochain, playsink);
+        disconnect_audio_chain (playsink->audiochain, playsink);
         playsink->audiochain->volume = NULL;
         playsink->audiochain->mute = NULL;
       }
@@ -4450,8 +4494,8 @@
       playsink->overlay_element = NULL;
 
       if (playsink->colorbalance_element) {
-        g_signal_handlers_disconnect_by_func (playsink->colorbalance_element,
-            G_CALLBACK (colorbalance_value_changed_cb), playsink);
+        g_signal_handler_disconnect (playsink->colorbalance_element,
+            playsink->colorbalance_value_changed_id);
         gst_object_unref (playsink->colorbalance_element);
       }
       playsink->colorbalance_element = NULL;
diff --git a/gst/playback/gstplaysink.h b/gst/playback/gstplaysink.h
index 841c79a..ff47a19 100644
--- a/gst/playback/gstplaysink.h
+++ b/gst/playback/gstplaysink.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_PLAY_SINK_H__
diff --git a/gst/playback/gstplaysinkaudioconvert.c b/gst/playback/gstplaysinkaudioconvert.c
index e7a942d..3f984da 100644
--- a/gst/playback/gstplaysinkaudioconvert.c
+++ b/gst/playback/gstplaysinkaudioconvert.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/playback/gstplaysinkaudioconvert.h b/gst/playback/gstplaysinkaudioconvert.h
index ad532e2..18a776e 100644
--- a/gst/playback/gstplaysinkaudioconvert.h
+++ b/gst/playback/gstplaysinkaudioconvert.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/playback/gstplaysinkconvertbin.c b/gst/playback/gstplaysinkconvertbin.c
index 468dc32..bbda869 100644
--- a/gst/playback/gstplaysinkconvertbin.c
+++ b/gst/playback/gstplaysinkconvertbin.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/playback/gstplaysinkconvertbin.h b/gst/playback/gstplaysinkconvertbin.h
index 3a9e8d3..1e452b2 100644
--- a/gst/playback/gstplaysinkconvertbin.h
+++ b/gst/playback/gstplaysinkconvertbin.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/playback/gstplaysinkvideoconvert.c b/gst/playback/gstplaysinkvideoconvert.c
index 98bd03a..5bac5d0 100644
--- a/gst/playback/gstplaysinkvideoconvert.c
+++ b/gst/playback/gstplaysinkvideoconvert.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/playback/gstplaysinkvideoconvert.h b/gst/playback/gstplaysinkvideoconvert.h
index 5c50462..77ece1f 100644
--- a/gst/playback/gstplaysinkvideoconvert.h
+++ b/gst/playback/gstplaysinkvideoconvert.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/gst/playback/gstrawcaps.h b/gst/playback/gstrawcaps.h
index c2860a5..5372f8d 100644
--- a/gst/playback/gstrawcaps.h
+++ b/gst/playback/gstrawcaps.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
index 8fb1100..a5eb530 100644
--- a/gst/playback/gststreamsynchronizer.c
+++ b/gst/playback/gststreamsynchronizer.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -375,14 +375,10 @@
           gst_event_unref (event);
           event = tmpev;
         }
-
       } else if (stream) {
         GST_WARNING_OBJECT (pad, "Non-TIME segment: %s",
             gst_format_get_name (segment.format));
         gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
-        /* Since this stream is not time-based, we mark it so that
-         * other streams don't wait forever on it */
-        stream->wait = TRUE;
       }
       GST_STREAM_SYNCHRONIZER_UNLOCK (self);
       break;
diff --git a/gst/playback/gststreamsynchronizer.h b/gst/playback/gststreamsynchronizer.h
index c2e1dde..b999312 100644
--- a/gst/playback/gststreamsynchronizer.h
+++ b/gst/playback/gststreamsynchronizer.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_STREAM_SYNCHRONIZER_H__
diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c
index 1550519..64e9ade 100644
--- a/gst/playback/gstsubtitleoverlay.c
+++ b/gst/playback/gstsubtitleoverlay.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -441,7 +441,7 @@
 check_factory_for_caps (GstElementFactory * factory, const GstCaps * caps)
 {
   GstCaps *fcaps = _get_sub_caps (factory);
-  gboolean ret = (fcaps) ? gst_caps_can_intersect (fcaps, caps) : FALSE;
+  gboolean ret = (fcaps) ? gst_caps_is_subset (caps, fcaps) : FALSE;
 
   if (fcaps)
     gst_caps_unref (fcaps);
@@ -999,7 +999,7 @@
   } else {                      /* No video pad */
     GstCaps *allowed_caps, *video_caps = NULL;
     GstPad *video_peer;
-    gboolean can_intersect = FALSE;
+    gboolean is_subset = FALSE;
 
     video_peer = gst_pad_get_peer (self->video_sinkpad);
     if (video_peer) {
@@ -1019,7 +1019,7 @@
     gst_object_unref (sink);
 
     if (allowed_caps && video_caps)
-      can_intersect = gst_caps_can_intersect (allowed_caps, video_caps);
+      is_subset = gst_caps_is_subset (video_caps, allowed_caps);
 
     if (allowed_caps)
       gst_caps_unref (allowed_caps);
@@ -1027,7 +1027,7 @@
     if (video_caps)
       gst_caps_unref (video_caps);
 
-    if (G_UNLIKELY (!can_intersect)) {
+    if (G_UNLIKELY (!is_subset)) {
       GST_WARNING_OBJECT (self, "Renderer with custom caps is not "
           "compatible with video stream");
       return FALSE;
diff --git a/gst/playback/gstsubtitleoverlay.h b/gst/playback/gstsubtitleoverlay.h
index a21ed28..d240454 100644
--- a/gst/playback/gstsubtitleoverlay.h
+++ b/gst/playback/gstsubtitleoverlay.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUBTITLE_OVERLAY_H__
diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
index 33fda36..561e670 100644
--- a/gst/playback/gsturidecodebin.c
+++ b/gst/playback/gsturidecodebin.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -60,9 +60,8 @@
 typedef struct _GstURIDecodeBin GstURIDecodeBin;
 typedef struct _GstURIDecodeBinClass GstURIDecodeBinClass;
 
-#define GST_URI_DECODE_BIN_GET_LOCK(dec) (((GstURIDecodeBin*)(dec))->lock)
-#define GST_URI_DECODE_BIN_LOCK(dec) (g_mutex_lock(GST_URI_DECODE_BIN_GET_LOCK(dec)))
-#define GST_URI_DECODE_BIN_UNLOCK(dec) (g_mutex_unlock(GST_URI_DECODE_BIN_GET_LOCK(dec)))
+#define GST_URI_DECODE_BIN_LOCK(dec) (g_mutex_lock(&((GstURIDecodeBin*)(dec))->lock))
+#define GST_URI_DECODE_BIN_UNLOCK(dec) (g_mutex_unlock(&((GstURIDecodeBin*)(dec))->lock))
 
 typedef struct _GstURIDecodeBinStream
 {
@@ -79,9 +78,9 @@
 {
   GstBin parent_instance;
 
-  GMutex *lock;                 /* lock for constructing */
+  GMutex lock;                  /* lock for constructing */
 
-  GMutex *factories_lock;
+  GMutex factories_lock;
   guint32 factories_cookie;
   GList *factories;             /* factories we can use for selecting elements */
 
@@ -138,6 +137,10 @@
   /* signal fired to select from the proposed list of factories */
     GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
       GstPad * pad, GstCaps * caps, GstElementFactory * factory);
+  /* signal fired when a autoplugged element that is not linked downstream
+   * or exposed wants to query something */
+    gboolean (*autoplug_query) (GstElement * element, GstPad * pad,
+      GstQuery * query);
 
   /* emitted when all data is decoded */
   void (*drained) (GstElement * element);
@@ -160,8 +163,9 @@
   SIGNAL_AUTOPLUG_CONTINUE,
   SIGNAL_AUTOPLUG_FACTORIES,
   SIGNAL_AUTOPLUG_SELECT,
-  SIGNAL_DRAINED,
   SIGNAL_AUTOPLUG_SORT,
+  SIGNAL_AUTOPLUG_QUERY,
+  SIGNAL_DRAINED,
   SIGNAL_SOURCE_SETUP,
   LAST_SIGNAL
 };
@@ -231,6 +235,22 @@
 }
 
 static gboolean
+_gst_boolean_or_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gboolean myboolean;
+  gboolean retboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  retboolean = g_value_get_boolean (return_accu);
+
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boolean (return_accu, myboolean || retboolean);
+
+  return TRUE;
+}
+
+static gboolean
 _gst_array_accumulator (GSignalInvocationHint * ihint,
     GValue * return_accu, const GValue * handler_return, gpointer dummy)
 {
@@ -310,12 +330,12 @@
   GST_DEBUG_OBJECT (element, "finding factories");
 
   /* return all compatible factories for caps */
-  g_mutex_lock (dec->factories_lock);
+  g_mutex_lock (&dec->factories_lock);
   gst_uri_decode_bin_update_factories_list (dec);
   list =
       gst_element_factory_list_filter (dec->factories, caps, GST_PAD_SINK,
-      FALSE);
-  g_mutex_unlock (dec->factories_lock);
+      gst_caps_is_fixed (caps));
+  g_mutex_unlock (&dec->factories_lock);
 
   result = g_value_array_new (g_list_length (list));
   for (tmp = list; tmp; tmp = tmp->next) {
@@ -351,6 +371,14 @@
   return GST_AUTOPLUG_SELECT_TRY;
 }
 
+static gboolean
+gst_uri_decode_bin_autoplug_query (GstElement * element, GstPad * pad,
+    GstQuery * query)
+{
+  /* No query handled here */
+  return FALSE;
+}
+
 static void
 gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
 {
@@ -613,6 +641,27 @@
       GST_TYPE_ELEMENT_FACTORY);
 
   /**
+   * GstDecodeBin::autoplug-query:
+   * @bin: The decodebin.
+   * @child: The child element doing the query
+   * @pad: The #GstPad.
+   * @query: The #GstQuery.
+   *
+   * This signal is emitted whenever an autoplugged element that is
+   * not linked downstream yet and not exposed does a query. It can
+   * be used to tell the element about the downstream supported caps
+   * for example.
+   *
+   * Returns: #TRUE if the query was handled, #FALSE otherwise.
+   */
+  gst_uri_decode_bin_signals[SIGNAL_AUTOPLUG_QUERY] =
+      g_signal_new ("autoplug-query", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURIDecodeBinClass, autoplug_query),
+      _gst_boolean_or_accumulator, NULL, g_cclosure_marshal_generic,
+      G_TYPE_BOOLEAN, 3, GST_TYPE_PAD, GST_TYPE_ELEMENT,
+      GST_TYPE_QUERY | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
    * GstURIDecodeBin::drained:
    *
    * This signal is emitted when the data for the current uri is played.
@@ -661,15 +710,16 @@
   klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_uri_decode_bin_autoplug_sort);
   klass->autoplug_select =
       GST_DEBUG_FUNCPTR (gst_uri_decode_bin_autoplug_select);
+  klass->autoplug_query = GST_DEBUG_FUNCPTR (gst_uri_decode_bin_autoplug_query);
 }
 
 static void
 gst_uri_decode_bin_init (GstURIDecodeBin * dec)
 {
   /* first filter out the interesting element factories */
-  dec->factories_lock = g_mutex_new ();
+  g_mutex_init (&dec->factories_lock);
 
-  dec->lock = g_mutex_new ();
+  g_mutex_init (&dec->lock);
 
   dec->uri = g_strdup (DEFAULT_PROP_URI);
   dec->connection_speed = DEFAULT_CONNECTION_SPEED;
@@ -692,8 +742,8 @@
   GstURIDecodeBin *dec = GST_URI_DECODE_BIN (obj);
 
   remove_decoders (dec, TRUE);
-  g_mutex_free (dec->lock);
-  g_mutex_free (dec->factories_lock);
+  g_mutex_clear (&dec->lock);
+  g_mutex_clear (&dec->factories_lock);
   g_free (dec->uri);
   g_free (dec->encoding);
   if (dec->factories)
@@ -1183,14 +1233,6 @@
 /* blacklisted URIs, we know they will always fail. */
 static const gchar *blacklisted_uris[] = { NULL };
 
-/* mime types that we don't consider to be media types */
-#if 0
-static const gchar *no_media_mimes[] = {
-  "application/x-executable", "application/x-bzip", "application/x-gzip",
-  "application/zip", "application/x-compress", NULL
-};
-#endif
-
 /* media types we can download */
 static const gchar *download_media[] = {
   "video/quicktime", "video/mj2", "audio/x-m4a", "application/x-3gp",
@@ -1200,7 +1242,6 @@
 #define IS_STREAM_URI(uri)          (array_has_uri_value (stream_uris, uri))
 #define IS_QUEUE_URI(uri)           (array_has_uri_value (queue_uris, uri))
 #define IS_BLACKLISTED_URI(uri)     (array_has_uri_value (blacklisted_uris, uri))
-#define IS_NO_MEDIA_MIME(mime)      (array_has_value (no_media_mimes, mime))
 #define IS_DOWNLOAD_MEDIA(media)    (array_has_value (download_media, media))
 
 /*
@@ -1212,6 +1253,9 @@
   GObjectClass *source_class;
   GstElement *source;
   GParamSpec *pspec;
+  GstQuery *query;
+  GstSchedulingFlags flags;
+  GError *err = NULL;
 
   if (!decoder->uri)
     goto no_uri;
@@ -1225,13 +1269,20 @@
     goto uri_blacklisted;
 
   source =
-      gst_element_make_from_uri (GST_URI_SRC, decoder->uri, "source", NULL);
+      gst_element_make_from_uri (GST_URI_SRC, decoder->uri, "source", &err);
   if (!source)
     goto no_source;
 
   GST_LOG_OBJECT (decoder, "found source type %s", G_OBJECT_TYPE_NAME (source));
 
-  decoder->is_stream = IS_STREAM_URI (decoder->uri);
+  query = gst_query_new_scheduling ();
+  if (gst_element_query (source, query)) {
+    gst_query_parse_scheduling (query, &flags, NULL, NULL, NULL);
+    decoder->is_stream = flags & GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED;
+  } else
+    decoder->is_stream = IS_STREAM_URI (decoder->uri);
+  gst_query_unref (query);
+
   GST_LOG_OBJECT (decoder, "source is stream: %d", decoder->is_stream);
 
   decoder->need_queue = IS_QUEUE_URI (decoder->uri);
@@ -1307,6 +1358,7 @@
   {
     GST_ELEMENT_ERROR (decoder, RESOURCE, NOT_FOUND,
         (_("Invalid URI \"%s\"."), decoder->uri), (NULL));
+    g_clear_error (&err);
     return NULL;
   }
 uri_blacklisted:
@@ -1317,23 +1369,29 @@
   }
 no_source:
   {
-    gchar *prot = gst_uri_get_protocol (decoder->uri);
-
     /* whoops, could not create the source element, dig a little deeper to
      * figure out what might be wrong. */
-    if (prot) {
-      GstMessage *msg;
+    if (err != NULL && err->code == GST_URI_ERROR_UNSUPPORTED_PROTOCOL) {
+      gchar *prot;
 
-      msg =
-          gst_missing_uri_source_message_new (GST_ELEMENT_CAST (decoder), prot);
-      gst_element_post_message (GST_ELEMENT_CAST (decoder), msg);
+      prot = gst_uri_get_protocol (decoder->uri);
+      if (prot == NULL)
+        goto invalid_uri;
+
+      gst_element_post_message (GST_ELEMENT_CAST (decoder),
+          gst_missing_uri_source_message_new (GST_ELEMENT (decoder), prot));
 
       GST_ELEMENT_ERROR (decoder, CORE, MISSING_PLUGIN,
           (_("No URI handler implemented for \"%s\"."), prot), (NULL));
-      g_free (prot);
-    } else
-      goto invalid_uri;
 
+      g_free (prot);
+    } else {
+      GST_ELEMENT_ERROR (decoder, RESOURCE, NOT_FOUND,
+          ("%s", (err) ? err->message : "URI was not accepted by any element"),
+          ("No element accepted URI '%s'", decoder->uri));
+    }
+
+    g_clear_error (&err);
     return NULL;
   }
 }
@@ -1584,7 +1642,7 @@
 }
 
 static void
-proxy_unknown_type_signal (GstElement * element, GstPad * pad, GstCaps * caps,
+proxy_unknown_type_signal (GstElement * decodebin, GstPad * pad, GstCaps * caps,
     GstURIDecodeBin * dec)
 {
   GST_DEBUG_OBJECT (dec, "unknown-type signaled");
@@ -1594,7 +1652,7 @@
 }
 
 static gboolean
-proxy_autoplug_continue_signal (GstElement * element, GstPad * pad,
+proxy_autoplug_continue_signal (GstElement * decodebin, GstPad * pad,
     GstCaps * caps, GstURIDecodeBin * dec)
 {
   gboolean result;
@@ -1609,7 +1667,7 @@
 }
 
 static GValueArray *
-proxy_autoplug_factories_signal (GstElement * element, GstPad * pad,
+proxy_autoplug_factories_signal (GstElement * decodebin, GstPad * pad,
     GstCaps * caps, GstURIDecodeBin * dec)
 {
   GValueArray *result;
@@ -1624,7 +1682,7 @@
 }
 
 static GValueArray *
-proxy_autoplug_sort_signal (GstElement * element, GstPad * pad,
+proxy_autoplug_sort_signal (GstElement * decodebin, GstPad * pad,
     GstCaps * caps, GValueArray * factories, GstURIDecodeBin * dec)
 {
   GValueArray *result;
@@ -1639,7 +1697,7 @@
 }
 
 static GstAutoplugSelectResult
-proxy_autoplug_select_signal (GstElement * element, GstPad * pad,
+proxy_autoplug_select_signal (GstElement * decodebin, GstPad * pad,
     GstCaps * caps, GstElementFactory * factory, GstURIDecodeBin * dec)
 {
   GstAutoplugSelectResult result;
@@ -1653,8 +1711,23 @@
   return result;
 }
 
+static gboolean
+proxy_autoplug_query_signal (GstElement * decodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstURIDecodeBin * dec)
+{
+  gboolean ret = FALSE;
+
+  g_signal_emit (dec,
+      gst_uri_decode_bin_signals[SIGNAL_AUTOPLUG_QUERY], 0, pad, element, query,
+      &ret);
+
+  GST_DEBUG_OBJECT (dec, "autoplug-query returned %d", ret);
+
+  return ret;
+}
+
 static void
-proxy_drained_signal (GstElement * element, GstURIDecodeBin * dec)
+proxy_drained_signal (GstElement * decodebin, GstURIDecodeBin * dec)
 {
   GST_DEBUG_OBJECT (dec, "drained signaled");
 
@@ -1698,6 +1771,8 @@
         G_CALLBACK (proxy_autoplug_sort_signal), decoder);
     g_signal_connect (decodebin, "autoplug-select",
         G_CALLBACK (proxy_autoplug_select_signal), decoder);
+    g_signal_connect (decodebin, "autoplug-query",
+        G_CALLBACK (proxy_autoplug_query_signal), decoder);
     g_signal_connect (decodebin, "drained",
         G_CALLBACK (proxy_drained_signal), decoder);
 
@@ -2257,8 +2332,7 @@
   value_list_append_structure_list (&new_list, &new_structure, l_good);
   value_list_append_structure_list (&new_list, &new_structure, l_neutral);
   value_list_append_structure_list (&new_list, &new_structure, l_bad);
-  gst_structure_set_value (new_structure, "locations", &new_list);
-  g_value_unset (&new_list);
+  gst_structure_take_value (new_structure, "locations", &new_list);
 
   g_list_free (l_good);
   g_list_free (l_neutral);
diff --git a/gst/subparse/Makefile.in b/gst/subparse/Makefile.in
index 456948f..1c1c59a 100644
--- a/gst/subparse/Makefile.in
+++ b/gst/subparse/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/subparse
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -146,10 +172,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstsubparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstsubparse_la_CFLAGS) $(CFLAGS) \
 	$(libgstsubparse_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -162,20 +201,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstsubparse_la_SOURCES)
 DIST_SOURCES = $(am__libgstsubparse_la_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -184,6 +219,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -539,6 +591,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -565,12 +618,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstsubparse.la: $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_DEPENDENCIES) $(EXTRA_libgstsubparse_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstsubparse_la_LINK) -rpath $(plugindir) $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_LIBADD) $(LIBS)
 
@@ -656,26 +712,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -687,15 +732,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -704,6 +745,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -848,19 +904,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
index 88b5d9b..6fba00c 100644
--- a/gst/subparse/gstssaparse.c
+++ b/gst/subparse/gstssaparse.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* Super-primitive SSA parser - we just want the text and ignore
@@ -83,8 +83,6 @@
       GST_DEBUG_FUNCPTR (gst_ssa_parse_src_event));
   gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad);
   gst_pad_use_fixed_caps (parse->srcpad);
-  gst_pad_set_caps (parse->srcpad,
-      gst_static_pad_template_get_caps (&src_templ));
 
   parse->ini = NULL;
   parse->framed = FALSE;
diff --git a/gst/subparse/gstssaparse.h b/gst/subparse/gstssaparse.h
index 518c3cd..c15acdc 100644
--- a/gst/subparse/gstssaparse.h
+++ b/gst/subparse/gstssaparse.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SSA_PARSE_H__
diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c
index 5aa7494..c3f41c9 100644
--- a/gst/subparse/gstsubparse.c
+++ b/gst/subparse/gstsubparse.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1443,6 +1443,7 @@
   GstFlowReturn ret = GST_FLOW_OK;
   GstCaps *caps = NULL;
   gchar *line, *subtitle;
+  gboolean need_tags = FALSE;
 
   if (self->first_buffer) {
     GstMapInfo map;
@@ -1467,7 +1468,19 @@
       return GST_FLOW_EOS;
     }
     gst_caps_unref (caps);
+    need_tags = TRUE;
+  }
 
+  /* Push newsegment if needed */
+  if (self->need_segment) {
+    GST_LOG_OBJECT (self, "pushing newsegment event with %" GST_SEGMENT_FORMAT,
+        &self->segment);
+
+    gst_pad_push_event (self->srcpad, gst_event_new_segment (&self->segment));
+    self->need_segment = FALSE;
+  }
+
+  if (need_tags) {
     /* push tags */
     if (self->subtitle_codec != NULL) {
       GstTagList *tags;
@@ -1544,15 +1557,6 @@
 
   self = GST_SUBPARSE (parent);
 
-  /* Push newsegment if needed */
-  if (self->need_segment) {
-    GST_LOG_OBJECT (self, "pushing newsegment event with %" GST_SEGMENT_FORMAT,
-        &self->segment);
-
-    gst_pad_push_event (self->srcpad, gst_event_new_segment (&self->segment));
-    self->need_segment = FALSE;
-  }
-
   ret = handle_buffer (self, buf);
 
   return ret;
diff --git a/gst/subparse/gstsubparse.h b/gst/subparse/gstsubparse.h
index 4050771..5b5fd0d 100644
--- a/gst/subparse/gstsubparse.h
+++ b/gst/subparse/gstsubparse.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_SUBPARSE_H__
diff --git a/gst/subparse/mpl2parse.c b/gst/subparse/mpl2parse.c
index b043064..cce2c14 100644
--- a/gst/subparse/mpl2parse.c
+++ b/gst/subparse/mpl2parse.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "mpl2parse.h"
diff --git a/gst/subparse/mpl2parse.h b/gst/subparse/mpl2parse.h
index aed62c0..b577d91 100644
--- a/gst/subparse/mpl2parse.h
+++ b/gst/subparse/mpl2parse.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _MPL2_PARSE_H_
diff --git a/gst/subparse/qttextparse.c b/gst/subparse/qttextparse.c
index b48daf9..ce5545f 100644
--- a/gst/subparse/qttextparse.c
+++ b/gst/subparse/qttextparse.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* References:
diff --git a/gst/subparse/qttextparse.h b/gst/subparse/qttextparse.h
index 6d4f393..a80cb71 100644
--- a/gst/subparse/qttextparse.h
+++ b/gst/subparse/qttextparse.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _QTTEXT_PARSE_H_
diff --git a/gst/subparse/samiparse.c b/gst/subparse/samiparse.c
index 135748a..b61c802 100644
--- a/gst/subparse/samiparse.c
+++ b/gst/subparse/samiparse.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "samiparse.h"
diff --git a/gst/subparse/samiparse.h b/gst/subparse/samiparse.h
index a45de01..12f8c9e 100644
--- a/gst/subparse/samiparse.h
+++ b/gst/subparse/samiparse.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _SAMI_PARSE_H_
diff --git a/gst/subparse/tmplayerparse.c b/gst/subparse/tmplayerparse.c
index 3937de6..807e332 100644
--- a/gst/subparse/tmplayerparse.c
+++ b/gst/subparse/tmplayerparse.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "tmplayerparse.h"
diff --git a/gst/subparse/tmplayerparse.h b/gst/subparse/tmplayerparse.h
index a0001af..ac3ca14 100644
--- a/gst/subparse/tmplayerparse.h
+++ b/gst/subparse/tmplayerparse.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _TMPLAYER_PARSE_H_
diff --git a/gst/tcp/Makefile.am b/gst/tcp/Makefile.am
index 22973fa..c6f50d9 100644
--- a/gst/tcp/Makefile.am
+++ b/gst/tcp/Makefile.am
@@ -1,18 +1,5 @@
 plugin_LTLIBRARIES = libgsttcp.la
 
-# variables used for enum/marshal generation
-glib_enum_headers = gsttcp.h
-glib_enum_define = GST_TCP
-glib_gen_prefix = gst_tcp
-glib_gen_basename = gsttcp
-
-include $(top_srcdir)/common/gst-glib-gen.mak
-
-built_sources = gsttcp-enumtypes.c gsttcp-marshal.c
-built_headers = gsttcp-enumtypes.h gsttcp-marshal.h
-
-BUILT_SOURCES = $(built_sources) $(built_headers)
-
 if HAVE_SYS_SOCKET_H
 multifdsink_SOURCES = \
 	gstmultifdsink.c
@@ -28,9 +15,6 @@
 	gstmultisocketsink.c  \
 	gsttcpserversrc.c gsttcpserversink.c
 
-nodist_libgsttcp_la_SOURCES = \
-	$(built_sources)
-
 libgsttcp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgsttcp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgsttcp_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
@@ -45,8 +29,6 @@
 
 CLEANFILES = $(BUILT_SOURCES)
 
-EXTRA_DIST = gsttcp-marshal.list
-
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
 	-:PROJECT libgsttcp -:SHARED libgsttcp \
diff --git a/gst/tcp/Makefile.in b/gst/tcp/Makefile.in
index ab3b61e..68987a3 100644
--- a/gst/tcp/Makefile.in
+++ b/gst/tcp/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,33 +14,53 @@
 
 @SET_MAKE@
 
-# these are the variables your Makefile.am should set
-# the example is based on the colorbalance interface
-
-#glib_enum_headers=$(colorbalance_headers)
-#glib_enum_define=GST_COLOR_BALANCE
-#glib_gen_prefix=gst_color_balance
-#glib_gen_basename=colorbalance
-
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -61,15 +80,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak
 subdir = gst/tcp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -152,18 +170,27 @@
 	libgsttcp_la-gstmultisocketsink.lo \
 	libgsttcp_la-gsttcpserversrc.lo \
 	libgsttcp_la-gsttcpserversink.lo
-am__objects_2 = libgsttcp_la-gsttcp-enumtypes.lo \
-	libgsttcp_la-gsttcp-marshal.lo
-nodist_libgsttcp_la_OBJECTS = $(am__objects_2)
-libgsttcp_la_OBJECTS = $(am_libgsttcp_la_OBJECTS) \
-	$(nodist_libgsttcp_la_OBJECTS)
+libgsttcp_la_OBJECTS = $(am_libgsttcp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsttcp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgsttcp_la_CFLAGS) $(CFLAGS) \
 	$(libgsttcp_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -176,21 +203,17 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgsttcp_la_SOURCES) $(nodist_libgsttcp_la_SOURCES)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libgsttcp_la_SOURCES)
 DIST_SOURCES = $(am__libgsttcp_la_SOURCES_DIST)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -198,6 +221,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -492,16 +532,6 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgsttcp.la
-
-# variables used for enum/marshal generation
-glib_enum_headers = gsttcp.h
-glib_enum_define = GST_TCP
-glib_gen_prefix = gst_tcp
-glib_gen_basename = gsttcp
-enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
-built_sources = gsttcp-enumtypes.c gsttcp-marshal.c
-built_headers = gsttcp-enumtypes.h gsttcp-marshal.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
 @HAVE_SYS_SOCKET_H_FALSE@multifdsink_SOURCES = 
 @HAVE_SYS_SOCKET_H_TRUE@multifdsink_SOURCES = \
 @HAVE_SYS_SOCKET_H_TRUE@	gstmultifdsink.c
@@ -514,9 +544,6 @@
 	gstmultisocketsink.c  \
 	gsttcpserversrc.c gsttcpserversink.c
 
-nodist_libgsttcp_la_SOURCES = \
-	$(built_sources)
-
 libgsttcp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
 libgsttcp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgsttcp_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
@@ -529,13 +556,11 @@
   gsttcpserversrc.h gsttcpserversink.h gstmultihandlesink.h
 
 CLEANFILES = $(BUILT_SOURCES)
-EXTRA_DIST = gsttcp-marshal.list
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
+all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -556,7 +581,6 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/gst-glib-gen.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -566,6 +590,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -592,12 +617,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsttcp.la: $(libgsttcp_la_OBJECTS) $(libgsttcp_la_DEPENDENCIES) $(EXTRA_libgsttcp_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsttcp_la_LINK) -rpath $(plugindir) $(libgsttcp_la_OBJECTS) $(libgsttcp_la_LIBADD) $(LIBS)
 
@@ -610,8 +638,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstmultifdsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstmultihandlesink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gstmultisocketsink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcp-marshal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpclientsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttcp_la-gsttcpplugin.Plo@am__quote@
@@ -695,46 +721,21 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
 
-libgsttcp_la-gsttcp-enumtypes.lo: gsttcp-enumtypes.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Tpo -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Tpo $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttcp-enumtypes.c' object='libgsttcp_la-gsttcp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
-
-libgsttcp_la-gsttcp-marshal.lo: gsttcp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp-marshal.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Tpo -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Tpo $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttcp-marshal.c' object='libgsttcp_la-gsttcp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -746,15 +747,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -763,6 +760,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -798,15 +810,13 @@
 	  fi; \
 	done
 check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
+check: check-am
 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(plugindir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
+install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -837,7 +847,6 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
 clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
@@ -909,59 +918,24 @@
 
 uninstall-am: uninstall-pluginLTLIBRARIES
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
-# these are all the rules generating the relevant files
-$(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
-	$(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=$(glib_gen_prefix)_marshal $^ > $(glib_gen_basename)-marshal.h.tmp && \
-	mv $(glib_gen_basename)-marshal.h.tmp $(glib_gen_basename)-marshal.h
-
-$(glib_gen_basename)-marshal.c: $(glib_gen_basename)-marshal.list
-	$(AM_V_GEN)echo "#include \"$(glib_gen_basename)-marshal.h\"" >> $(glib_gen_basename)-marshal.c.tmp && \
-	$(GLIB_GENMARSHAL) --body --prefix=$(glib_gen_prefix)_marshal $^ >> $(glib_gen_basename)-marshal.c.tmp && \
-	mv $(glib_gen_basename)-marshal.c.tmp $(glib_gen_basename)-marshal.c
-
-$(glib_gen_basename)-enumtypes.h: $(glib_enum_headers)
-	$(AM_V_GEN)$(GLIB_MKENUMS) \
-	--fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
-	--fprod "\n/* enumerations from \"@filename@\" */\n" \
-	--vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
-	--ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \
-	$^ > $@
-
-$(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
-	@if test "x$(glib_enum_headers)" = "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi
-	$(AM_V_GEN)$(GLIB_MKENUMS) \
-	--fhead "#include \"$(glib_gen_basename)-enumtypes.h\"\n$(enum_headers)" \
-	--fprod "\n/* enumerations from \"@filename@\" */" \
-	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static volatile gsize g_define_type_id__volatile = 0;\n  if (g_once_init_enter (&g_define_type_id__volatile)) {\n    static const G@Type@Value values[] = {"     \
-	--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
-	--vtail "      { 0, NULL, NULL }\n    };\n    GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n  }\n  return g_define_type_id__volatile;\n}\n" \
-	$^ > $@
-
-# a hack rule to make sure .Plo files exist because they get include'd
-# from Makefile's
-.deps/%-marshal.Plo:
-	@touch $@
-
-.deps/%-enumtypes.Plo:
-	@touch $@
-
 Android.mk: Makefile.am $(BUILT_SOURCES)
 	androgenizer \
 	-:PROJECT libgsttcp -:SHARED libgsttcp \
diff --git a/gst/tcp/gstmultifdsink.c b/gst/tcp/gstmultifdsink.c
index e726d5e..87e540c 100644
--- a/gst/tcp/gstmultifdsink.c
+++ b/gst/tcp/gstmultifdsink.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -27,6 +27,9 @@
  * file descriptors can be added to multifdsink by emitting the #GstMultiFdSink::add signal. 
  * For each descriptor added, the #GstMultiFdSink::client-added signal will be called.
  *
+ * The multifdsink element needs to be set into READY, PAUSED or PLAYING state
+ * before operations such as adding clients are possible.
+ *
  * As of version 0.10.8, a client can also be added with the #GstMultiFdSink::add-full signal
  * that allows for more control over what and how much data a client 
  * initially receives.
@@ -122,7 +125,6 @@
 #endif
 
 #include "gstmultifdsink.h"
-#include "gsttcp-marshal.h"
 
 #define NOT_IMPLEMENTED 0
 
@@ -238,7 +240,7 @@
       g_signal_new ("add", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiFdSinkClass, add), NULL, NULL,
-      g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
   /**
    * GstMultiFdSink::add-full:
    * @gstmultifdsink:  the multifdsink element to emit this signal on
@@ -258,7 +260,7 @@
       g_signal_new ("add-full", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiFdSinkClass, add_full), NULL, NULL,
-      gst_tcp_marshal_VOID__INT_ENUM_INT_UINT64_INT_UINT64, G_TYPE_NONE, 6,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 6,
       G_TYPE_INT, GST_TYPE_SYNC_METHOD, GST_TYPE_FORMAT, G_TYPE_UINT64,
       GST_TYPE_FORMAT, G_TYPE_UINT64);
   /**
@@ -272,7 +274,7 @@
       g_signal_new ("remove", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiFdSinkClass, remove), NULL, NULL,
-      gst_tcp_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
   /**
    * GstMultiFdSink::remove-flush:
    * @gstmultifdsink: the multifdsink element to emit this signal on
@@ -285,7 +287,7 @@
       g_signal_new ("remove-flush", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiFdSinkClass, remove_flush), NULL, NULL,
-      gst_tcp_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
 
   /**
    * GstMultiFdSink::get-stats:
@@ -307,7 +309,7 @@
       g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiFdSinkClass, get_stats), NULL, NULL,
-      gst_tcp_marshal_BOXED__INT, GST_TYPE_STRUCTURE, 1, G_TYPE_INT);
+      g_cclosure_marshal_generic, GST_TYPE_STRUCTURE, 1, G_TYPE_INT);
 
   /**
    * GstMultiFdSink::client-added:
@@ -320,7 +322,7 @@
    */
   gst_multi_fd_sink_signals[SIGNAL_CLIENT_ADDED] =
       g_signal_new ("client-added", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, 0, NULL, NULL, gst_tcp_marshal_VOID__INT, G_TYPE_NONE,
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE,
       1, G_TYPE_INT);
   /**
    * GstMultiFdSink::client-removed:
@@ -338,7 +340,7 @@
    */
   gst_multi_fd_sink_signals[SIGNAL_CLIENT_REMOVED] =
       g_signal_new ("client-removed", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, 0, NULL, NULL, gst_tcp_marshal_VOID__INT_ENUM,
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_CLIENT_STATUS);
   /**
    * GstMultiFdSink::client-fd-removed:
@@ -357,7 +359,7 @@
    */
   gst_multi_fd_sink_signals[SIGNAL_CLIENT_FD_REMOVED] =
       g_signal_new ("client-fd-removed", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, 0, NULL, NULL, gst_tcp_marshal_VOID__INT,
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_NONE, 1, G_TYPE_INT);
 
   gst_element_class_set_static_metadata (gstelement_class,
diff --git a/gst/tcp/gstmultifdsink.h b/gst/tcp/gstmultifdsink.h
index 88b8486..14fb837 100644
--- a/gst/tcp/gstmultifdsink.h
+++ b/gst/tcp/gstmultifdsink.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c
index b8f90ba..ac523a3 100644
--- a/gst/tcp/gstmultihandlesink.c
+++ b/gst/tcp/gstmultihandlesink.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -107,7 +107,6 @@
 #include <gst/gst-i18n-plugin.h>
 
 #include "gstmultihandlesink.h"
-#include "gsttcp-marshal.h"
 
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
@@ -459,7 +458,7 @@
       g_signal_new ("clear", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiHandleSinkClass, clear), NULL, NULL,
-      g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 0);
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&sinktemplate));
@@ -656,6 +655,12 @@
   GstMultiHandleSinkClass *mhsinkclass =
       GST_MULTI_HANDLE_SINK_GET_CLASS (mhsink);
 
+  if (!sink->running) {
+    g_warning ("Element %s must be set to READY, PAUSED or PLAYING state "
+        "before clients can be added", GST_OBJECT_NAME (sink));
+    return;
+  }
+
   mhsinkclass->handle_debug (handle, debug);
   GST_DEBUG_OBJECT (sink, "%s adding client, sync_method %d, "
       "min_format %d, min_value %" G_GUINT64_FORMAT
diff --git a/gst/tcp/gstmultihandlesink.h b/gst/tcp/gstmultihandlesink.h
index 56c6798..bd125eb 100644
--- a/gst/tcp/gstmultihandlesink.h
+++ b/gst/tcp/gstmultihandlesink.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/tcp/gstmultisocketsink.c b/gst/tcp/gstmultisocketsink.c
index 673eb41..b405b09 100644
--- a/gst/tcp/gstmultisocketsink.c
+++ b/gst/tcp/gstmultisocketsink.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -109,7 +109,6 @@
 #include <string.h>
 
 #include "gstmultisocketsink.h"
-#include "gsttcp-marshal.h"
 
 #ifndef G_OS_WIN32
 #include <netinet/in.h>
@@ -229,7 +228,7 @@
       g_signal_new ("add", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiSocketSinkClass, add), NULL, NULL,
-      g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_SOCKET);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_SOCKET);
   /**
    * GstMultiSocketSink::add-full:
    * @gstmultisocketsink: the multisocketsink element to emit this signal on
@@ -249,7 +248,7 @@
       g_signal_new ("add-full", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiSocketSinkClass, add_full), NULL, NULL,
-      gst_tcp_marshal_VOID__OBJECT_ENUM_ENUM_UINT64_ENUM_UINT64, G_TYPE_NONE, 6,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 6,
       G_TYPE_SOCKET, GST_TYPE_SYNC_METHOD, GST_TYPE_FORMAT, G_TYPE_UINT64,
       GST_TYPE_FORMAT, G_TYPE_UINT64);
   /**
@@ -263,7 +262,7 @@
       g_signal_new ("remove", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiSocketSinkClass, remove), NULL, NULL,
-      g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_SOCKET);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_SOCKET);
   /**
    * GstMultiSocketSink::remove-flush:
    * @gstmultisocketsink: the multisocketsink element to emit this signal on
@@ -276,7 +275,7 @@
       g_signal_new ("remove-flush", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiSocketSinkClass, remove_flush), NULL, NULL,
-      g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_SOCKET);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_SOCKET);
 
   /**
    * GstMultiSocketSink::get-stats:
@@ -296,7 +295,7 @@
       g_signal_new ("get-stats", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstMultiSocketSinkClass, get_stats), NULL, NULL,
-      gst_tcp_marshal_BOXED__OBJECT, GST_TYPE_STRUCTURE, 1, G_TYPE_SOCKET);
+      g_cclosure_marshal_generic, GST_TYPE_STRUCTURE, 1, G_TYPE_SOCKET);
 
   /**
    * GstMultiSocketSink::client-added:
@@ -309,7 +308,7 @@
    */
   gst_multi_socket_sink_signals[SIGNAL_CLIENT_ADDED] =
       g_signal_new ("client-added", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_NONE, 1, G_TYPE_OBJECT);
   /**
    * GstMultiSocketSink::client-removed:
@@ -327,7 +326,7 @@
    */
   gst_multi_socket_sink_signals[SIGNAL_CLIENT_REMOVED] =
       g_signal_new ("client-removed", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, 0, NULL, NULL, gst_tcp_marshal_VOID__OBJECT_ENUM,
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_CLIENT_STATUS);
   /**
    * GstMultiSocketSink::client-socket-removed:
@@ -346,7 +345,7 @@
    */
   gst_multi_socket_sink_signals[SIGNAL_CLIENT_SOCKET_REMOVED] =
       g_signal_new ("client-socket-removed", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
       G_TYPE_NONE, 1, G_TYPE_SOCKET);
 
   gst_element_class_set_static_metadata (gstelement_class,
diff --git a/gst/tcp/gstmultisocketsink.h b/gst/tcp/gstmultisocketsink.h
index 2f6432e..6111b16 100644
--- a/gst/tcp/gstmultisocketsink.h
+++ b/gst/tcp/gstmultisocketsink.h
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/tcp/gsttcp-marshal.list b/gst/tcp/gsttcp-marshal.list
deleted file mode 100644
index 1fc3831..0000000
--- a/gst/tcp/gsttcp-marshal.list
+++ /dev/null
@@ -1,8 +0,0 @@
-VOID:STRING,UINT
-VOID:OBJECT,ENUM
-VOID:OBJECT,ENUM,ENUM,UINT64,ENUM,UINT64
-BOXED:OBJECT
-VOID:INT,ENUM,INT,UINT64,INT,UINT64
-VOID:INT
-VOID:INT,ENUM
-BOXED:INT
diff --git a/gst/tcp/gsttcp.h b/gst/tcp/gsttcp.h
index aef6b74..774bd27 100644
--- a/gst/tcp/gsttcp.h
+++ b/gst/tcp/gsttcp.h
@@ -16,14 +16,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_TCP_HELP_H__
 #define __GST_TCP_HELP_H__
 
-#include "gsttcp-enumtypes.h"
 #include <gst/gst.h>
 
 #define TCP_HIGHEST_PORT        65535
diff --git a/gst/tcp/gsttcpclientsink.c b/gst/tcp/gsttcpclientsink.c
index 5ec8416..d2465a6 100644
--- a/gst/tcp/gsttcpclientsink.c
+++ b/gst/tcp/gsttcpclientsink.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/tcp/gsttcpclientsink.h b/gst/tcp/gsttcpclientsink.h
index f9fa437..9e89c73 100644
--- a/gst/tcp/gsttcpclientsink.h
+++ b/gst/tcp/gsttcpclientsink.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/tcp/gsttcpclientsrc.c b/gst/tcp/gsttcpclientsrc.c
index 1dbc426..d3668b9 100644
--- a/gst/tcp/gsttcpclientsrc.c
+++ b/gst/tcp/gsttcpclientsrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
diff --git a/gst/tcp/gsttcpclientsrc.h b/gst/tcp/gsttcpclientsrc.h
index 6f17506..3babe26 100644
--- a/gst/tcp/gsttcpclientsrc.h
+++ b/gst/tcp/gsttcpclientsrc.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/tcp/gsttcpplugin.c b/gst/tcp/gsttcpplugin.c
index 4ba484a..ac9867e 100644
--- a/gst/tcp/gsttcpplugin.c
+++ b/gst/tcp/gsttcpplugin.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/tcp/gsttcpserversink.c b/gst/tcp/gsttcpserversink.c
index e566421..715ef53 100644
--- a/gst/tcp/gsttcpserversink.c
+++ b/gst/tcp/gsttcpserversink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -41,7 +41,6 @@
 
 #include "gsttcp.h"
 #include "gsttcpserversink.h"
-#include "gsttcp-marshal.h"
 
 #define TCP_BACKLOG             5
 
@@ -87,6 +86,8 @@
   gobject_class->get_property = gst_tcp_server_sink_get_property;
   gobject_class->finalize = gst_tcp_server_sink_finalize;
 
+  /* FIXME 2.0: Rename this to bind-address, host does not make much
+   * sense here */
   g_object_class_install_property (gobject_class, PROP_HOST,
       g_param_spec_string ("host", "host", "The host/IP to listen on",
           TCP_DEFAULT_HOST, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
diff --git a/gst/tcp/gsttcpserversink.h b/gst/tcp/gsttcpserversink.h
index 0786d03..4d1e013 100644
--- a/gst/tcp/gsttcpserversink.h
+++ b/gst/tcp/gsttcpserversink.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/tcp/gsttcpserversrc.c b/gst/tcp/gsttcpserversrc.c
index 2a33b1d..141181d 100644
--- a/gst/tcp/gsttcpserversrc.c
+++ b/gst/tcp/gsttcpserversrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -98,6 +98,8 @@
   gobject_class->get_property = gst_tcp_server_src_get_property;
   gobject_class->finalize = gst_tcp_server_src_finalize;
 
+  /* FIXME 2.0: Rename this to bind-address, host does not make much
+   * sense here */
   g_object_class_install_property (gobject_class, PROP_HOST,
       g_param_spec_string ("host", "Host", "The hostname to listen as",
           TCP_DEFAULT_LISTEN_HOST, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
diff --git a/gst/tcp/gsttcpserversrc.h b/gst/tcp/gsttcpserversrc.h
index c49fc97..ad0a313 100644
--- a/gst/tcp/gsttcpserversrc.h
+++ b/gst/tcp/gsttcpserversrc.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/gst/typefind/Makefile.in b/gst/typefind/Makefile.in
index 17ca2ba..45b2470 100644
--- a/gst/typefind/Makefile.in
+++ b/gst/typefind/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,13 +80,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/typefind
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -138,11 +165,24 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgsttypefindfunctions_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgsttypefindfunctions_la_CFLAGS) \
 	$(CFLAGS) $(libgsttypefindfunctions_la_LDFLAGS) $(LDFLAGS) -o \
 	$@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -155,20 +195,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgsttypefindfunctions_la_SOURCES)
 DIST_SOURCES = $(libgsttypefindfunctions_la_SOURCES)
 am__can_run_installinfo = \
@@ -176,6 +212,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -515,6 +568,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -541,12 +595,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgsttypefindfunctions.la: $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_DEPENDENCIES) $(EXTRA_libgsttypefindfunctions_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgsttypefindfunctions_la_LINK) -rpath $(plugindir) $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_LIBADD) $(LIBS)
 
@@ -592,26 +649,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -623,15 +669,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -640,6 +682,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -784,19 +841,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 82accf7..71b9234 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -478,6 +478,67 @@
   }                                                                     \
 }
 
+#define XML_INC_BUFFER_DATA {                                           \
+  pos++;                                                                \
+  if (pos >= length) {                                                  \
+    return FALSE;                                                       \
+  } else {                                                              \
+    data++;                                                             \
+  }                                                                     \
+}
+
+static gboolean
+xml_check_first_element_from_data (const guint8 * data, guint length,
+    const gchar * element, guint elen, gboolean strict)
+{
+  gboolean got_xmldec;
+  guint pos = 0;
+
+  g_return_val_if_fail (data != NULL, FALSE);
+
+  if (length <= 5)
+    return FALSE;
+
+  /* look for the XMLDec
+   * see XML spec 2.8, Prolog and Document Type Declaration
+   * http://www.w3.org/TR/2004/REC-xml-20040204/#sec-prolog-dtd */
+  got_xmldec = (memcmp (data, "<?xml", 5) == 0);
+
+  if (strict && !got_xmldec)
+    return FALSE;
+
+  /* skip XMLDec in any case if we've got one */
+  if (got_xmldec) {
+    if (pos + 5 >= length)
+      return FALSE;
+    pos += 5;
+    data += 5;
+  }
+
+  /* look for the first element, it has to be the requested element. Bail
+   * out if it is not within the first 4kB. */
+  while (data && pos < MIN (4096, length)) {
+    while (*data != '<' && pos < MIN (4096, length)) {
+      XML_INC_BUFFER_DATA;
+    }
+
+    XML_INC_BUFFER_DATA;
+    if (!g_ascii_isalpha (*data)) {
+      /* if not alphabetic, it's a PI or an element / attribute declaration
+       * like <?xxx or <!xxx */
+      XML_INC_BUFFER_DATA;
+      continue;
+    }
+
+    /* the first normal element, check if it's the one asked for */
+    if (pos + elen + 1 >= length)
+      return FALSE;
+    return (data && element && strncmp ((char *) data, element, elen) == 0);
+  }
+
+  return FALSE;
+}
+
 static gboolean
 xml_check_first_element (GstTypeFind * tf, const gchar * element, guint elen,
     gboolean strict)
@@ -2080,6 +2141,7 @@
   guint pack_size;
   guint since_last_sync = 0;
   guint32 sync_word = 0xffffffff;
+  guint potential_headers = 0;
 
   G_STMT_START {
     gint len;
@@ -2114,6 +2176,7 @@
       }
       pack_size = 0;
 
+      potential_headers++;
       if (IS_MPEG_PACK_CODE (data[0])) {
         if ((data[1] & 0xC0) == 0x40) {
           /* MPEG-2 */
@@ -2173,6 +2236,17 @@
     prob = GST_TYPE_FIND_POSSIBLE + (10 * (pack_headers + pes_headers));
     prob = MIN (prob, GST_TYPE_FIND_MAXIMUM);
 
+    /* With the above test, we get into problems when we try to typefind
+       a MPEG stream from a small amount of data, which can happen when
+       we get data pushed from a HTTP source. We thus make a second test
+       to give higher probability if all the potential headers were either
+       pack or pes headers (ie, no potential header was unrecognized). */
+    if (potential_headers == pack_headers + pes_headers) {
+      GST_LOG ("Only %u headers, but all were recognized", potential_headers);
+      prob += 10;
+      prob = MIN (prob, GST_TYPE_FIND_MAXIMUM);
+    }
+
     /* lower probability if the first packet wasn't right at the start */
     if (data0 != first_sync && prob >= 10)
       prob -= 10;
@@ -2434,7 +2508,8 @@
 }
 
 /*** video/x-h263 H263 video stream ***/
-static GstStaticCaps h263_video_caps = GST_STATIC_CAPS ("video/x-h263");
+static GstStaticCaps h263_video_caps =
+GST_STATIC_CAPS ("video/x-h263, variant=(string)itu");
 
 #define H263_VIDEO_CAPS gst_static_caps_get(&h263_video_caps)
 
@@ -2506,6 +2581,7 @@
   gboolean seen_idr = FALSE;
   gboolean seen_sps = FALSE;
   gboolean seen_pps = FALSE;
+  gboolean seen_ssps = FALSE;
   int nut, ref;
   int good = 0;
   int bad = 0;
@@ -2540,18 +2616,25 @@
           good++;
         }
       } else if (nut >= 14 && nut <= 33) {
-        /* reserved */
-        /* Theoretically these are good, since if they exist in the
-           stream it merely means that a newer backwards-compatible
-           h.264 stream.  But we should be identifying that separately. */
-        bad++;
+        if (nut == 15) {
+          seen_ssps = TRUE;
+          good++;
+        } else if (seen_ssps && (nut == 14 || nut == 20)) {
+          good++;
+        } else {
+          /* reserved */
+          /* Theoretically these are good, since if they exist in the
+             stream it merely means that a newer backwards-compatible
+             h.264 stream.  But we should be identifying that separately. */
+          bad++;
+        }
       } else {
         /* unspecified, application specific */
         /* don't consider these bad */
       }
 
-      GST_LOG ("good:%d, bad:%d, pps:%d, sps:%d, idr:%d", good, bad, seen_pps,
-          seen_sps, seen_idr);
+      GST_LOG ("good:%d, bad:%d, pps:%d, sps:%d, idr:%d ssps:%d", good, bad,
+          seen_pps, seen_sps, seen_idr, seen_ssps);
 
       if (seen_sps && seen_pps && seen_idr && good >= 10 && bad < 4) {
         gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, H264_VIDEO_CAPS);
@@ -2563,8 +2646,8 @@
     data_scan_ctx_advance (tf, &c, 1);
   }
 
-  GST_LOG ("good:%d, bad:%d, pps:%d, sps:%d, idr:%d", good, bad, seen_pps,
-      seen_sps, seen_idr);
+  GST_LOG ("good:%d, bad:%d, pps:%d, sps:%d, idr:%d ssps=%d", good, bad,
+      seen_pps, seen_sps, seen_idr, seen_ssps);
 
   if (good >= 2 && bad == 0) {
     gst_type_find_suggest (tf, GST_TYPE_FIND_POSSIBLE, H264_VIDEO_CAPS);
@@ -3192,6 +3275,67 @@
   }
 }
 
+/*** application/vnd.ms-sstr+xml ***/
+
+static GstStaticCaps mss_manifest_caps =
+GST_STATIC_CAPS ("application/vnd.ms-sstr+xml");
+#define MSS_MANIFEST_CAPS (gst_static_caps_get(&mss_manifest_caps))
+static void
+mss_manifest_type_find (GstTypeFind * tf, gpointer unused)
+{
+  if (xml_check_first_element (tf, "SmoothStreamingMedia", 20, TRUE)) {
+    gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MSS_MANIFEST_CAPS);
+  } else {
+    const guint8 *data;
+    gboolean utf16_le, utf16_be;
+    const gchar *convert_from = NULL;
+    guint8 *converted_data;
+
+    /* try detecting the charset */
+    data = gst_type_find_peek (tf, 0, 2);
+
+    if (data == NULL)
+      return;
+
+    /* look for a possible BOM */
+    utf16_le = data[0] == 0xFF && data[1] == 0xFE;
+    utf16_be = data[0] == 0xFE && data[1] == 0xFF;
+    if (utf16_le) {
+      convert_from = "UTF-16LE";
+    } else if (utf16_be) {
+      convert_from = "UTF-16BE";
+    }
+
+    if (convert_from) {
+      gsize new_size = 0;
+      guint length = gst_type_find_get_length (tf);
+
+      /* try a default that should be enough */
+      if (length == 0)
+        length = 512;
+      data = gst_type_find_peek (tf, 0, length);
+
+      if (data) {
+        /* skip the BOM */
+        data += 2;
+        length -= 2;
+
+        converted_data =
+            (guint8 *) g_convert ((gchar *) data, length, "UTF-8", convert_from,
+            NULL, &new_size, NULL);
+        if (converted_data) {
+          if (xml_check_first_element_from_data (converted_data, new_size,
+                  "SmoothStreamingMedia", 20, TRUE))
+            gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM,
+                MSS_MANIFEST_CAPS);
+
+          g_free (converted_data);
+        }
+      }
+    }
+  }
+}
+
 /*** image/jpeg ***/
 
 #define JPEG_MARKER_IS_START_OF_FRAME(x) \
@@ -4343,6 +4487,66 @@
   }
 }
 
+/*** audio/x-sbc ***/
+static GstStaticCaps sbc_caps = GST_STATIC_CAPS ("audio/x-sbc");
+#define SBC_CAPS (gst_static_caps_get(&sbc_caps))
+
+static gsize
+sbc_check_header (const guint8 * data, gsize len, guint * rate,
+    guint * channels)
+{
+  static const guint16 sbc_rates[4] = { 16000, 32000, 44100, 48000 };
+  static const guint8 sbc_blocks[4] = { 4, 8, 12, 16 };
+  guint n_blocks, ch_mode, n_subbands, bitpool;
+
+  if (data[0] != 0x9C || len < 4)
+    return 0;
+
+  n_blocks = sbc_blocks[(data[1] >> 4) & 0x03];
+  ch_mode = (data[1] >> 2) & 0x03;
+  n_subbands = (data[1] & 0x01) ? 8 : 4;
+  bitpool = data[2];
+  if (bitpool < 2)
+    return 0;
+
+  *rate = sbc_rates[(data[1] >> 6) & 0x03];
+  *channels = (ch_mode == 0) ? 1 : 2;
+
+  if (ch_mode == 0)
+    return 4 + (n_subbands * 1) / 2 + (n_blocks * 1 * bitpool) / 8;
+  else if (ch_mode == 1)
+    return 4 + (n_subbands * 2) / 2 + (n_blocks * 2 * bitpool) / 8;
+  else if (ch_mode == 2)
+    return 4 + (n_subbands * 2) / 2 + (n_blocks * bitpool) / 8;
+  else if (ch_mode == 3)
+    return 4 + (n_subbands * 2) / 2 + (n_subbands + n_blocks * bitpool) / 8;
+
+  return 0;
+}
+
+static void
+sbc_type_find (GstTypeFind * tf, gpointer unused)
+{
+  const guint8 *data;
+  gsize frame_len;
+  guint i, rate, channels, offset = 0;
+
+  for (i = 0; i < 10; ++i) {
+    data = gst_type_find_peek (tf, offset, 8);
+    if (data == NULL)
+      return;
+
+    frame_len = sbc_check_header (data, 8, &rate, &channels);
+    if (frame_len == 0)
+      return;
+
+    offset += frame_len;
+  }
+  gst_type_find_suggest_simple (tf, GST_TYPE_FIND_POSSIBLE, "audio/x-sbc",
+      "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, channels,
+      "parsed", G_TYPE_BOOLEAN, FALSE, NULL);
+}
+
 /*** audio/iLBC-sh ***/
 /* NOTE: do not replace this function with two TYPE_FIND_REGISTER_START_WITH */
 static GstStaticCaps ilbc_caps = GST_STATIC_CAPS ("audio/iLBC-sh");
@@ -4715,6 +4919,93 @@
       "application/octet-stream", NULL);
 }
 
+/* SSA/ASS subtitles
+ *
+ * http://en.wikipedia.org/wiki/SubStation_Alpha
+ * http://matroska.org/technical/specs/subtitles/ssa.html
+ */
+static void
+ssa_type_find (GstTypeFind * tf, gpointer private)
+{
+  const gchar *start, *end, *ver_str, *media_type = NULL;
+  const guint8 *data;
+  gchar *str, *script_type, *p = NULL;
+  gint64 len;
+
+  data = gst_type_find_peek (tf, 0, 32);
+
+  if (data == NULL)
+    return;
+
+  /* FIXME: detect utf-16/32 BOM and convert before typefinding the rest */
+
+  /* there might be a UTF-8 BOM at the beginning */
+  if (memcmp (data, "[Script Info]", 13) != 0 &&
+      memcmp (data + 3, "[Script Info]", 13) != 0) {
+    return;
+  }
+
+  /* now check if we have SSA or ASS */
+  len = gst_type_find_get_length (tf);
+  if (len > 8192)
+    len = 8192;
+
+  data = gst_type_find_peek (tf, 0, len);
+  if (data == NULL)
+    return;
+
+  /* skip BOM */
+  start = (gchar *) memchr (data, '[', 5);
+  g_assert (start);
+  len -= (start - (gchar *) data);
+
+  /* ignore anything non-UTF8 for now, in future we might at least allow
+   * other UTF variants that are clearly prefixed with the appropriate BOM */
+  if (!g_utf8_validate (start, len, &end) && (len - (end - start)) > 6) {
+    GST_FIXME ("non-UTF8 SSA/ASS file");
+    return;
+  }
+
+  /* something at start,  but not a UTF-8 BOM? */
+  if (data[0] != '[' && (data[0] != 0xEF || data[1] != 0xBB || data[2] != 0xBF))
+    return;
+
+  /* ignore any partial UTF-8 characters at the end */
+  len = end - start;
+
+  /* create a NUL-terminated string so it's easier to process it safely */
+  str = g_strndup (start, len - 1);
+  script_type = strstr (str, "ScriptType:");
+  if (script_type != NULL) {
+    gdouble version;
+
+    ver_str = script_type + 11;
+    while (*ver_str == ' ' || *ver_str == 'v' || *ver_str == 'V')
+      ++ver_str;
+    version = g_ascii_strtod (ver_str, &p);
+    if (version == 4.0 && p != NULL && *p == '+')
+      media_type = "application/x-ass";
+    else if (version >= 1.0 && version <= 4.0)
+      media_type = "application/x-ssa";
+  }
+
+  if (media_type == NULL) {
+    if (strstr (str, "[v4+ Styles]") || strstr (str, "[V4+ Styles]"))
+      media_type = "application/x-ass";
+    else if (strstr (str, "[v4 Styles]") || strstr (str, "[V4 Styles]"))
+      media_type = "application/x-ssa";
+  }
+
+  if (media_type != NULL) {
+    gst_type_find_suggest_simple (tf, GST_TYPE_FIND_MAXIMUM,
+        media_type, "parsed", G_TYPE_BOOLEAN, FALSE, NULL);
+  } else {
+    GST_WARNING ("could not detect SSA/ASS variant");
+  }
+
+  g_free (str);
+}
+
 /*** generic typefind for streams that have some data at a specific position***/
 typedef struct
 {
@@ -4904,6 +5195,9 @@
       GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "application/x-shockwave-flash",
       GST_RANK_SECONDARY, swf_type_find, "swf,swfl", SWF_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "application/vnd.ms-sstr+xml",
+      GST_RANK_PRIMARY, mss_manifest_type_find, NULL, MSS_MANIFEST_CAPS, NULL,
+      NULL);
   TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-flv", GST_RANK_SECONDARY,
       "flv", "FLV", 3, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "text/plain", GST_RANK_MARGINAL, utf8_type_find,
@@ -4971,6 +5265,8 @@
       "amr", "#!AMR-WB", 7, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER (plugin, "audio/iLBC-sh", GST_RANK_PRIMARY, ilbc_type_find,
       "ilbc", ILBC_CAPS, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "audio/x-sbc", GST_RANK_MARGINAL, sbc_type_find,
+      "sbc", SBC_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-sid", GST_RANK_MARGINAL,
       "sid", "PSID", 4, GST_TYPE_FIND_MAXIMUM);
   TYPE_FIND_REGISTER_START_WITH (plugin, "image/x-xcf", GST_RANK_SECONDARY,
@@ -5089,6 +5385,9 @@
   TYPE_FIND_REGISTER (plugin, "application/octet-stream", GST_RANK_MARGINAL,
       dvdiso_type_find, NULL, NULL, NULL, NULL);
 
+  TYPE_FIND_REGISTER (plugin, "application/x-ssa", GST_RANK_SECONDARY,
+      ssa_type_find, "ssa,ass", NULL, NULL, NULL);
+
   return TRUE;
 }
 
diff --git a/gst/videoconvert/Makefile.in b/gst/videoconvert/Makefile.in
index a6dc2c0..42ed6e7 100644
--- a/gst/videoconvert/Makefile.in
+++ b/gst/videoconvert/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,15 +102,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/videoconvert
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -166,10 +192,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideoconvert_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideoconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstvideoconvert_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideoconvert_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -182,20 +221,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideoconvert_la_SOURCES) \
 	$(nodist_libgstvideoconvert_la_SOURCES)
 DIST_SOURCES = $(libgstvideoconvert_la_SOURCES)
@@ -205,6 +240,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -562,6 +614,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -588,12 +641,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideoconvert.la: $(libgstvideoconvert_la_OBJECTS) $(libgstvideoconvert_la_DEPENDENCIES) $(EXTRA_libgstvideoconvert_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideoconvert_la_LINK) -rpath $(plugindir) $(libgstvideoconvert_la_OBJECTS) $(libgstvideoconvert_la_LIBADD) $(LIBS)
 
@@ -663,26 +719,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -694,15 +739,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -711,6 +752,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -861,19 +917,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES ctags \
-	dist-hook distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am dist-hook distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/videoconvert/gstcms.c b/gst/videoconvert/gstcms.c
index ae7367e..96a9f70 100644
--- a/gst/videoconvert/gstcms.c
+++ b/gst/videoconvert/gstcms.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/gst/videoconvert/gstcms.h b/gst/videoconvert/gstcms.h
index 2930b7d..f926a44 100644
--- a/gst/videoconvert/gstcms.h
+++ b/gst/videoconvert/gstcms.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef _GST_CMS_H_
diff --git a/gst/videoconvert/gstvideoconvert.c b/gst/videoconvert/gstvideoconvert.c
index 9ba62ba..f9b4495 100644
--- a/gst/videoconvert/gstvideoconvert.c
+++ b/gst/videoconvert/gstvideoconvert.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -62,7 +62,8 @@
   PROP_DITHER
 };
 
-#define CSP_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)
+#define CSP_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ";" \
+    GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("ANY", GST_VIDEO_FORMATS_ALL)
 
 static GstStaticPadTemplate gst_video_convert_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -112,6 +113,7 @@
 gst_video_convert_caps_remove_format_info (GstCaps * caps)
 {
   GstStructure *st;
+  GstCapsFeatures *f;
   gint i, n;
   GstCaps *res;
 
@@ -120,29 +122,170 @@
   n = gst_caps_get_size (caps);
   for (i = 0; i < n; i++) {
     st = gst_caps_get_structure (caps, i);
+    f = gst_caps_get_features (caps, i);
 
     /* If this is already expressed by the existing caps
      * skip this structure */
-    if (i > 0 && gst_caps_is_subset_structure (res, st))
+    if (i > 0 && gst_caps_is_subset_structure_full (res, st, f))
       continue;
 
     st = gst_structure_copy (st);
-    gst_structure_remove_fields (st, "format",
-        "colorimetry", "chroma-site", NULL);
+    /* Only remove format info for the cases when we can actually convert */
+    if (!gst_caps_features_is_any (f)
+        && gst_caps_features_is_equal (f,
+            GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))
+      gst_structure_remove_fields (st, "format", "colorimetry", "chroma-site",
+          NULL);
 
-    gst_caps_append_structure (res, st);
+    gst_caps_append_structure_full (res, st, gst_caps_features_copy (f));
   }
 
   return res;
 }
 
+#define SCORE_PALETTE_LOSS        1
+#define SCORE_COLOR_LOSS          2
+#define SCORE_ALPHA_LOSS          4
+#define SCORE_CHROMA_W_LOSS       8
+#define SCORE_CHROMA_H_LOSS      16
+#define SCORE_DEPTH_LOSS         32
+
+#define COLOR_MASK   (GST_VIDEO_FORMAT_FLAG_YUV | \
+                      GST_VIDEO_FORMAT_FLAG_RGB | GST_VIDEO_FORMAT_FLAG_GRAY)
+#define ALPHA_MASK   (GST_VIDEO_FORMAT_FLAG_ALPHA)
+#define PALETTE_MASK (GST_VIDEO_FORMAT_FLAG_PALETTE)
+
+/* calculate how much loss a conversion would be */
+static void
+score_value (GstBaseTransform * base, const GstVideoFormatInfo * in_info,
+    const GValue * val, gint * min_loss, const GstVideoFormatInfo ** out_info)
+{
+  const gchar *fname;
+  const GstVideoFormatInfo *t_info;
+  GstVideoFormatFlags in_flags, t_flags;
+  gint loss;
+
+  fname = g_value_get_string (val);
+  t_info = gst_video_format_get_info (gst_video_format_from_string (fname));
+  if (!t_info)
+    return;
+
+  /* accept input format immediately without loss */
+  if (in_info == t_info) {
+    *min_loss = 0;
+    *out_info = t_info;
+    return;
+  }
+
+  loss = 1;
+
+  in_flags = GST_VIDEO_FORMAT_INFO_FLAGS (in_info);
+  in_flags &= ~GST_VIDEO_FORMAT_FLAG_LE;
+  in_flags &= ~GST_VIDEO_FORMAT_FLAG_COMPLEX;
+  in_flags &= ~GST_VIDEO_FORMAT_FLAG_UNPACK;
+
+  t_flags = GST_VIDEO_FORMAT_INFO_FLAGS (t_info);
+  t_flags &= ~GST_VIDEO_FORMAT_FLAG_LE;
+  t_flags &= ~GST_VIDEO_FORMAT_FLAG_COMPLEX;
+  t_flags &= ~GST_VIDEO_FORMAT_FLAG_UNPACK;
+
+  if ((t_flags & PALETTE_MASK) != (in_flags & PALETTE_MASK))
+    loss += SCORE_PALETTE_LOSS;
+
+  if ((t_flags & COLOR_MASK) != (in_flags & COLOR_MASK))
+    loss += SCORE_COLOR_LOSS;
+
+  if ((t_flags & ALPHA_MASK) != (in_flags & ALPHA_MASK))
+    loss += SCORE_ALPHA_LOSS;
+
+  if ((in_info->h_sub[1]) < (t_info->h_sub[1]))
+    loss += SCORE_CHROMA_H_LOSS;
+  if ((in_info->w_sub[1]) < (t_info->w_sub[1]))
+    loss += SCORE_CHROMA_W_LOSS;
+
+  if ((in_info->bits) > (t_info->bits))
+    loss += SCORE_DEPTH_LOSS;
+
+  GST_DEBUG_OBJECT (base, "score %s -> %s = %d",
+      GST_VIDEO_FORMAT_INFO_NAME (in_info),
+      GST_VIDEO_FORMAT_INFO_NAME (t_info), loss);
+
+  if (loss < *min_loss) {
+    GST_DEBUG_OBJECT (base, "found new best %d", loss);
+    *out_info = t_info;
+    *min_loss = loss;
+  }
+}
+
+static void
+gst_video_convert_fixate_format (GstBaseTransform * base, GstCaps * caps,
+    GstCaps * result)
+{
+  GstStructure *ins, *outs;
+  const gchar *in_format;
+  const GstVideoFormatInfo *in_info, *out_info = NULL;
+  gint min_loss = G_MAXINT;
+  guint i, capslen;
+
+  ins = gst_caps_get_structure (caps, 0);
+  in_format = gst_structure_get_string (ins, "format");
+  if (!in_format)
+    return;
+
+  GST_DEBUG_OBJECT (base, "source format %s", in_format);
+
+  in_info =
+      gst_video_format_get_info (gst_video_format_from_string (in_format));
+  if (!in_info)
+    return;
+
+  outs = gst_caps_get_structure (result, 0);
+
+  capslen = gst_caps_get_size (result);
+  GST_DEBUG_OBJECT (base, "iterate %d structures", capslen);
+  for (i = 0; i < capslen; i++) {
+    GstStructure *tests;
+    const GValue *format;
+
+    tests = gst_caps_get_structure (result, i);
+    format = gst_structure_get_value (tests, "format");
+    /* should not happen */
+    if (format == NULL)
+      continue;
+
+    if (GST_VALUE_HOLDS_LIST (format)) {
+      gint j, len;
+
+      len = gst_value_list_get_size (format);
+      GST_DEBUG_OBJECT (base, "have %d formats", len);
+      for (j = 0; j < len; j++) {
+        const GValue *val;
+
+        val = gst_value_list_get_value (format, j);
+        if (G_VALUE_HOLDS_STRING (val)) {
+          score_value (base, in_info, val, &min_loss, &out_info);
+          if (min_loss == 0)
+            break;
+        }
+      }
+    } else if (G_VALUE_HOLDS_STRING (format)) {
+      score_value (base, in_info, format, &min_loss, &out_info);
+    }
+  }
+  if (out_info)
+    gst_structure_set (outs, "format", G_TYPE_STRING,
+        GST_VIDEO_FORMAT_INFO_NAME (out_info), NULL);
+}
+
+
 static GstCaps *
 gst_video_convert_fixate_caps (GstBaseTransform * trans,
     GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
 {
   GstCaps *result;
 
-  GST_DEBUG_OBJECT (trans, "fixating caps %" GST_PTR_FORMAT, othercaps);
+  GST_DEBUG_OBJECT (trans, "trying to fixate othercaps %" GST_PTR_FORMAT
+      " based on caps %" GST_PTR_FORMAT, othercaps, caps);
 
   result = gst_caps_intersect (othercaps, caps);
   if (gst_caps_is_empty (result)) {
@@ -152,6 +295,11 @@
     gst_caps_unref (othercaps);
   }
 
+  GST_DEBUG_OBJECT (trans, "now fixating %" GST_PTR_FORMAT, result);
+
+  result = gst_caps_make_writable (result);
+  gst_video_convert_fixate_format (trans, caps, result);
+
   /* fixate remaining fields */
   result = gst_caps_fixate (result);
 
diff --git a/gst/videoconvert/gstvideoconvert.h b/gst/videoconvert/gstvideoconvert.h
index 0ea0241..00f588c 100644
--- a/gst/videoconvert/gstvideoconvert.h
+++ b/gst/videoconvert/gstvideoconvert.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEOCONVERT_H__
diff --git a/gst/videoconvert/gstvideoconvertorc-dist.c b/gst/videoconvert/gstvideoconvertorc-dist.c
index 7b59820..4a4f978 100644
--- a/gst/videoconvert/gstvideoconvertorc-dist.c
+++ b/gst/videoconvert/gstvideoconvertorc-dist.c
@@ -398,6 +398,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 27, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 109, 101, 109, 99, 112, 121, 95, 50, 100, 11,
+        1, 1, 12, 1, 1, 42, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_convert_orc_memcpy_2d);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_memcpy_2d");
@@ -407,6 +416,7 @@
 
       orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -606,6 +616,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
+        48, 95, 85, 89, 86, 89, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
+        2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
+        196, 0, 32, 4, 21, 1, 196, 1, 32, 5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_I420_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_I420_UYVY");
       orc_program_set_backup_function (p,
@@ -624,6 +646,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -824,6 +847,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
+        48, 95, 89, 85, 89, 50, 11, 4, 4, 11, 4, 4, 12, 2, 2, 12,
+        2, 2, 12, 1, 1, 12, 1, 1, 20, 2, 196, 32, 6, 7, 21, 1,
+        196, 0, 4, 32, 21, 1, 196, 1, 5, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_I420_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_I420_YUY2");
       orc_program_set_backup_function (p,
@@ -842,6 +877,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -882,10 +918,18 @@
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
   const orc_int8 *ORC_RESTRICT ptr7;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var39;
+#else
   orc_int8 var39;
+#endif
   orc_int8 var40;
   orc_union32 var41;
   orc_int8 var42;
@@ -970,10 +1014,18 @@
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
   const orc_int8 *ORC_RESTRICT ptr7;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var39;
+#else
   orc_int8 var39;
+#endif
   orc_int8 var40;
   orc_union32 var41;
   orc_int8 var42;
@@ -1062,6 +1114,20 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
+        48, 95, 65, 89, 85, 86, 11, 4, 4, 11, 4, 4, 12, 1, 1, 12,
+        1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2,
+        20, 2, 20, 1, 20, 1, 45, 34, 6, 45, 35, 7, 196, 32, 34, 35,
+        196, 33, 16, 4, 195, 0, 33, 32, 196, 33, 16, 5, 195, 1, 33, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_I420_AYUV);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_I420_AYUV");
       orc_program_set_backup_function (p,
@@ -1092,6 +1158,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1302,6 +1369,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85, 89,
+        50, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
+        1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
+        199, 32, 34, 4, 97, 0, 34, 21, 1, 199, 33, 34, 5, 97, 1, 34,
+        21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_YUY2_I420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_YUY2_I420");
       orc_program_set_backup_function (p,
@@ -1328,6 +1408,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1429,6 +1510,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
+        86, 89, 95, 89, 85, 89, 50, 11, 4, 4, 12, 4, 4, 21, 1, 183,
+        0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_UYVY_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_UYVY_YUY2");
@@ -1439,6 +1531,7 @@
 
       orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1559,6 +1652,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
+        111, 109, 97, 95, 52, 50, 48, 95, 52, 50, 50, 11, 1, 1, 11, 1,
+        1, 12, 1, 1, 42, 0, 4, 42, 1, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_planar_chroma_420_422);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_planar_chroma_420_422");
@@ -1572,6 +1676,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1682,6 +1787,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
+        111, 109, 97, 95, 52, 50, 48, 95, 52, 52, 52, 11, 2, 2, 11, 2,
+        2, 12, 1, 1, 20, 2, 151, 32, 4, 97, 0, 32, 97, 1, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_planar_chroma_420_444);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_planar_chroma_420_444");
@@ -1698,6 +1815,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1798,6 +1916,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
+        111, 109, 97, 95, 52, 50, 50, 95, 52, 52, 52, 11, 2, 2, 12, 1,
+        1, 20, 2, 151, 32, 4, 97, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_planar_chroma_422_444);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_planar_chroma_422_444");
@@ -1811,6 +1940,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1927,6 +2057,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
+        111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 50, 11, 1, 1, 12, 2,
+        2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_planar_chroma_444_422);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_planar_chroma_444_422");
@@ -1941,6 +2082,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2081,6 +2223,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
+        111, 109, 97, 95, 52, 52, 52, 95, 52, 50, 48, 11, 1, 1, 12, 2,
+        2, 12, 2, 2, 20, 2, 20, 1, 20, 1, 21, 1, 39, 32, 4, 5,
+        199, 33, 34, 32, 39, 0, 33, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_planar_chroma_444_420);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_planar_chroma_444_420");
@@ -2099,6 +2253,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2211,6 +2366,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 112, 108, 97, 110, 97, 114, 95, 99, 104, 114,
+        111, 109, 97, 95, 52, 50, 50, 95, 52, 50, 48, 11, 1, 1, 12, 1,
+        1, 12, 1, 1, 39, 0, 4, 5, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_planar_chroma_422_420);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_planar_chroma_422_420");
@@ -2222,6 +2388,7 @@
 
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2259,7 +2426,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2341,7 +2512,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2426,6 +2601,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
+        89, 50, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
+        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 33, 32,
+        4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
+        35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_YUY2_AYUV);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_YUY2_AYUV");
@@ -2447,6 +2635,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2482,7 +2671,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2564,7 +2757,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2649,6 +2846,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
+        86, 89, 95, 65, 89, 85, 86, 11, 8, 8, 12, 4, 4, 14, 2, 255,
+        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 21, 1, 199, 32, 33,
+        4, 21, 1, 196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34,
+        35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_UYVY_AYUV);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_UYVY_AYUV");
@@ -2670,6 +2880,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2828,6 +3039,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
+        89, 50, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
+        12, 4, 4, 20, 2, 21, 1, 199, 32, 0, 4, 199, 2, 1, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_YUY2_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y42B");
@@ -2843,6 +3066,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3005,6 +3229,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
+        86, 89, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
+        12, 4, 4, 20, 2, 21, 1, 199, 0, 32, 4, 199, 2, 1, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_UYVY_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y42B");
@@ -3020,6 +3256,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3194,6 +3431,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 85,
+        89, 50, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
+        12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 32, 0, 4, 199,
+        34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_YUY2_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_YUY2_Y444");
@@ -3215,6 +3464,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3389,6 +3639,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89,
+        86, 89, 95, 89, 52, 52, 52, 11, 2, 2, 11, 2, 2, 11, 2, 2,
+        12, 4, 4, 20, 2, 20, 1, 20, 1, 21, 1, 199, 0, 32, 4, 199,
+        34, 33, 32, 151, 1, 33, 151, 2, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_UYVY_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_UYVY_Y444");
@@ -3410,6 +3672,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3623,6 +3886,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 85, 89, 86,
+        89, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1, 11,
+        1, 1, 12, 4, 4, 12, 4, 4, 20, 2, 20, 2, 20, 2, 21, 1,
+        199, 34, 32, 4, 97, 0, 34, 21, 1, 199, 34, 33, 5, 97, 1, 34,
+        21, 1, 39, 32, 32, 33, 199, 3, 2, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_UYVY_I420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_UYVY_I420");
       orc_program_set_backup_function (p,
@@ -3649,6 +3925,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -3988,6 +4265,21 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 73, 52, 50, 48, 11, 2, 2, 11, 2, 2, 11, 1, 1,
+        11, 1, 1, 12, 8, 8, 12, 8, 8, 20, 4, 20, 4, 20, 4, 20,
+        4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21,
+        1, 189, 0, 32, 21, 1, 198, 34, 32, 5, 21, 1, 189, 1, 32, 21,
+        2, 39, 35, 33, 34, 21, 1, 199, 37, 36, 35, 199, 38, 39, 36, 39,
+        2, 38, 39, 199, 38, 39, 37, 39, 3, 38, 39, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_I420);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_I420");
@@ -4028,6 +4320,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4240,6 +4533,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20,
+        2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
+        36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
+        32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_YUY2");
@@ -4263,6 +4569,7 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4467,6 +4774,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20,
+        2, 20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34,
+        36, 21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0,
+        33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_UYVY");
@@ -4490,6 +4810,7 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4702,6 +5023,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1,
+        12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32,
+        4, 198, 34, 35, 33, 21, 1, 39, 34, 34, 35, 199, 2, 1, 34, 21,
+        1, 189, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y42B");
@@ -4726,6 +5060,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -4890,6 +5225,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 89, 52, 52, 52, 11, 1, 1, 11, 1, 1, 11, 1, 1,
+        12, 4, 4, 20, 2, 20, 2, 198, 33, 32, 4, 199, 2, 1, 33, 189,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_Y444");
@@ -4908,6 +5255,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5072,6 +5420,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
+        50, 66, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 1, 1,
+        12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 4, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_Y42B_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_Y42B_YUY2");
@@ -5087,6 +5447,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5251,6 +5612,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
+        50, 66, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 1, 1,
+        12, 1, 1, 20, 2, 196, 32, 5, 6, 21, 1, 196, 0, 32, 4, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_Y42B_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_Y42B_UYVY");
@@ -5266,6 +5639,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5310,7 +5684,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -5395,7 +5773,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -5482,6 +5864,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
+        50, 66, 95, 65, 89, 85, 86, 11, 8, 8, 12, 2, 2, 12, 1, 1,
+        12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 20, 4, 20,
+        4, 196, 32, 5, 6, 21, 1, 196, 35, 16, 4, 195, 34, 32, 32, 21,
+        1, 195, 0, 35, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_Y42B_AYUV);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_Y42B_AYUV");
@@ -5505,6 +5900,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5711,6 +6107,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
+        52, 52, 95, 89, 85, 89, 50, 11, 4, 4, 12, 2, 2, 12, 2, 2,
+        12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
+        6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 4,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_Y444_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_Y444_YUY2");
@@ -5733,6 +6142,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -5939,6 +6349,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
+        52, 52, 95, 85, 89, 86, 89, 11, 4, 4, 12, 2, 2, 12, 2, 2,
+        12, 2, 2, 20, 2, 20, 4, 20, 2, 20, 2, 21, 1, 196, 33, 5,
+        6, 198, 34, 35, 33, 21, 1, 39, 32, 34, 35, 21, 1, 196, 0, 32,
+        4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_Y444_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_Y444_UYVY");
@@ -5961,6 +6384,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6005,7 +6429,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -6069,7 +6497,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -6135,6 +6567,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 89, 52,
+        52, 52, 95, 65, 89, 85, 86, 11, 4, 4, 12, 1, 1, 12, 1, 1,
+        12, 1, 1, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 196, 32, 5,
+        6, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_Y444_AYUV);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_Y444_AYUV");
@@ -6154,6 +6598,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6193,13 +6638,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -6388,13 +6861,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -6586,6 +7087,29 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 65, 82, 71, 66, 11, 4, 4, 12, 4, 4, 14, 1, 8,
+        0, 0, 0, 14, 4, 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14,
+        4, 103, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0,
+        0, 14, 4, 104, 0, 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20,
+        1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
+        1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33,
+        47, 199, 35, 34, 33, 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149,
+        40, 37, 89, 32, 38, 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41,
+        38, 40, 89, 32, 40, 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41,
+        41, 40, 71, 43, 38, 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32,
+        32, 16, 71, 43, 43, 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42,
+        38, 32, 89, 32, 40, 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42,
+        42, 32, 159, 44, 41, 159, 45, 42, 159, 46, 43, 196, 32, 34, 44, 196,
+        33, 45, 46, 195, 47, 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_ARGB);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_ARGB");
@@ -6685,6 +7209,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -6720,13 +7245,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -6915,13 +7468,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -7113,6 +7694,29 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 14, 1, 8,
+        0, 0, 0, 14, 4, 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14,
+        4, 103, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0,
+        0, 14, 4, 104, 0, 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20,
+        1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
+        1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33,
+        47, 199, 35, 34, 33, 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149,
+        40, 37, 89, 32, 38, 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41,
+        38, 40, 89, 32, 40, 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41,
+        41, 40, 71, 43, 38, 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32,
+        32, 16, 71, 43, 43, 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42,
+        38, 32, 89, 32, 40, 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42,
+        42, 32, 159, 44, 41, 159, 45, 42, 159, 46, 43, 196, 32, 46, 45, 196,
+        33, 44, 34, 195, 47, 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_BGRA);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_BGRA");
@@ -7212,6 +7816,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -7247,13 +7852,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -7442,13 +8075,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -7640,6 +8301,29 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 65, 66, 71, 82, 11, 4, 4, 12, 4, 4, 14, 1, 8,
+        0, 0, 0, 14, 4, 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14,
+        4, 103, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0,
+        0, 14, 4, 104, 0, 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20,
+        1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
+        1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33,
+        47, 199, 35, 34, 33, 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149,
+        40, 37, 89, 32, 38, 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41,
+        38, 40, 89, 32, 40, 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41,
+        41, 40, 71, 43, 38, 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32,
+        32, 16, 71, 43, 43, 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42,
+        38, 32, 89, 32, 40, 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42,
+        42, 32, 159, 44, 41, 159, 45, 42, 159, 46, 43, 196, 32, 34, 46, 196,
+        33, 45, 44, 195, 47, 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_ABGR);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_ABGR");
@@ -7739,6 +8423,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -7774,13 +8459,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -7969,13 +8682,41 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var48;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var49;
+#else
   orc_union32 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_union32 var57;
   orc_union16 var58;
@@ -8167,6 +8908,29 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 7, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114,
+        116, 95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 65, 89,
+        85, 86, 95, 82, 71, 66, 65, 11, 4, 4, 12, 4, 4, 14, 1, 8,
+        0, 0, 0, 14, 4, 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14,
+        4, 103, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0,
+        0, 14, 4, 104, 0, 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 20,
+        1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20,
+        1, 20, 1, 20, 1, 20, 4, 21, 2, 65, 47, 4, 17, 198, 32, 33,
+        47, 199, 35, 34, 33, 199, 37, 36, 32, 149, 38, 35, 149, 39, 36, 149,
+        40, 37, 89, 32, 38, 18, 94, 32, 32, 16, 71, 38, 38, 32, 71, 41,
+        38, 40, 89, 32, 40, 19, 94, 32, 32, 16, 99, 41, 41, 32, 71, 41,
+        41, 40, 71, 43, 38, 39, 71, 43, 43, 39, 89, 32, 39, 20, 94, 32,
+        32, 16, 71, 43, 43, 32, 89, 32, 39, 21, 94, 32, 32, 16, 99, 42,
+        38, 32, 89, 32, 40, 22, 94, 32, 32, 16, 99, 42, 42, 32, 99, 42,
+        42, 32, 159, 44, 41, 159, 45, 42, 159, 46, 43, 196, 32, 44, 45, 196,
+        33, 46, 34, 195, 47, 32, 33, 21, 2, 33, 0, 47, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_AYUV_RGBA);
+#else
       p = orc_program_new ();
       orc_program_set_2d (p);
       orc_program_set_name (p, "video_convert_orc_convert_AYUV_RGBA");
@@ -8266,6 +9030,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -8303,16 +9068,56 @@
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var46;
+#else
   orc_int8 var46;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var47;
+#else
   orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var48;
+#else
   orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var49;
+#else
   orc_union16 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var54;
+#else
   orc_int8 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_int8 var57;
   orc_union16 var58;
@@ -8490,16 +9295,56 @@
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var46;
+#else
   orc_int8 var46;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var47;
+#else
   orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var48;
+#else
   orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var49;
+#else
   orc_union16 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var54;
+#else
   orc_int8 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var55;
+#else
   orc_union32 var55;
+#endif
   orc_union32 var56;
   orc_int8 var57;
   orc_union16 var58;
@@ -8681,6 +9526,30 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
+        48, 95, 66, 71, 82, 65, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12,
+        1, 1, 14, 1, 8, 0, 0, 0, 14, 1, 128, 0, 0, 0, 14, 4,
+        42, 0, 0, 0, 14, 4, 103, 0, 0, 0, 14, 4, 4, 0, 0, 0,
+        14, 4, 100, 0, 0, 0, 14, 4, 104, 0, 0, 0, 14, 4, 255, 0,
+        0, 0, 20, 2, 20, 2, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 2, 20, 2, 20, 1, 20, 1, 20, 1, 20, 4, 65, 34, 4, 17,
+        149, 35, 34, 46, 34, 5, 65, 34, 34, 17, 149, 36, 34, 46, 34, 6,
+        65, 34, 34, 17, 149, 37, 34, 89, 32, 35, 18, 94, 32, 32, 16, 71,
+        35, 35, 32, 71, 38, 35, 37, 89, 32, 37, 19, 94, 32, 32, 16, 99,
+        38, 38, 32, 71, 38, 38, 37, 71, 40, 35, 36, 71, 40, 40, 36, 89,
+        32, 36, 20, 94, 32, 32, 16, 71, 40, 40, 32, 89, 32, 36, 21, 94,
+        32, 32, 16, 99, 39, 35, 32, 89, 32, 37, 22, 94, 32, 32, 16, 99,
+        39, 39, 32, 99, 39, 39, 32, 159, 41, 38, 159, 42, 39, 159, 43, 40,
+        196, 32, 43, 42, 196, 33, 41, 23, 195, 44, 32, 33, 21, 2, 33, 0,
+        44, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_I420_BGRA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_I420_BGRA");
       orc_program_set_backup_function (p,
@@ -8781,6 +9650,7 @@
           ORC_VAR_T2, ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T13, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -8820,16 +9690,56 @@
   const orc_int8 *ORC_RESTRICT ptr7;
   const orc_int8 *ORC_RESTRICT ptr8;
   orc_int8 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var47;
+#else
   orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var48;
+#else
   orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var49;
+#else
   orc_int8 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var55;
+#else
   orc_int8 var55;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var56;
+#else
   orc_union32 var56;
+#endif
   orc_union32 var57;
   orc_int8 var58;
   orc_union16 var59;
@@ -9027,16 +9937,56 @@
   const orc_int8 *ORC_RESTRICT ptr7;
   const orc_int8 *ORC_RESTRICT ptr8;
   orc_int8 var46;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var47;
+#else
   orc_int8 var47;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var48;
+#else
   orc_int8 var48;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var49;
+#else
   orc_int8 var49;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var50;
+#else
   orc_union16 var50;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var51;
+#else
   orc_union16 var51;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var52;
+#else
   orc_union16 var52;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var53;
+#else
   orc_union16 var53;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var54;
+#else
   orc_union16 var54;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var55;
+#else
   orc_int8 var55;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var56;
+#else
   orc_union32 var56;
+#endif
   orc_union32 var57;
   orc_int8 var58;
   orc_union16 var59;
@@ -9237,6 +10187,31 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 99, 111, 110, 118, 101, 114, 116, 95, 73, 52, 50,
+        48, 95, 66, 71, 82, 65, 95, 97, 118, 103, 11, 4, 4, 12, 1, 1,
+        12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 8, 0,
+        0, 0, 14, 1, 128, 0, 0, 0, 14, 4, 42, 0, 0, 0, 14, 4,
+        103, 0, 0, 0, 14, 4, 4, 0, 0, 0, 14, 4, 100, 0, 0, 0,
+        14, 4, 104, 0, 0, 0, 14, 4, 255, 0, 0, 0, 20, 2, 20, 2,
+        20, 1, 20, 1, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 1, 20, 1, 20, 1, 20, 4, 65, 34, 4, 17, 149, 36, 34, 46,
+        34, 5, 46, 35, 6, 39, 34, 34, 35, 65, 34, 34, 17, 149, 37, 34,
+        46, 34, 7, 46, 35, 8, 39, 34, 34, 35, 65, 34, 34, 17, 149, 38,
+        34, 89, 32, 36, 18, 94, 32, 32, 16, 71, 36, 36, 32, 71, 39, 36,
+        38, 89, 32, 38, 19, 94, 32, 32, 16, 99, 39, 39, 32, 71, 39, 39,
+        38, 71, 41, 36, 37, 71, 41, 41, 37, 89, 32, 37, 20, 94, 32, 32,
+        16, 71, 41, 41, 32, 89, 32, 37, 21, 94, 32, 32, 16, 99, 40, 36,
+        32, 89, 32, 38, 22, 94, 32, 32, 16, 99, 40, 40, 32, 99, 40, 40,
+        32, 159, 42, 39, 159, 43, 40, 159, 44, 41, 196, 32, 44, 43, 196, 33,
+        42, 23, 195, 45, 32, 33, 21, 2, 33, 0, 45, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_convert_I420_BGRA_avg);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_convert_I420_BGRA_avg");
       orc_program_set_backup_function (p,
@@ -9348,6 +10323,7 @@
           ORC_VAR_T2, ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -9385,7 +10361,11 @@
   const orc_int8 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_int8 var39;
@@ -9445,7 +10425,11 @@
   const orc_int8 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_int8 var39;
@@ -9510,6 +10494,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 73, 52, 50,
+        48, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255,
+        0, 0, 0, 20, 2, 20, 2, 20, 1, 20, 1, 45, 34, 5, 45, 35,
+        6, 196, 32, 34, 35, 196, 33, 16, 4, 195, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_I420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_I420");
       orc_program_set_backup_function (p,
@@ -9534,6 +10530,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -9569,7 +10566,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union16 var38;
   orc_union64 var39;
   orc_int8 var40;
@@ -9650,7 +10651,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union16 var38;
   orc_union64 var39;
   orc_int8 var40;
@@ -9736,6 +10741,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 85, 86,
+        57, 11, 8, 8, 12, 2, 2, 12, 1, 1, 12, 1, 1, 14, 1, 255,
+        0, 0, 0, 20, 2, 20, 4, 20, 4, 20, 1, 20, 1, 45, 35, 5,
+        45, 36, 6, 196, 32, 35, 36, 195, 34, 32, 32, 21, 1, 196, 33, 16,
+        4, 21, 1, 195, 0, 33, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_YUV9);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_YUV9");
       orc_program_set_backup_function (p,
@@ -9763,6 +10781,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -9796,7 +10815,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -9874,7 +10897,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -9957,6 +10984,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 85, 89,
+        50, 11, 8, 8, 12, 4, 4, 14, 2, 255, 0, 0, 0, 20, 2, 20,
+        2, 20, 4, 20, 4, 21, 1, 199, 33, 32, 4, 21, 1, 196, 34, 16,
+        32, 195, 35, 33, 33, 21, 1, 195, 0, 34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_YUY2");
       orc_program_set_backup_function (p,
@@ -9977,6 +11016,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -10008,7 +11048,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -10086,7 +11130,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -10169,6 +11217,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 85, 89, 86,
+        89, 11, 8, 8, 12, 4, 4, 14, 2, 255, 0, 0, 0, 20, 2, 20,
+        2, 20, 4, 20, 4, 21, 1, 199, 32, 33, 4, 21, 1, 196, 34, 16,
+        32, 195, 35, 33, 33, 21, 1, 195, 0, 34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_UYVY");
       orc_program_set_backup_function (p,
@@ -10189,6 +11249,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -10220,7 +11281,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -10301,7 +11366,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -10387,6 +11456,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 86, 89,
+        85, 11, 8, 8, 12, 4, 4, 14, 2, 255, 0, 0, 0, 20, 2, 20,
+        2, 20, 4, 20, 4, 21, 1, 199, 33, 32, 4, 183, 33, 33, 21, 1,
+        196, 34, 16, 32, 195, 35, 33, 33, 21, 1, 195, 0, 34, 35, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_YVYU);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_YVYU");
       orc_program_set_backup_function (p,
@@ -10409,6 +11491,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -10444,7 +11527,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -10525,7 +11612,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -10609,6 +11700,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 52, 50,
+        66, 11, 8, 8, 12, 2, 2, 12, 1, 1, 12, 1, 1, 14, 1, 255,
+        0, 0, 0, 20, 2, 20, 2, 20, 4, 20, 4, 196, 32, 5, 6, 21,
+        1, 196, 35, 16, 4, 195, 34, 32, 32, 21, 1, 195, 0, 35, 34, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_Y42B");
       orc_program_set_backup_function (p,
@@ -10631,6 +11735,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -10668,7 +11773,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -10728,7 +11837,11 @@
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -10791,6 +11904,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 52, 52,
+        52, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 255,
+        0, 0, 0, 20, 2, 20, 2, 196, 32, 5, 6, 196, 33, 16, 4, 195,
+        0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_Y444");
       orc_program_set_backup_function (p,
@@ -10809,6 +11934,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -10841,9 +11967,17 @@
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
   orc_int8 var33;
+#endif
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
   orc_union16 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
 
@@ -10886,9 +12020,17 @@
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
   orc_int8 var33;
+#endif
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
   orc_union16 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
 
@@ -10937,6 +12079,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 56, 48,
+        48, 11, 4, 4, 12, 1, 1, 14, 1, 255, 0, 0, 0, 14, 2, 128,
+        128, 0, 0, 20, 2, 196, 32, 16, 4, 195, 0, 32, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_Y800);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_Y800");
       orc_program_set_backup_function (p,
@@ -10951,6 +12104,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -10982,8 +12136,16 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var35;
+#else
   orc_int8 var35;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union32 var37;
   orc_int8 var38;
   orc_union16 var39;
@@ -11030,8 +12192,16 @@
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var35;
+#else
   orc_int8 var35;
+#endif
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union32 var37;
   orc_int8 var38;
   orc_union16 var39;
@@ -11083,6 +12253,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 89, 49, 54,
+        11, 4, 4, 12, 2, 2, 14, 1, 255, 0, 0, 0, 14, 2, 128, 128,
+        0, 0, 20, 2, 20, 1, 158, 33, 4, 196, 32, 16, 33, 195, 0, 32,
+        17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_Y16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_Y16");
       orc_program_set_backup_function (p,
@@ -11100,6 +12282,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -11188,6 +12371,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 66, 71, 82,
+        65, 11, 4, 4, 12, 4, 4, 184, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_BGRA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_BGRA");
       orc_program_set_backup_function (p,
@@ -11197,6 +12390,7 @@
 
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -11381,6 +12575,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 65, 66, 71,
+        82, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20,
+        2, 20, 2, 20, 2, 20, 2, 198, 36, 37, 4, 199, 33, 34, 36, 199,
+        35, 32, 37, 196, 38, 32, 33, 196, 39, 34, 35, 195, 0, 38, 39, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_ABGR);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_ABGR");
       orc_program_set_backup_function (p,
@@ -11408,6 +12615,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -11592,6 +12800,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 82, 71, 66,
+        65, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20,
+        2, 20, 2, 20, 2, 20, 2, 198, 37, 36, 4, 199, 34, 33, 36, 199,
+        32, 35, 37, 196, 38, 32, 33, 196, 39, 34, 35, 195, 0, 38, 39, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_RGBA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_RGBA");
       orc_program_set_backup_function (p,
@@ -11619,6 +12840,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -11652,7 +12874,11 @@
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var34;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union32 var39;
@@ -11723,7 +12949,11 @@
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var34;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union32 var39;
@@ -11797,6 +13027,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 78, 86, 49,
+        50, 11, 8, 8, 12, 2, 2, 12, 2, 2, 14, 1, 255, 0, 0, 0,
+        20, 4, 20, 4, 195, 33, 5, 5, 21, 1, 196, 32, 16, 4, 21, 1,
+        195, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_NV12);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_NV12");
       orc_program_set_backup_function (p,
@@ -11814,6 +13056,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -11847,7 +13090,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union16 var39;
@@ -11918,7 +13165,11 @@
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union16 var39;
@@ -11993,6 +13244,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 78, 86, 50,
+        49, 11, 8, 8, 12, 2, 2, 12, 2, 2, 14, 1, 255, 0, 0, 0,
+        20, 2, 20, 4, 20, 4, 183, 32, 5, 195, 34, 32, 32, 21, 1, 196,
+        33, 16, 4, 21, 1, 195, 0, 33, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_NV21);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_NV21");
       orc_program_set_backup_function (p,
@@ -12013,6 +13276,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -12176,6 +13440,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 103, 101, 116, 108, 105, 110, 101, 95, 65, 52, 50,
+        48, 11, 4, 4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1,
+        20, 2, 20, 2, 20, 1, 20, 1, 45, 34, 5, 45, 35, 6, 196, 32,
+        34, 35, 196, 33, 7, 4, 195, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_getline_A420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_getline_A420");
       orc_program_set_backup_function (p,
@@ -12200,6 +13476,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -12435,6 +13712,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 73, 52, 50,
+        48, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 8, 8, 20, 4, 20,
+        4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33, 32, 4, 21,
+        1, 189, 0, 32, 21, 1, 199, 35, 34, 33, 199, 36, 37, 34, 39, 1,
+        36, 37, 199, 36, 37, 35, 39, 2, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_I420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_I420");
       orc_program_set_backup_function (p,
@@ -12464,6 +13754,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -12656,6 +13947,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 89, 85, 89,
+        50, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20,
+        4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33,
+        34, 21, 1, 189, 32, 35, 21, 1, 196, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_YUY2);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_YUY2");
       orc_program_set_backup_function (p,
@@ -12678,6 +13981,7 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -12874,6 +14178,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 89, 86, 89,
+        85, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20,
+        4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33,
+        34, 21, 1, 189, 32, 35, 183, 33, 33, 21, 1, 196, 0, 32, 33, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_YVYU);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_YVYU");
       orc_program_set_backup_function (p,
@@ -12898,6 +14215,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -13088,6 +14406,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 85, 89, 86,
+        89, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2, 20, 2, 20, 4, 20,
+        4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36, 21, 1, 39, 33, 33,
+        34, 21, 1, 189, 32, 35, 21, 1, 196, 0, 33, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_UYVY);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_UYVY");
       orc_program_set_backup_function (p,
@@ -13110,6 +14440,7 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -13308,6 +14639,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 89, 52, 50,
+        66, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12, 8, 8, 20, 4, 20,
+        4, 20, 2, 20, 2, 21, 1, 198, 33, 32, 4, 198, 34, 35, 33, 21,
+        1, 39, 34, 34, 35, 199, 2, 1, 34, 21, 1, 189, 0, 32, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_Y42B);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_Y42B");
       orc_program_set_backup_function (p,
@@ -13331,6 +14675,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -13483,6 +14828,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 89, 52, 52,
+        52, 11, 1, 1, 11, 1, 1, 11, 1, 1, 12, 4, 4, 20, 2, 20,
+        2, 198, 33, 32, 4, 199, 2, 1, 33, 189, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_Y444);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_Y444");
       orc_program_set_backup_function (p,
@@ -13500,6 +14856,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -13612,6 +14969,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 89, 56, 48,
+        48, 11, 1, 1, 12, 4, 4, 20, 2, 190, 32, 4, 189, 0, 32, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_Y800);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_Y800");
       orc_program_set_backup_function (p,
@@ -13624,6 +14992,7 @@
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -13746,6 +15115,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 89, 49, 54,
+        11, 2, 2, 12, 4, 4, 14, 4, 8, 0, 0, 0, 20, 2, 20, 1,
+        190, 32, 4, 189, 33, 32, 150, 32, 33, 93, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_Y16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_Y16");
       orc_program_set_backup_function (p,
@@ -13764,6 +15144,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "shlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -13852,6 +15233,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 66, 71, 82,
+        65, 11, 4, 4, 12, 4, 4, 184, 0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_BGRA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_BGRA");
       orc_program_set_backup_function (p,
@@ -13861,6 +15252,7 @@
 
       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -14045,6 +15437,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 65, 66, 71,
+        82, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20,
+        2, 20, 2, 20, 2, 20, 2, 198, 39, 38, 4, 199, 35, 34, 39, 199,
+        33, 32, 38, 196, 37, 32, 35, 196, 36, 34, 33, 195, 0, 37, 36, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_ABGR);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_ABGR");
       orc_program_set_backup_function (p,
@@ -14072,6 +15477,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -14256,6 +15662,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 82, 71, 66,
+        65, 11, 4, 4, 12, 4, 4, 20, 1, 20, 1, 20, 1, 20, 1, 20,
+        2, 20, 2, 20, 2, 20, 2, 198, 39, 38, 4, 199, 35, 34, 39, 199,
+        33, 32, 38, 196, 37, 35, 32, 196, 36, 33, 34, 195, 0, 36, 37, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_RGBA);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_RGBA");
       orc_program_set_backup_function (p,
@@ -14283,6 +15702,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -14453,6 +15873,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 78, 86, 49,
+        50, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2,
+        20, 2, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 198, 34, 35,
+        33, 21, 1, 39, 1, 34, 35, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_NV12);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_NV12");
       orc_program_set_backup_function (p,
@@ -14473,6 +15905,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -14650,6 +16083,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 78, 86, 50,
+        49, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2,
+        20, 2, 20, 2, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 198,
+        34, 35, 33, 21, 1, 39, 36, 34, 35, 183, 1, 36, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_NV21);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_NV21");
       orc_program_set_backup_function (p,
@@ -14673,6 +16118,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -14938,6 +16384,20 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116,
+        95, 111, 114, 99, 95, 112, 117, 116, 108, 105, 110, 101, 95, 65, 52, 50,
+        48, 11, 2, 2, 11, 1, 1, 11, 1, 1, 11, 2, 2, 12, 8, 8,
+        20, 4, 20, 4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1, 198, 33,
+        32, 4, 21, 1, 189, 0, 32, 21, 1, 188, 3, 32, 21, 1, 199, 35,
+        34, 33, 199, 36, 37, 34, 39, 1, 36, 37, 199, 36, 37, 35, 39, 2,
+        36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_convert_orc_putline_A420);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_convert_orc_putline_A420");
       orc_program_set_backup_function (p,
@@ -14970,6 +16430,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/videoconvert/videoconvert.c b/gst/videoconvert/videoconvert.c
index a198661..c101331 100644
--- a/gst/videoconvert/videoconvert.c
+++ b/gst/videoconvert/videoconvert.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -33,12 +33,13 @@
 
 static void videoconvert_convert_generic (VideoConvert * convert,
     GstVideoFrame * dest, const GstVideoFrame * src);
-static void videoconvert_convert_matrix (VideoConvert * convert,
-    guint8 * pixels);
+static void videoconvert_convert_matrix8 (VideoConvert * convert,
+    gpointer pixels);
 static void videoconvert_convert_matrix16 (VideoConvert * convert,
-    guint16 * pixels);
+    gpointer pixels);
 static gboolean videoconvert_convert_lookup_fastpath (VideoConvert * convert);
 static gboolean videoconvert_convert_compute_matrix (VideoConvert * convert);
+static gboolean videoconvert_convert_compute_resample (VideoConvert * convert);
 static void videoconvert_dither_verterr (VideoConvert * convert,
     guint16 * pixels, int j);
 static void videoconvert_dither_halftone (VideoConvert * convert,
@@ -49,7 +50,7 @@
 videoconvert_convert_new (GstVideoInfo * in_info, GstVideoInfo * out_info)
 {
   VideoConvert *convert;
-  int i, width;
+  gint width;
 
   convert = g_malloc0 (sizeof (VideoConvert));
 
@@ -57,42 +58,23 @@
   convert->out_info = *out_info;
   convert->dither16 = NULL;
 
+  convert->width = GST_VIDEO_INFO_WIDTH (in_info);
+  convert->height = GST_VIDEO_INFO_HEIGHT (in_info);
+
   if (!videoconvert_convert_lookup_fastpath (convert)) {
     convert->convert = videoconvert_convert_generic;
     if (!videoconvert_convert_compute_matrix (convert))
       goto no_convert;
-  }
 
-  convert->width = GST_VIDEO_INFO_WIDTH (in_info);
-  convert->height = GST_VIDEO_INFO_HEIGHT (in_info);
+    if (!videoconvert_convert_compute_resample (convert))
+      goto no_convert;
+  }
 
   width = convert->width;
 
-  convert->tmpline = g_malloc (sizeof (guint8) * (width + 8) * 4);
-  convert->tmpline16 = g_malloc (sizeof (guint16) * (width + 8) * 4);
+  convert->lines = out_info->finfo->pack_lines;
   convert->errline = g_malloc0 (sizeof (guint16) * width * 4);
 
-  if (GST_VIDEO_INFO_FORMAT (out_info) == GST_VIDEO_FORMAT_RGB8P) {
-    /* build poor man's palette, taken from ffmpegcolorspace */
-    static const guint8 pal_value[6] = { 0x00, 0x33, 0x66, 0x99, 0xcc, 0xff };
-    guint32 *palette;
-    gint r, g, b;
-
-    convert->palette = palette = g_new (guint32, 256);
-    i = 0;
-    for (r = 0; r < 6; r++) {
-      for (g = 0; g < 6; g++) {
-        for (b = 0; b < 6; b++) {
-          palette[i++] =
-              (0xffU << 24) | (pal_value[r] << 16) | (pal_value[g] << 8) |
-              pal_value[b];
-        }
-      }
-    }
-    palette[i++] = 0;           /* 100% transparent, i == 6*6*6 */
-    while (i < 256)
-      palette[i++] = 0xff000000;
-  }
   return convert;
 
   /* ERRORS */
@@ -106,9 +88,16 @@
 void
 videoconvert_convert_free (VideoConvert * convert)
 {
-  g_free (convert->palette);
-  g_free (convert->tmpline);
-  g_free (convert->tmpline16);
+  gint i;
+
+  if (convert->upsample)
+    gst_video_chroma_resample_free (convert->upsample);
+  if (convert->downsample)
+    gst_video_chroma_resample_free (convert->downsample);
+
+  for (i = 0; i < convert->n_tmplines; i++)
+    g_free (convert->tmplines[i]);
+  g_free (convert->tmplines);
   g_free (convert->errline);
 
   g_free (convert);
@@ -138,53 +127,58 @@
   convert->convert (convert, dest, src);
 }
 
+#define SCALE    (8)
+#define SCALE_F  ((float) (1 << SCALE))
+
 static void
-videoconvert_convert_matrix (VideoConvert * convert, guint8 * pixels)
+videoconvert_convert_matrix8 (VideoConvert * convert, gpointer pixels)
 {
   int i;
   int r, g, b;
   int y, u, v;
+  guint8 *p = pixels;
 
   for (i = 0; i < convert->width; i++) {
-    r = pixels[i * 4 + 1];
-    g = pixels[i * 4 + 2];
-    b = pixels[i * 4 + 3];
+    r = p[i * 4 + 1];
+    g = p[i * 4 + 2];
+    b = p[i * 4 + 3];
 
     y = (convert->cmatrix[0][0] * r + convert->cmatrix[0][1] * g +
-        convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> 8;
+        convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> SCALE;
     u = (convert->cmatrix[1][0] * r + convert->cmatrix[1][1] * g +
-        convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> 8;
+        convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> SCALE;
     v = (convert->cmatrix[2][0] * r + convert->cmatrix[2][1] * g +
-        convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> 8;
+        convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> SCALE;
 
-    pixels[i * 4 + 1] = CLAMP (y, 0, 255);
-    pixels[i * 4 + 2] = CLAMP (u, 0, 255);
-    pixels[i * 4 + 3] = CLAMP (v, 0, 255);
+    p[i * 4 + 1] = CLAMP (y, 0, 255);
+    p[i * 4 + 2] = CLAMP (u, 0, 255);
+    p[i * 4 + 3] = CLAMP (v, 0, 255);
   }
 }
 
 static void
-videoconvert_convert_matrix16 (VideoConvert * convert, guint16 * pixels)
+videoconvert_convert_matrix16 (VideoConvert * convert, gpointer pixels)
 {
   int i;
   int r, g, b;
   int y, u, v;
+  guint16 *p = pixels;
 
   for (i = 0; i < convert->width; i++) {
-    r = pixels[i * 4 + 1];
-    g = pixels[i * 4 + 2];
-    b = pixels[i * 4 + 3];
+    r = p[i * 4 + 1];
+    g = p[i * 4 + 2];
+    b = p[i * 4 + 3];
 
     y = (convert->cmatrix[0][0] * r + convert->cmatrix[0][1] * g +
-        convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> 8;
+        convert->cmatrix[0][2] * b + convert->cmatrix[0][3]) >> SCALE;
     u = (convert->cmatrix[1][0] * r + convert->cmatrix[1][1] * g +
-        convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> 8;
+        convert->cmatrix[1][2] * b + convert->cmatrix[1][3]) >> SCALE;
     v = (convert->cmatrix[2][0] * r + convert->cmatrix[2][1] * g +
-        convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> 8;
+        convert->cmatrix[2][2] * b + convert->cmatrix[2][3]) >> SCALE;
 
-    pixels[i * 4 + 1] = CLAMP (y, 0, 65535);
-    pixels[i * 4 + 2] = CLAMP (u, 0, 65535);
-    pixels[i * 4 + 3] = CLAMP (v, 0, 65535);
+    p[i * 4 + 1] = CLAMP (y, 0, 65535);
+    p[i * 4 + 2] = CLAMP (u, 0, 65535);
+    p[i * 4 + 3] = CLAMP (v, 0, 65535);
   }
 }
 
@@ -256,13 +250,14 @@
       in_info->colorimetry.matrix == out_info->colorimetry.matrix) {
     GST_DEBUG ("using identity color transform");
     convert->matrix = NULL;
-    convert->matrix16 = NULL;
     return TRUE;
   }
 
   /* calculate intermediate format for the matrix. When unpacking, we expand
    * input to 16 when one of the inputs is 16 bits */
   if (convert->in_bits == 16 || convert->out_bits == 16) {
+    convert->matrix = videoconvert_convert_matrix16;
+
     if (GST_VIDEO_FORMAT_INFO_IS_RGB (suinfo))
       suinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
     else
@@ -272,6 +267,8 @@
       duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_ARGB64);
     else
       duinfo = gst_video_format_get_info (GST_VIDEO_FORMAT_AYUV64);
+  } else {
+    convert->matrix = videoconvert_convert_matrix8;
   }
 
   color_matrix_set_identity (&dst);
@@ -308,8 +305,8 @@
 
   color_matrix_offset_components (&dst, offset[0], offset[1], offset[2]);
 
-  /* because we're doing 8-bit matrix coefficients */
-  color_matrix_scale_components (&dst, 256.0, 256.0, 256.0);
+  /* because we're doing fixed point matrix coefficients */
+  color_matrix_scale_components (&dst, SCALE_F, SCALE_F, SCALE_F);
 
   for (i = 0; i < 4; i++)
     for (j = 0; j < 4; j++)
@@ -324,9 +321,6 @@
   GST_DEBUG ("[%6d %6d %6d %6d]", convert->cmatrix[3][0],
       convert->cmatrix[3][1], convert->cmatrix[3][2], convert->cmatrix[3][3]);
 
-  convert->matrix = videoconvert_convert_matrix;
-  convert->matrix16 = videoconvert_convert_matrix16;
-
   return TRUE;
 
   /* ERRORS */
@@ -348,15 +342,14 @@
 videoconvert_dither_verterr (VideoConvert * convert, guint16 * pixels, int j)
 {
   int i;
-  guint16 *tmpline = convert->tmpline16;
   guint16 *errline = convert->errline;
   unsigned int mask = 0xff;
 
   for (i = 0; i < 4 * convert->width; i++) {
-    int x = tmpline[i] + errline[i];
+    int x = pixels[i] + errline[i];
     if (x > 65535)
       x = 65535;
-    tmpline[i] = x;
+    pixels[i] = x;
     errline[i] = x & mask;
   }
 }
@@ -365,7 +358,6 @@
 videoconvert_dither_halftone (VideoConvert * convert, guint16 * pixels, int j)
 {
   int i;
-  guint16 *tmpline = convert->tmpline16;
   static guint16 halftone[8][8] = {
     {0, 128, 32, 160, 8, 136, 40, 168},
     {192, 64, 224, 96, 200, 72, 232, 104},
@@ -379,29 +371,121 @@
 
   for (i = 0; i < convert->width * 4; i++) {
     int x;
-    x = tmpline[i] + halftone[(i >> 2) & 7][j & 7];
+    x = pixels[i] + halftone[(i >> 2) & 7][j & 7];
     if (x > 65535)
       x = 65535;
-    tmpline[i] = x;
+    pixels[i] = x;
   }
 }
 
+static gboolean
+videoconvert_convert_compute_resample (VideoConvert * convert)
+{
+  GstVideoInfo *in_info, *out_info;
+  const GstVideoFormatInfo *sfinfo, *dfinfo;
+  gint lines, i;
+  gint width;
+
+  in_info = &convert->in_info;
+  out_info = &convert->out_info;
+
+  sfinfo = in_info->finfo;
+  dfinfo = out_info->finfo;
+
+  width = convert->width;
+
+  convert->upsample = gst_video_chroma_resample_new (0,
+      in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
+      sfinfo->h_sub[2]);
+  if (convert->upsample) {
+    gst_video_chroma_resample_get_info (convert->upsample,
+        &convert->up_n_lines, &convert->up_offset);
+  } else {
+    convert->up_n_lines = 1;
+    convert->up_offset = 0;
+  }
+  GST_DEBUG ("upsample: %p, offset %d, n_lines %d", convert->upsample,
+      convert->up_offset, convert->up_n_lines);
+
+  convert->downsample = gst_video_chroma_resample_new (0,
+      out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
+      -dfinfo->h_sub[2]);
+  if (convert->downsample) {
+    gst_video_chroma_resample_get_info (convert->downsample,
+        &convert->down_n_lines, &convert->down_offset);
+  } else {
+    convert->down_n_lines = 1;
+    convert->down_offset = 0;
+  }
+
+  GST_DEBUG ("downsample: %p, offset %d, n_lines %d", convert->downsample,
+      convert->down_offset, convert->down_n_lines);
+
+  lines = MAX (convert->down_n_lines, convert->up_n_lines);
+
+  convert->n_tmplines = lines;
+  convert->tmplines = g_malloc (lines * sizeof (gpointer));
+  for (i = 0; i < lines; i++)
+    convert->tmplines[i] = g_malloc (sizeof (guint16) * (width + 8) * 4);
+
+  return TRUE;
+}
+
 #define TO_16(x) (((x)<<8) | (x))
 
-#define UNPACK_FRAME(frame,dest,line,width) \
-  frame->info.finfo->unpack_func (frame->info.finfo, GST_VIDEO_PACK_FLAG_NONE, \
-      dest, frame->data, frame->info.stride, 0, line, width)
-#define PACK_FRAME(frame,dest,line,width) \
-  frame->info.finfo->pack_func (frame->info.finfo, GST_VIDEO_PACK_FLAG_NONE, \
-      dest, 0, frame->data, frame->info.stride, frame->info.chroma_site, line, width);
+static void
+convert_to16 (gpointer line, gint width)
+{
+  guint8 *line8 = line;
+  guint16 *line16 = line;
+  gint i;
+
+  for (i = (width - 1) * 4; i >= 0; i--)
+    line16[i] = TO_16 (line8[i]);
+}
+
+static void
+convert_to8 (gpointer line, gint width)
+{
+  guint8 *line8 = line;
+  guint16 *line16 = line;
+  gint i;
+
+  for (i = 0; i < width * 4; i++)
+    line8[i] = line16[i] >> 8;
+}
+
+#define UNPACK_FRAME(frame,dest,line,width)          \
+  frame->info.finfo->unpack_func (frame->info.finfo, \
+      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?       \
+        GST_VIDEO_PACK_FLAG_INTERLACED :             \
+        GST_VIDEO_PACK_FLAG_NONE),                   \
+      dest, frame->data, frame->info.stride, 0,      \
+      line, width)
+#define PACK_FRAME(frame,dest,line,width)            \
+  frame->info.finfo->pack_func (frame->info.finfo,   \
+      (GST_VIDEO_FRAME_IS_INTERLACED (frame) ?       \
+        GST_VIDEO_PACK_FLAG_INTERLACED :             \
+        GST_VIDEO_PACK_FLAG_NONE),                   \
+      dest, 0, frame->data, frame->info.stride,      \
+      frame->info.chroma_site, line, width);
 
 static void
 videoconvert_convert_generic (VideoConvert * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
-  int i, j;
-  gint width, height;
+  int j, k;
+  gint width, height, lines, max_lines;
   guint in_bits, out_bits;
+  gconstpointer pal;
+  gsize palsize;
+  guint up_n_lines, down_n_lines;
+  gint up_offset, down_offset;
+  gint in_lines, out_lines;
+  gint up_line, down_line;
+  gint start_offset, stop_offset;
+  gpointer in_tmplines[8];
+  gpointer out_tmplines[8];
 
   height = convert->height;
   width = convert->width;
@@ -409,39 +493,110 @@
   in_bits = convert->in_bits;
   out_bits = convert->out_bits;
 
-  for (j = 0; j < height; j++) {
-    if (in_bits == 16) {
-      UNPACK_FRAME (src, convert->tmpline16, j, width);
-    } else {
-      UNPACK_FRAME (src, convert->tmpline, j, width);
+  lines = convert->lines;
+  up_n_lines = convert->up_n_lines;
+  up_offset = convert->up_offset;
+  down_n_lines = convert->down_n_lines;
+  down_offset = convert->down_offset;
+  max_lines = MAX (down_n_lines, up_n_lines);
 
-      if (out_bits == 16)
-        for (i = 0; i < width * 4; i++)
-          convert->tmpline16[i] = TO_16 (convert->tmpline[i]);
+  in_lines = 0;
+  out_lines = 0;
+
+  GST_DEBUG ("up_offset %d, up_n_lines %u", up_offset, up_n_lines);
+
+  start_offset = MIN (up_offset, down_offset);
+  stop_offset = height + start_offset + MAX (up_n_lines, down_n_lines);
+
+  for (; start_offset < stop_offset; start_offset++) {
+    guint idx, start;
+
+    idx = CLAMP (start_offset, 0, height);
+    in_tmplines[in_lines] = convert->tmplines[idx % max_lines];
+    out_tmplines[out_lines] = in_tmplines[in_lines];
+    GST_DEBUG ("start_offset %d, %d, idx %u, in %d, out %d", start_offset,
+        up_offset, idx, in_lines, out_lines);
+
+    up_line = up_offset + in_lines;
+
+    /* extract the next line */
+    if (up_line >= 0 && up_line < height) {
+      GST_DEBUG ("unpack line %d", up_line);
+      UNPACK_FRAME (src, in_tmplines[in_lines], up_line, width);
     }
 
-    if (out_bits == 16 || in_bits == 16) {
-      if (convert->matrix16)
-        convert->matrix16 (convert, convert->tmpline16);
-      if (convert->dither16)
-        convert->dither16 (convert, convert->tmpline16, j);
-    } else {
-      if (convert->matrix)
-        convert->matrix (convert, convert->tmpline);
+    if (start_offset >= up_offset)
+      in_lines++;
+
+    if (start_offset >= down_offset)
+      out_lines++;
+
+    if (in_lines < up_n_lines)
+      continue;
+
+    in_lines = 0;
+
+    /* we have enough lines to upsample */
+    if (convert->upsample) {
+      GST_DEBUG ("doing upsample");
+      gst_video_chroma_resample (convert->upsample, in_tmplines, width);
     }
 
-    if (out_bits == 16) {
-      PACK_FRAME (dest, convert->tmpline16, j, width);
-    } else {
-      if (in_bits == 16)
-        for (i = 0; i < width * 4; i++)
-          convert->tmpline[i] = convert->tmpline16[i] >> 8;
+    /* convert upsampled lines */
+    for (k = 0; k < up_n_lines; k++) {
+      down_line = up_offset + k;
 
-      PACK_FRAME (dest, convert->tmpline, j, width);
+      /* only takes lines with valid output */
+      if (down_line < 0 || down_line >= height)
+        continue;
+
+      GST_DEBUG ("handle line %d, %d/%d, down_line %d", k, out_lines,
+          down_n_lines, down_line);
+
+      if (out_bits == 16 || in_bits == 16) {
+        /* FIXME, we can scale in the conversion matrix */
+        if (in_bits == 8)
+          convert_to16 (in_tmplines[k], width);
+
+        if (convert->matrix)
+          convert->matrix (convert, in_tmplines[k]);
+        if (convert->dither16)
+          convert->dither16 (convert, in_tmplines[k], down_line);
+
+        if (out_bits == 8)
+          convert_to8 (in_tmplines[k], width);
+      } else {
+        if (convert->matrix)
+          convert->matrix (convert, in_tmplines[k]);
+      }
     }
+
+    start = 0;
+    while (out_lines >= down_n_lines) {
+      GST_DEBUG ("doing downsample %u", start);
+      if (convert->downsample)
+        gst_video_chroma_resample (convert->downsample,
+            &out_tmplines[start], width);
+
+      for (j = 0; j < down_n_lines; j += lines) {
+        idx = down_offset + j;
+
+        if (idx >= 0 && idx < height) {
+          GST_DEBUG ("packing line %d %d %d", j + start, down_offset, idx);
+          /* FIXME, not correct if lines > 1 */
+          PACK_FRAME (dest, out_tmplines[j + start], idx, width);
+        }
+      }
+      down_offset += down_n_lines;
+      start += down_n_lines;
+      out_lines -= down_n_lines;
+    }
+    up_offset += up_n_lines;
   }
-  if (GST_VIDEO_FRAME_FORMAT (dest) == GST_VIDEO_FORMAT_RGB8P) {
-    memcpy (GST_VIDEO_FRAME_PLANE_DATA (dest, 1), convert->palette, 256 * 4);
+  if ((pal =
+          gst_video_format_get_palette (GST_VIDEO_FRAME_FORMAT (dest),
+              &palsize))) {
+    memcpy (GST_VIDEO_FRAME_PLANE_DATA (dest, 1), pal, palsize);
   }
 }
 
@@ -472,6 +627,16 @@
 
 /* Fast paths */
 
+#define GET_LINE_OFFSETS(interlaced,line,l1,l2) \
+    if (interlaced) {                           \
+      l1 = (line & 2 ? line - 1 : line);        \
+      l2 = l1 + 2;                              \
+    } else {                                    \
+      l1 = line;                                \
+      l2 = l1 + 1;                              \
+    }
+
+
 static void
 convert_I420_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
@@ -479,20 +644,24 @@
   int i;
   gint width = convert->width;
   gint height = convert->height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
 
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    video_convert_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, i),
-        FRAME_GET_LINE (dest, i + 1),
-        FRAME_GET_Y_LINE (src, i),
-        FRAME_GET_Y_LINE (src, i + 1),
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_convert_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
+        FRAME_GET_LINE (dest, l2),
+        FRAME_GET_Y_LINE (src, l1),
+        FRAME_GET_Y_LINE (src, l2),
         FRAME_GET_U_LINE (src, i >> 1),
         FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
   }
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -503,20 +672,24 @@
   int i;
   gint width = convert->width;
   gint height = convert->height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
 
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    video_convert_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, i),
-        FRAME_GET_LINE (dest, i + 1),
-        FRAME_GET_Y_LINE (src, i),
-        FRAME_GET_Y_LINE (src, i + 1),
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_convert_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
+        FRAME_GET_LINE (dest, l2),
+        FRAME_GET_Y_LINE (src, l1),
+        FRAME_GET_Y_LINE (src, l2),
         FRAME_GET_U_LINE (src, i >> 1),
         FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
   }
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -527,19 +700,23 @@
   int i;
   gint width = convert->width;
   gint height = convert->height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
 
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    video_convert_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, i),
-        FRAME_GET_LINE (dest, i + 1),
-        FRAME_GET_Y_LINE (src, i),
-        FRAME_GET_Y_LINE (src, i + 1),
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_convert_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
+        FRAME_GET_LINE (dest, l2),
+        FRAME_GET_Y_LINE (src, l1),
+        FRAME_GET_Y_LINE (src, l2),
         FRAME_GET_U_LINE (src, i >> 1), FRAME_GET_V_LINE (src, i >> 1), width);
   }
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -588,8 +765,8 @@
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -600,23 +777,27 @@
   int i, h;
   gint width = convert->width;
   gint height = convert->height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
 
   h = height;
   if (width & 1)
     h--;
 
   for (i = 0; i < h; i += 2) {
-    video_convert_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, i),
-        FRAME_GET_Y_LINE (dest, i + 1),
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_convert_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
+        FRAME_GET_Y_LINE (dest, l2),
         FRAME_GET_U_LINE (dest, i >> 1),
         FRAME_GET_V_LINE (dest, i >> 1),
-        FRAME_GET_LINE (src, i), FRAME_GET_LINE (src, i + 1), (width + 1) / 2);
+        FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
   }
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -634,8 +815,8 @@
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -675,19 +856,23 @@
   int i;
   gint width = convert->width;
   gint height = convert->height;
+  gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
+  gint l1, l2;
 
   for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
-    video_convert_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, i),
-        FRAME_GET_COMP_LINE (dest, 0, i + 1),
+    GET_LINE_OFFSETS (interlaced, i, l1, l2);
+
+    video_convert_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, l1),
+        FRAME_GET_COMP_LINE (dest, 0, l2),
         FRAME_GET_COMP_LINE (dest, 1, i >> 1),
         FRAME_GET_COMP_LINE (dest, 2, i >> 1),
-        FRAME_GET_LINE (src, i), FRAME_GET_LINE (src, i + 1), (width + 1) / 2);
+        FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
   }
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -705,8 +890,8 @@
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -806,8 +991,8 @@
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -848,8 +1033,8 @@
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -938,8 +1123,8 @@
 
   /* now handle last line */
   if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
+    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
   }
 }
 
@@ -1101,91 +1286,98 @@
   GstVideoFormat out_format;
   GstVideoColorMatrix out_matrix;
   gboolean keeps_color_matrix;
+  gboolean keeps_interlaced;
   void (*convert) (VideoConvert * convert, GstVideoFrame * dest,
       const GstVideoFrame * src);
 } VideoTransform;
+
 static const VideoTransform transforms[] = {
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_I420_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_YUY2},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_I420_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_UYVY},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_I420_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_AYUV},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_I420_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_I420_Y42B},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_I420_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_I420_Y444},
 
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_YUY2_I420},
-  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_UYVY_YUY2},      /* alias */
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_I420},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_YUY2},   /* alias */
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_YUY2_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_AYUV},
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_YUY2_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_Y42B},
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_YUY2_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_Y444},
 
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_UYVY_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_I420},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_UYVY_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_YUY2},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_UYVY_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_AYUV},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_UYVY_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_Y42B},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_UYVY_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_Y444},
 
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_AYUV_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_AYUV_I420},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_AYUV_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_YUY2},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_AYUV_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_UYVY},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_AYUV_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_Y42B},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_AYUV_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_Y444},
 
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y42B_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_Y42B_I420},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y42B_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_YUY2},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y42B_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_UYVY},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y42B_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_AYUV},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y42B_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_Y444},
 
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y444_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_Y444_I420},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y444_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_YUY2},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y444_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_UYVY},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y444_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_AYUV},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, convert_Y444_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_Y42B},
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_ARGB,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_ARGB},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ARGB},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_BGRA},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xRGB, GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_ARGB},   /* alias */
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx, GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_BGRA},   /* alias */
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_BGRA},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xRGB,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ARGB},      /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_BGRA},      /* alias */
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_ABGR,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_ABGR},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ABGR},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBA,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_RGBA},
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xBGR, GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_ABGR},   /* alias */
-  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBx, GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_AYUV_RGBA},   /* alias */
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_RGBA},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xBGR,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ABGR},      /* alias */
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_RGBA},      /* alias */
 
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, convert_I420_BGRA},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, convert_I420_BGRA},
 #endif
 };
 
@@ -1195,6 +1387,7 @@
   int i;
   GstVideoFormat in_format, out_format;
   GstVideoColorMatrix in_matrix, out_matrix;
+  gboolean interlaced;
 
   in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
   out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
@@ -1202,12 +1395,16 @@
   in_matrix = convert->in_info.colorimetry.matrix;
   out_matrix = convert->out_info.colorimetry.matrix;
 
+  interlaced = GST_VIDEO_INFO_IS_INTERLACED (&convert->in_info);
+  interlaced |= GST_VIDEO_INFO_IS_INTERLACED (&convert->out_info);
+
   for (i = 0; i < sizeof (transforms) / sizeof (transforms[0]); i++) {
     if (transforms[i].in_format == in_format &&
         transforms[i].out_format == out_format &&
         (transforms[i].keeps_color_matrix ||
             (transforms[i].in_matrix == in_matrix &&
-                transforms[i].out_matrix == out_matrix))) {
+                transforms[i].out_matrix == out_matrix)) &&
+        (transforms[i].keeps_interlaced || !interlaced)) {
       GST_DEBUG ("using fastpath");
       convert->convert = transforms[i].convert;
       return TRUE;
diff --git a/gst/videoconvert/videoconvert.h b/gst/videoconvert/videoconvert.h
index 33138e0..bc0aa7a 100644
--- a/gst/videoconvert/videoconvert.h
+++ b/gst/videoconvert/videoconvert.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __COLORSPACE_H__
@@ -44,18 +44,25 @@
   gint out_bits;
   gint cmatrix[4][4];
 
-  guint32 *palette;
-
   ColorSpaceDitherMethod dither;
 
-  guint8 *tmpline;
-  guint16 *tmpline16;
+  guint lines;
+
+  guint n_tmplines;
+  gpointer *tmplines;
   guint16 *errline;
 
-  void (*convert) (VideoConvert *convert, GstVideoFrame *dest, const GstVideoFrame *src);
-  void (*matrix) (VideoConvert *convert, guint8 * pixels);
-  void (*matrix16) (VideoConvert *convert, guint16 * pixels);
-  void (*dither16) (VideoConvert *convert, guint16 * pixels, int j);
+  GstVideoChromaResample *upsample;
+  guint up_n_lines;
+  gint up_offset;
+  GstVideoChromaResample *downsample;
+  guint down_n_lines;
+  gint down_offset;
+
+  void (*convert)      (VideoConvert *convert, GstVideoFrame *dest, const GstVideoFrame *src);
+  void (*matrix)       (VideoConvert *convert, gpointer pixels);
+  void (*dither16)     (VideoConvert *convert, guint16 * pixels, int j);
+
 };
 
 VideoConvert *   videoconvert_convert_new            (GstVideoInfo *in_info,
diff --git a/gst/videorate/Makefile.in b/gst/videorate/Makefile.in
index 5caf4c3..81216b1 100644
--- a/gst/videorate/Makefile.in
+++ b/gst/videorate/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videorate
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -137,10 +163,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideorate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstvideorate_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideorate_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideorate_la_SOURCES)
 DIST_SOURCES = $(libgstvideorate_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -509,6 +561,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -535,12 +588,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideorate.la: $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_DEPENDENCIES) $(EXTRA_libgstvideorate_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideorate_la_LINK) -rpath $(plugindir) $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_LIBADD) $(LIBS)
 
@@ -586,26 +642,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -617,15 +662,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -634,6 +675,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -778,19 +834,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c
index 9f1fbb7..75c3371 100644
--- a/gst/videorate/gstvideorate.c
+++ b/gst/videorate/gstvideorate.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -711,12 +711,13 @@
             gst_video_rate_notify_drop (videorate);
         }
         /* clean up for the new one; _chain will resume from the new start */
-        videorate->base_ts = 0;
-        videorate->out_frame_count = 0;
         gst_video_rate_swap_prev (videorate, NULL, 0);
-        videorate->next_ts = GST_CLOCK_TIME_NONE;
       }
 
+      videorate->base_ts = 0;
+      videorate->out_frame_count = 0;
+      videorate->next_ts = GST_CLOCK_TIME_NONE;
+
       /* We just want to update the accumulated stream_time  */
       gst_segment_copy_into (segment, &videorate->segment);
 
diff --git a/gst/videorate/gstvideorate.h b/gst/videorate/gstvideorate.h
index 998d6da..92c841c 100644
--- a/gst/videorate/gstvideorate.h
+++ b/gst/videorate/gstvideorate.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_RATE_H__
diff --git a/gst/videoscale/Makefile.in b/gst/videoscale/Makefile.in
index ae43b26..099d34b 100644
--- a/gst/videoscale/Makefile.in
+++ b/gst/videoscale/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,15 +102,15 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
+	README
 subdir = gst/videoscale
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -168,10 +195,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideoscale_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) \
 	$(libgstvideoscale_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -184,20 +224,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideoscale_la_SOURCES) \
 	$(nodist_libgstvideoscale_la_SOURCES)
 DIST_SOURCES = $(libgstvideoscale_la_SOURCES)
@@ -207,6 +243,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -570,6 +623,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -596,12 +650,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideoscale.la: $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_DEPENDENCIES) $(EXTRA_libgstvideoscale_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideoscale_la_LINK) -rpath $(plugindir) $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_LIBADD) $(LIBS)
 
@@ -695,26 +752,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -726,15 +772,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -743,6 +785,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -893,19 +950,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES ctags \
-	dist-hook distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am dist-hook distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/videoscale/gstvideoscale.c b/gst/videoscale/gstvideoscale.c
index 148b25e..0f2eada 100644
--- a/gst/videoscale/gstvideoscale.c
+++ b/gst/videoscale/gstvideoscale.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -90,7 +90,7 @@
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
 
 #define DEFAULT_PROP_METHOD       GST_VIDEO_SCALE_BILINEAR
-#define DEFAULT_PROP_ADD_BORDERS  FALSE
+#define DEFAULT_PROP_ADD_BORDERS  TRUE
 #define DEFAULT_PROP_SHARPNESS    1.0
 #define DEFAULT_PROP_SHARPEN      0.0
 #define DEFAULT_PROP_DITHER       FALSE
@@ -131,7 +131,8 @@
 
 
 static GstStaticCaps gst_video_scale_format_caps =
-GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS));
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS) ";"
+    GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("ANY", GST_VIDEO_FORMATS));
 
 #define GST_TYPE_VIDEO_SCALE_METHOD (gst_video_scale_method_get_type())
 static GType
@@ -203,6 +204,9 @@
 static void gst_video_scale_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
+static GstFlowReturn do_scale (GstVideoFilter * filter, VSImage dest[4],
+    VSImage src[4]);
+
 #define gst_video_scale_parent_class parent_class
 G_DEFINE_TYPE (GstVideoScale, gst_video_scale, GST_TYPE_VIDEO_FILTER);
 
@@ -407,7 +411,7 @@
     case GST_VIDEO_SCALE_4TAP:
     {
       static GstStaticCaps fourtap_filter =
-          GST_STATIC_CAPS ("video/x-raw,"
+          GST_STATIC_CAPS ("video/x-raw(ANY),"
           "format = (string) { RGBx, xRGB, BGRx, xBGR, RGBA, "
           "ARGB, BGRA, ABGR, AYUV, ARGB64, AYUV64, "
           "RGB, BGR, v308, YUY2, YVYU, UYVY, "
@@ -418,7 +422,7 @@
     case GST_VIDEO_SCALE_LANCZOS:
     {
       static GstStaticCaps lanczos_filter =
-          GST_STATIC_CAPS ("video/x-raw,"
+          GST_STATIC_CAPS ("video/x-raw(ANY),"
           "format = (string) { RGBx, xRGB, BGRx, xBGR, RGBA, "
           "ARGB, BGRA, ABGR, AYUV, ARGB64, AYUV64, "
           "I420, YV12, Y444, Y42B, Y41B }");
@@ -439,6 +443,7 @@
   GstVideoScaleMethod method;
   GstCaps *ret, *mfilter;
   GstStructure *structure;
+  GstCapsFeatures *features;
   gint i, n;
 
   GST_DEBUG_OBJECT (trans,
@@ -450,6 +455,8 @@
   GST_OBJECT_UNLOCK (videoscale);
 
   /* filter the supported formats */
+  /* FIXME: Ideally we would still allow passthrough for the color formats
+   * that are unsupported by the selected method */
   if ((mfilter = get_formats_filter (method))) {
     caps = gst_caps_intersect_full (caps, mfilter, GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (mfilter);
@@ -461,24 +468,32 @@
   n = gst_caps_get_size (caps);
   for (i = 0; i < n; i++) {
     structure = gst_caps_get_structure (caps, i);
+    features = gst_caps_get_features (caps, i);
 
     /* If this is already expressed by the existing caps
      * skip this structure */
-    if (i > 0 && gst_caps_is_subset_structure (ret, structure))
+    if (i > 0 && gst_caps_is_subset_structure_full (ret, structure, features))
       continue;
 
     /* make copy */
     structure = gst_structure_copy (structure);
-    gst_structure_set (structure,
-        "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
-        "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
 
-    /* if pixel aspect ratio, make a range of it */
-    if (gst_structure_has_field (structure, "pixel-aspect-ratio")) {
-      gst_structure_set (structure, "pixel-aspect-ratio",
-          GST_TYPE_FRACTION_RANGE, 1, G_MAXINT, G_MAXINT, 1, NULL);
+    /* If the features are non-sysmem we can only do passthrough */
+    if (!gst_caps_features_is_any (features)
+        && gst_caps_features_is_equal (features,
+            GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY)) {
+      gst_structure_set (structure, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
+          "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
+
+      /* if pixel aspect ratio, make a range of it */
+      if (gst_structure_has_field (structure, "pixel-aspect-ratio")) {
+        gst_structure_set (structure, "pixel-aspect-ratio",
+            GST_TYPE_FRACTION_RANGE, 1, G_MAXINT, G_MAXINT, 1, NULL);
+      }
     }
-    gst_caps_append_structure (ret, structure);
+
+    gst_caps_append_structure_full (ret, structure,
+        gst_caps_features_copy (features));
   }
 
   if (filter) {
@@ -1003,7 +1018,7 @@
 
 static void
 gst_video_scale_setup_vs_image (VSImage * image, GstVideoFrame * frame,
-    gint component, gint b_w, gint b_h)
+    gint component, gint b_w, gint b_h, gboolean interlaced, gint field)
 {
   GstVideoFormat format;
   gint width, height;
@@ -1019,6 +1034,11 @@
   image->height = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (frame->info.finfo,
       component, MAX (1, height - b_h));
 
+  if (interlaced) {
+    image->real_height /= 2;
+    image->height /= 2;
+  }
+
   image->border_top = (image->real_height - image->height) / 2;
   image->border_bottom = image->real_height - image->height - image->border_top;
 
@@ -1036,12 +1056,19 @@
     image->border_right = image->real_width - image->width - image->border_left;
   }
 
-  image->real_pixels = frame->data[component];
-  image->stride = frame->info.stride[component];
+  image->real_pixels = GST_VIDEO_FRAME_PLANE_DATA (frame, component);
+  image->stride = GST_VIDEO_FRAME_PLANE_STRIDE (frame, component);
+
+  if (interlaced) {
+    if (field == 1)
+      image->real_pixels += image->stride;
+    image->stride *= 2;
+  }
 
   image->pixels =
       image->real_pixels + image->border_top * image->stride +
       image->border_left * GST_VIDEO_FRAME_COMP_PSTRIDE (frame, component);
+
 }
 
 static const guint8 *
@@ -1112,11 +1139,39 @@
   GstFlowReturn ret = GST_FLOW_OK;
   VSImage dest[4] = { {NULL,}, };
   VSImage src[4] = { {NULL,}, };
+  gint i;
+  gboolean interlaced;
+
+  interlaced = GST_VIDEO_FRAME_IS_INTERLACED (in_frame);
+
+  for (i = 0; i < GST_VIDEO_FRAME_N_PLANES (in_frame); i++) {
+    gst_video_scale_setup_vs_image (&src[i], in_frame, i, 0, 0, interlaced, 0);
+    gst_video_scale_setup_vs_image (&dest[i], out_frame, i,
+        videoscale->borders_w, videoscale->borders_h, interlaced, 0);
+  }
+  ret = do_scale (filter, dest, src);
+
+  if (interlaced) {
+    for (i = 0; i < GST_VIDEO_FRAME_N_PLANES (in_frame); i++) {
+      gst_video_scale_setup_vs_image (&src[i], in_frame, i, 0, 0, interlaced,
+          1);
+      gst_video_scale_setup_vs_image (&dest[i], out_frame, i,
+          videoscale->borders_w, videoscale->borders_h, interlaced, 1);
+    }
+    ret = do_scale (filter, dest, src);
+  }
+  return ret;
+}
+
+static GstFlowReturn
+do_scale (GstVideoFilter * filter, VSImage dest[4], VSImage src[4])
+{
+  GstVideoScale *videoscale = GST_VIDEO_SCALE (filter);
+  GstFlowReturn ret = GST_FLOW_OK;
   gint method;
   const guint8 *black;
-  gboolean add_borders;
   GstVideoFormat format;
-  gint i;
+  gboolean add_borders;
 
   GST_OBJECT_LOCK (videoscale);
   method = videoscale->method;
@@ -1134,12 +1189,6 @@
     method = GST_VIDEO_SCALE_BILINEAR;
   }
 
-  for (i = 0; i < GST_VIDEO_FRAME_N_PLANES (in_frame); i++) {
-    gst_video_scale_setup_vs_image (&src[i], in_frame, i, 0, 0);
-    gst_video_scale_setup_vs_image (&dest[i], out_frame, i,
-        videoscale->borders_w, videoscale->borders_h);
-  }
-
   GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, filter,
       "doing videoscale format %s", GST_VIDEO_INFO_NAME (&filter->in_info));
 
diff --git a/gst/videoscale/gstvideoscale.h b/gst/videoscale/gstvideoscale.h
index ecbc384..37c056e 100644
--- a/gst/videoscale/gstvideoscale.h
+++ b/gst/videoscale/gstvideoscale.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_SCALE_H__
diff --git a/gst/videoscale/gstvideoscaleorc-dist.c b/gst/videoscale/gstvideoscaleorc-dist.c
index 97c5311..c627d0c 100644
--- a/gst/videoscale/gstvideoscaleorc-dist.c
+++ b/gst/videoscale/gstvideoscaleorc-dist.c
@@ -188,7 +188,11 @@
   orc_int8 var36;
   orc_int8 var37;
   orc_union16 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
   orc_union16 var39;
+#endif
   orc_int8 var40;
   orc_int8 var41;
   orc_union16 var42;
@@ -246,7 +250,11 @@
   orc_int8 var36;
   orc_int8 var37;
   orc_union16 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
   orc_union16 var39;
+#endif
   orc_int8 var40;
   orc_int8 var41;
   orc_union16 var42;
@@ -307,6 +315,20 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 109, 101, 114, 103, 101, 95, 108, 105, 110, 101, 97, 114,
+            95,
+        117, 56, 11, 1, 1, 12, 1, 1, 12, 1, 1, 14, 4, 128, 0, 0,
+        0, 16, 1, 20, 2, 20, 2, 20, 1, 20, 1, 43, 34, 4, 150, 32,
+        4, 150, 33, 5, 98, 33, 33, 32, 89, 33, 33, 24, 70, 33, 33, 16,
+        158, 35, 33, 33, 0, 35, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_merge_linear_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_merge_linear_u8");
       orc_program_set_backup_function (p,
@@ -337,6 +359,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -475,6 +498,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 109, 101, 114, 103, 101, 95, 108, 105, 110, 101, 97, 114,
+            95,
+        117, 49, 54, 11, 2, 2, 12, 2, 2, 12, 2, 2, 14, 4, 16, 0,
+        0, 0, 16, 2, 16, 2, 20, 4, 20, 4, 177, 32, 4, 24, 177, 33,
+        5, 25, 103, 32, 32, 33, 126, 32, 32, 16, 163, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_merge_linear_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_merge_linear_u16");
       orc_program_set_backup_function (p,
@@ -498,6 +534,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -583,6 +620,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 49, 54, 11, 2, 2, 16,
+        2, 79, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_splat_u16");
       orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u16);
@@ -591,6 +637,7 @@
 
       orc_program_append_2 (p, "copyw", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -673,6 +720,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16,
+        4, 112, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_splat_u32");
       orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u32);
@@ -681,6 +737,7 @@
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -765,6 +822,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 54, 52, 11, 8, 8, 18,
+        8, 137, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u64);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_splat_u64");
       orc_program_set_backup_function (p, _backup_video_scale_orc_splat_u64);
@@ -773,6 +839,7 @@
 
       orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -884,6 +951,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 117,
+            56,
+        11, 1, 1, 12, 2, 2, 20, 1, 20, 1, 199, 32, 33, 4, 39, 0,
+        32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_downsample_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_downsample_u8");
       orc_program_set_backup_function (p,
@@ -897,6 +976,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1003,6 +1083,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 117,
+            49,
+        54, 11, 2, 2, 12, 4, 4, 20, 2, 20, 2, 198, 32, 33, 4, 76,
+        0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_downsample_u16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_downsample_u16");
       orc_program_set_backup_function (p,
@@ -1016,6 +1108,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avguw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1128,6 +1221,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 117,
+            51,
+        50, 11, 4, 4, 12, 8, 8, 20, 4, 20, 4, 197, 32, 33, 4, 21,
+        2, 39, 0, 32, 33, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_downsample_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_downsample_u32");
       orc_program_set_backup_function (p,
@@ -1141,6 +1246,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "avgub", 2, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1369,6 +1475,20 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 31, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 100, 111, 119, 110, 115, 97, 109, 112, 108, 101, 95, 121,
+            117,
+        121, 118, 11, 4, 4, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2,
+        20, 2, 20, 2, 21, 2, 199, 32, 33, 4, 21, 1, 199, 34, 35, 32,
+        21, 1, 39, 36, 34, 35, 198, 34, 35, 33, 21, 1, 39, 37, 34, 35,
+        21, 1, 196, 0, 36, 37, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_downsample_yuyv);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_downsample_yuyv");
       orc_program_set_backup_function (p,
@@ -1394,6 +1514,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1476,6 +1597,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 35, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 110, 101, 97,
+            114,
+        101, 115, 116, 95, 117, 56, 11, 1, 1, 12, 1, 1, 16, 4, 16, 4,
+        48, 0, 4, 24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_resample_nearest_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_resample_nearest_u8");
       orc_program_set_backup_function (p,
@@ -1487,6 +1620,7 @@
 
       orc_program_append_2 (p, "ldresnearb", 0, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_P1, ORC_VAR_P2);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1581,6 +1715,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 36, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 98, 105, 108,
+            105,
+        110, 101, 97, 114, 95, 117, 56, 11, 1, 1, 12, 1, 1, 16, 4, 16,
+        4, 50, 0, 4, 24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_resample_bilinear_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_resample_bilinear_u8");
       orc_program_set_backup_function (p,
@@ -1592,6 +1738,7 @@
 
       orc_program_append_2 (p, "ldreslinb", 0, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_P1, ORC_VAR_P2);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1676,6 +1823,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 36, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 110, 101, 97,
+            114,
+        101, 115, 116, 95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 16, 4, 16,
+        4, 49, 0, 4, 24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_resample_nearest_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_resample_nearest_u32");
       orc_program_set_backup_function (p,
@@ -1687,6 +1846,7 @@
 
       orc_program_append_2 (p, "ldresnearl", 0, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_P1, ORC_VAR_P2);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1803,6 +1963,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 98, 105, 108,
+            105,
+        110, 101, 97, 114, 95, 117, 51, 50, 11, 4, 4, 12, 4, 4, 16, 4,
+        16, 4, 51, 0, 4, 24, 25, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_resample_bilinear_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_resample_bilinear_u32");
       orc_program_set_backup_function (p,
@@ -1814,6 +1986,7 @@
 
       orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_P1, ORC_VAR_P2);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2035,6 +2208,22 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 43, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 114, 101, 115, 97, 109, 112, 108, 101, 95, 109, 101, 114,
+            103,
+        101, 95, 98, 105, 108, 105, 110, 101, 97, 114, 95, 117, 51, 50, 11, 4,
+        4, 11, 4, 4, 12, 4, 4, 12, 4, 4, 16, 4, 16, 4, 16, 4,
+        20, 4, 20, 4, 20, 4, 20, 8, 20, 8, 51, 33, 5, 25, 26, 128,
+        1, 33, 113, 32, 4, 21, 2, 150, 35, 32, 21, 2, 150, 36, 33, 21,
+        2, 98, 36, 36, 35, 21, 2, 89, 36, 36, 24, 21, 2, 158, 34, 36,
+        21, 2, 33, 0, 34, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_resample_merge_bilinear_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_resample_merge_bilinear_u32");
       orc_program_set_backup_function (p,
@@ -2070,6 +2259,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2118,7 +2308,11 @@
   orc_int8 var39;
   orc_int8 var40;
   orc_int8 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
   orc_union16 var42;
+#endif
   orc_int8 var43;
   orc_union16 var44;
   orc_union16 var45;
@@ -2201,7 +2395,11 @@
   orc_int8 var39;
   orc_int8 var40;
   orc_int8 var41;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var42;
+#else
   orc_union16 var42;
+#endif
   orc_int8 var43;
   orc_union16 var44;
   orc_union16 var45;
@@ -2281,6 +2479,21 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 105, 100, 101, 111, 95, 115, 99, 97, 108, 101, 95, 111,
+        114, 99, 95, 109, 101, 114, 103, 101, 95, 98, 105, 99, 117, 98, 105, 99,
+        95, 117, 56, 11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12,
+        1, 1, 14, 4, 32, 0, 0, 0, 14, 4, 6, 0, 0, 0, 16, 4,
+        16, 4, 16, 4, 16, 4, 20, 2, 20, 2, 175, 32, 5, 25, 175, 33,
+        6, 26, 70, 32, 32, 33, 175, 33, 4, 24, 98, 32, 32, 33, 175, 33,
+        7, 27, 98, 32, 32, 33, 70, 32, 32, 16, 94, 32, 32, 17, 160, 0,
+        32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_video_scale_orc_merge_bicubic_u8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_scale_orc_merge_bicubic_u8");
       orc_program_set_backup_function (p,
@@ -2319,6 +2532,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/videoscale/vs_4tap.c b/gst/videoscale/vs_4tap.c
index 4377fd7..b770d8f 100644
--- a/gst/videoscale/vs_4tap.c
+++ b/gst/videoscale/vs_4tap.c
@@ -25,6 +25,9 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "vs_image.h"
 #include "vs_scanline.h"
diff --git a/gst/videoscale/vs_fill_borders.c b/gst/videoscale/vs_fill_borders.c
index 0c5bba4..2a12d23 100644
--- a/gst/videoscale/vs_fill_borders.c
+++ b/gst/videoscale/vs_fill_borders.c
@@ -24,7 +24,6 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
diff --git a/gst/videoscale/vs_image.c b/gst/videoscale/vs_image.c
index 815ad16..bcd0d98 100644
--- a/gst/videoscale/vs_image.c
+++ b/gst/videoscale/vs_image.c
@@ -24,6 +24,9 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <string.h>
 
diff --git a/gst/videoscale/vs_lanczos.c b/gst/videoscale/vs_lanczos.c
index 67cd401..929a763 100644
--- a/gst/videoscale/vs_lanczos.c
+++ b/gst/videoscale/vs_lanczos.c
@@ -114,6 +114,10 @@
  * the strength of the sharpening filter.
  *
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <string.h>
 
 #include "vs_scanline.h"
diff --git a/gst/videoscale/vs_scanline.c b/gst/videoscale/vs_scanline.c
index fc66d5e..f34581e 100644
--- a/gst/videoscale/vs_scanline.c
+++ b/gst/videoscale/vs_scanline.c
@@ -24,6 +24,9 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include "vs_scanline.h"
 
diff --git a/gst/videotestsrc/Makefile.in b/gst/videotestsrc/Makefile.in
index f26ccd1..50679b5 100644
--- a/gst/videotestsrc/Makefile.in
+++ b/gst/videotestsrc/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,8 +102,8 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 EXTRA_PROGRAMS = generate_sine_table$(EXEEXT)
 subdir = gst/videotestsrc
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -84,7 +111,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -166,6 +192,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvideotestsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) \
@@ -179,6 +206,18 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(generate_sine_table_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -191,20 +230,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvideotestsrc_la_SOURCES) \
 	$(nodist_libgstvideotestsrc_la_SOURCES) \
 	$(generate_sine_table_SOURCES)
@@ -216,6 +251,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -572,6 +624,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -598,14 +651,18 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvideotestsrc.la: $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_DEPENDENCIES) $(EXTRA_libgstvideotestsrc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvideotestsrc_la_LINK) -rpath $(plugindir) $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_LIBADD) $(LIBS)
+
 generate_sine_table$(EXEEXT): $(generate_sine_table_OBJECTS) $(generate_sine_table_DEPENDENCIES) $(EXTRA_generate_sine_table_DEPENDENCIES) 
 	@rm -f generate_sine_table$(EXEEXT)
 	$(AM_V_CCLD)$(generate_sine_table_LINK) $(generate_sine_table_OBJECTS) $(generate_sine_table_LDADD) $(LIBS)
@@ -683,26 +740,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -714,15 +760,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -731,6 +773,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -881,19 +938,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES ctags \
-	dist-hook distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am dist-hook distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c
index ff175c4..63e67ce 100644
--- a/gst/videotestsrc/gstvideotestsrc.c
+++ b/gst/videotestsrc/gstvideotestsrc.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -247,27 +247,23 @@
    *
    * Color to use for solid-color pattern and foreground color of other
    * patterns.  Default is white (0xffffffff).
-   *
-   * Since: 0.10.31
-   **/
+   */
   g_object_class_install_property (gobject_class, PROP_FOREGROUND_COLOR,
       g_param_spec_uint ("foreground-color", "Foreground Color",
           "Foreground color to use (big-endian ARGB)", 0, G_MAXUINT32,
           DEFAULT_FOREGROUND_COLOR,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
   /**
    * GstVideoTestSrc:background-color
    *
    * Color to use for background color of some patterns.  Default is
    * black (0xff000000).
-   *
-   * Since: 0.10.31
-   **/
+   */
   g_object_class_install_property (gobject_class, PROP_BACKGROUND_COLOR,
       g_param_spec_uint ("background-color", "Background Color",
           "Background color to use (big-endian ARGB)", 0, G_MAXUINT32,
           DEFAULT_BACKGROUND_COLOR,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class, PROP_HORIZONTAL_SPEED,
       g_param_spec_int ("horizontal-speed", "Horizontal Speed",
@@ -654,34 +650,15 @@
   return GST_BASE_SRC_CLASS (parent_class)->decide_allocation (bsrc, query);
 }
 
-static void
-fill_palette_RGB8P (guint32 * palette)
-{
-  /* build poor man's palette, taken from ffmpegcolorspace */
-  static const guint8 pal_value[6] = { 0x00, 0x33, 0x66, 0x99, 0xcc, 0xff };
-  gint i, r, g, b;
-
-  i = 0;
-  for (r = 0; r < 6; r++) {
-    for (g = 0; g < 6; g++) {
-      for (b = 0; b < 6; b++) {
-        palette[i++] =
-            (0xffU << 24) | (pal_value[r] << 16) | (pal_value[g] << 8) |
-            pal_value[b];
-      }
-    }
-  }
-  palette[i++] = 0;             /* 100% transparent, i == 6*6*6 */
-  while (i < 256)
-    palette[i++] = 0xff000000;
-}
-
 static gboolean
 gst_video_test_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps)
 {
   const GstStructure *structure;
   GstVideoTestSrc *videotestsrc;
   GstVideoInfo info;
+  guint i;
+  guint n_lines;
+  gint offset;
 
   videotestsrc = GST_VIDEO_TEST_SRC (bsrc);
 
@@ -711,6 +688,31 @@
     videotestsrc->y_invert = y_inv;
   }
 
+  /* create chroma subsampler */
+  if (videotestsrc->subsample)
+    gst_video_chroma_resample_free (videotestsrc->subsample);
+  videotestsrc->subsample = gst_video_chroma_resample_new (0,
+      info.chroma_site, 0, info.finfo->unpack_format, -info.finfo->w_sub[2],
+      -info.finfo->h_sub[2]);
+
+  for (i = 0; i < videotestsrc->n_lines; i++)
+    g_free (videotestsrc->lines[i]);
+  g_free (videotestsrc->lines);
+
+  if (videotestsrc->subsample != NULL) {
+    gst_video_chroma_resample_get_info (videotestsrc->subsample,
+        &n_lines, &offset);
+  } else {
+    n_lines = 1;
+    offset = 0;
+  }
+
+  videotestsrc->lines = g_malloc (sizeof (gpointer) * n_lines);
+  for (i = 0; i < n_lines; i++)
+    videotestsrc->lines[i] = g_malloc ((info.width + 16) * 8);
+  videotestsrc->n_lines = n_lines;
+  videotestsrc->offset = offset;
+
   /* looks ok here */
   videotestsrc->info = info;
 
@@ -721,19 +723,11 @@
   g_free (videotestsrc->tmpline2);
   g_free (videotestsrc->tmpline_u8);
   g_free (videotestsrc->tmpline_u16);
-  g_free (videotestsrc->palette);
   videotestsrc->tmpline_u8 = g_malloc (info.width + 8);
   videotestsrc->tmpline = g_malloc ((info.width + 8) * 4);
   videotestsrc->tmpline2 = g_malloc ((info.width + 8) * 4);
   videotestsrc->tmpline_u16 = g_malloc ((info.width + 16) * 8);
 
-  if (GST_VIDEO_INFO_FORMAT (&info) == GST_VIDEO_FORMAT_RGB8P) {
-    videotestsrc->palette = g_new (guint32, 256);
-    fill_palette_RGB8P (videotestsrc->palette);
-  } else {
-    videotestsrc->palette = NULL;
-  }
-
   videotestsrc->accum_rtime += videotestsrc->running_time;
   videotestsrc->accum_frames += videotestsrc->n_frames;
 
@@ -847,6 +841,8 @@
   GstVideoTestSrc *src;
   GstClockTime next_time;
   GstVideoFrame frame;
+  gconstpointer pal;
+  gsize palsize;
 
   src = GST_VIDEO_TEST_SRC (psrc);
 
@@ -864,18 +860,21 @@
   if (!gst_video_frame_map (&frame, &src->info, buffer, GST_MAP_WRITE))
     goto invalid_frame;
 
-  src->make_image (src, &frame);
-
-  if (src->palette) {
-    memcpy (GST_VIDEO_FRAME_PLANE_DATA (&frame, 1), src->palette, 256 * 4);
-  }
-
-  gst_video_frame_unmap (&frame);
-
   GST_BUFFER_DTS (buffer) =
       src->accum_rtime + src->timestamp_offset + src->running_time;
   GST_BUFFER_PTS (buffer) = GST_BUFFER_DTS (buffer);
 
+  gst_object_sync_values (GST_OBJECT (psrc), GST_BUFFER_DTS (buffer));
+
+  src->make_image (src, &frame);
+
+  if ((pal = gst_video_format_get_palette (GST_VIDEO_FRAME_FORMAT (&frame),
+              &palsize))) {
+    memcpy (GST_VIDEO_FRAME_PLANE_DATA (&frame, 1), pal, palsize);
+  }
+
+  gst_video_frame_unmap (&frame);
+
   GST_DEBUG_OBJECT (src, "Timestamp: %" GST_TIME_FORMAT " = accumulated %"
       GST_TIME_FORMAT " + offset: %"
       GST_TIME_FORMAT " + running time: %" GST_TIME_FORMAT,
@@ -934,6 +933,7 @@
 gst_video_test_src_stop (GstBaseSrc * basesrc)
 {
   GstVideoTestSrc *src = GST_VIDEO_TEST_SRC (basesrc);
+  guint i;
 
   g_free (src->tmpline);
   src->tmpline = NULL;
@@ -943,8 +943,15 @@
   src->tmpline_u8 = NULL;
   g_free (src->tmpline_u16);
   src->tmpline_u16 = NULL;
-  g_free (src->palette);
-  src->palette = NULL;
+  if (src->subsample)
+    gst_video_chroma_resample_free (src->subsample);
+  src->subsample = NULL;
+
+  for (i = 0; i < src->n_lines; i++)
+    g_free (src->lines[i]);
+  g_free (src->lines);
+  src->n_lines = 0;
+  src->lines = NULL;
 
   return TRUE;
 }
diff --git a/gst/videotestsrc/gstvideotestsrc.h b/gst/videotestsrc/gstvideotestsrc.h
index c365c5d..a836104 100644
--- a/gst/videotestsrc/gstvideotestsrc.h
+++ b/gst/videotestsrc/gstvideotestsrc.h
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VIDEO_TEST_SRC_H__
@@ -124,6 +124,7 @@
 
   /* video state */
   GstVideoInfo info;
+  GstVideoChromaResample *subsample;
   gboolean bayer;
   gint x_invert;
   gint y_invert;
@@ -162,13 +163,16 @@
   gint horizontal_speed;
 
   void (*make_image) (GstVideoTestSrc *v, GstVideoFrame *frame);
-  guint32 *palette;
 
   /* temporary AYUV/ARGB scanline */
   guint8 *tmpline_u8;
   guint8 *tmpline;
   guint8 *tmpline2;
   guint16 *tmpline_u16;
+
+  guint n_lines;
+  gint offset;
+  gpointer *lines;
 };
 
 struct _GstVideoTestSrcClass {
diff --git a/gst/videotestsrc/gstvideotestsrcorc-dist.c b/gst/videotestsrc/gstvideotestsrcorc-dist.c
index 38da8e3..63ca17a 100644
--- a/gst/videotestsrc/gstvideotestsrcorc-dist.c
+++ b/gst/videotestsrc/gstvideotestsrcorc-dist.c
@@ -203,6 +203,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 28, 118, 105, 100, 101, 111, 95, 116, 101, 115, 116, 95, 115, 114,
+        99, 95, 111, 114, 99, 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11,
+        4, 4, 16, 4, 112, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_test_src_orc_splat_u32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "video_test_src_orc_splat_u32");
       orc_program_set_backup_function (p, _backup_video_test_src_orc_splat_u32);
@@ -211,6 +220,7 @@
 
       orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/gst/videotestsrc/videotestsrc.c b/gst/videotestsrc/videotestsrc.c
index 4cec2b1..8aabf2a 100644
--- a/gst/videotestsrc/videotestsrc.c
+++ b/gst/videotestsrc/videotestsrc.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -197,6 +197,9 @@
   p->tmpline2 = v->tmpline2;
   p->tmpline_u8 = v->tmpline_u8;
   p->tmpline_u16 = v->tmpline_u16;
+  p->n_lines = v->n_lines;
+  p->offset = v->offset;
+  p->lines = v->lines;
   p->x_offset = (v->horizontal_speed * v->n_frames) % width;
   if (p->x_offset < 0)
     p->x_offset += width;
@@ -243,6 +246,7 @@
   }
   p->background_color.gray = RGB_TO_Y (r, g, b);
 
+  p->subsample = v->subsample;
 }
 
 static void
@@ -1134,13 +1138,24 @@
 convert_hline_generic (paintinfo * p, GstVideoFrame * frame, int y)
 {
   const GstVideoFormatInfo *finfo, *uinfo;
-  gint i, width = GST_VIDEO_FRAME_WIDTH (frame);
-  gpointer src;
+  gint line, offset, i, width, height, bits;
+  guint n_lines;
+  gpointer dest;
 
   finfo = frame->info.finfo;
   uinfo = gst_video_format_get_info (finfo->unpack_format);
 
-  if (GST_VIDEO_FORMAT_INFO_DEPTH (uinfo, 0) == 16) {
+  width = GST_VIDEO_FRAME_WIDTH (frame);
+  height = GST_VIDEO_FRAME_HEIGHT (frame);
+
+  bits = GST_VIDEO_FORMAT_INFO_DEPTH (uinfo, 0);
+
+  n_lines = p->n_lines;
+  offset = p->offset;
+  line = y % n_lines;
+  dest = p->lines[line];
+
+  if (bits == 16) {
     /* 16 bits */
     for (i = 0; i < width; i++) {
       p->tmpline_u16[i * 4 + 0] = TO_16 (p->tmpline[i * 4 + 0]);
@@ -1148,13 +1163,34 @@
       p->tmpline_u16[i * 4 + 2] = TO_16 (p->tmpline[i * 4 + 2]);
       p->tmpline_u16[i * 4 + 3] = TO_16 (p->tmpline[i * 4 + 3]);
     }
-    src = p->tmpline_u16;
+    memcpy (dest, p->tmpline_u16, width * 8);
   } else {
-    src = p->tmpline;
+    memcpy (dest, p->tmpline, width * 4);
   }
-  finfo->pack_func (finfo, GST_VIDEO_PACK_FLAG_NONE,
-      src, 0, frame->data, frame->info.stride,
-      frame->info.chroma_site, y, width);
+
+  if (line - offset == n_lines - 1) {
+    gpointer lines[8];
+    guint idx;
+
+    y -= n_lines - 1;
+
+    for (i = 0; i < n_lines; i++) {
+      idx = CLAMP (y + i + offset, 0, height);
+
+      GST_DEBUG ("line %d, %d, idx %d", i, y + i + offset, idx);
+      lines[i] = p->lines[idx % n_lines];
+    }
+
+    if (p->subsample)
+      gst_video_chroma_resample (p->subsample, lines, width);
+
+    for (i = 0; i < n_lines; i++) {
+      GST_DEBUG ("pack line %d", y + i + offset);
+      finfo->pack_func (finfo, GST_VIDEO_PACK_FLAG_NONE,
+          lines[i], 0, frame->data, frame->info.stride,
+          frame->info.chroma_site, y + i + offset, width);
+    }
+  }
 }
 
 static void
diff --git a/gst/videotestsrc/videotestsrc.h b/gst/videotestsrc/videotestsrc.h
index 3b0657a..6a69c8c 100644
--- a/gst/videotestsrc/videotestsrc.h
+++ b/gst/videotestsrc/videotestsrc.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __VIDEO_TEST_SRC_H__
@@ -39,6 +39,7 @@
   void (*paint_tmpline) (paintinfo * p, int x, int w);
   void (*convert_tmpline) (paintinfo * p, GstVideoFrame *frame, int y);
   void (*convert_hline) (paintinfo * p, GstVideoFrame *frame, int y);
+  GstVideoChromaResample *subsample;
   int x_offset;
 
   int x_invert;
@@ -49,6 +50,10 @@
   guint8 *tmpline_u8;
   guint16 *tmpline_u16;
 
+  guint n_lines;
+  gint offset;
+  gpointer *lines;
+
   struct vts_color_struct foreground_color;
   struct vts_color_struct background_color;
 };
diff --git a/gst/volume/Makefile.in b/gst/volume/Makefile.in
index 5834813..8798dbd 100644
--- a/gst/volume/Makefile.in
+++ b/gst/volume/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -39,23 +38,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,15 +102,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak
+DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/volume
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -163,10 +189,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstvolume_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
 	$(CCLD) $(libgstvolume_la_CFLAGS) $(CFLAGS) \
 	$(libgstvolume_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -179,20 +218,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstvolume_la_SOURCES) $(nodist_libgstvolume_la_SOURCES)
 DIST_SOURCES = $(libgstvolume_la_SOURCES)
 am__can_run_installinfo = \
@@ -201,6 +236,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -553,6 +605,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -579,12 +632,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstvolume.la: $(libgstvolume_la_OBJECTS) $(libgstvolume_la_DEPENDENCIES) $(EXTRA_libgstvolume_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstvolume_la_LINK) -rpath $(plugindir) $(libgstvolume_la_OBJECTS) $(libgstvolume_la_LIBADD) $(LIBS)
 
@@ -638,26 +694,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -669,15 +714,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -686,6 +727,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -836,19 +892,20 @@
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-local clean-pluginLTLIBRARIES ctags \
-	dist-hook distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-local clean-pluginLTLIBRARIES \
+	cscopelist-am ctags ctags-am dist-hook distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pluginLTLIBRARIES \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
 
diff --git a/gst/volume/gstvolume.c b/gst/volume/gstvolume.c
index 845a3fd..0f5b362 100644
--- a/gst/volume/gstvolume.c
+++ b/gst/volume/gstvolume.c
@@ -18,8 +18,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -718,7 +718,7 @@
   GstAudioFilter *filter = GST_AUDIO_FILTER_CAST (base);
   GstVolume *self = GST_VOLUME (base);
   GstMapInfo map;
-  GstControlBinding *mute_cb, *volume_cb;
+  GstClockTime ts;
 
   if (G_UNLIKELY (!self->negotiated))
     goto not_negotiated;
@@ -728,64 +728,64 @@
     return GST_FLOW_OK;
 
   gst_buffer_map (outbuf, &map, GST_MAP_READWRITE);
+  ts = GST_BUFFER_TIMESTAMP (outbuf);
+  ts = gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, ts);
 
-  mute_cb = gst_object_get_control_binding (GST_OBJECT (self), "mute");
-  volume_cb = gst_object_get_control_binding (GST_OBJECT (self), "volume");
+  if (GST_CLOCK_TIME_IS_VALID (ts)) {
+    GstControlBinding *mute_cb, *volume_cb;
 
-  if (mute_cb || (volume_cb && !self->current_mute)) {
-    gint rate = GST_AUDIO_INFO_RATE (&filter->info);
-    gint width = GST_AUDIO_FORMAT_INFO_WIDTH (filter->info.finfo) / 8;
-    gint channels = GST_AUDIO_INFO_CHANNELS (&filter->info);
-    guint nsamples = map.size / (width * channels);
-    GstClockTime interval = gst_util_uint64_scale_int (1, GST_SECOND, rate);
-    GstClockTime ts = GST_BUFFER_TIMESTAMP (outbuf);
-    gboolean use_mutes = FALSE;
+    mute_cb = gst_object_get_control_binding (GST_OBJECT (self), "mute");
+    volume_cb = gst_object_get_control_binding (GST_OBJECT (self), "volume");
 
-    ts = gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, ts);
+    if (mute_cb || (volume_cb && !self->current_mute)) {
+      gint rate = GST_AUDIO_INFO_RATE (&filter->info);
+      gint width = GST_AUDIO_FORMAT_INFO_WIDTH (filter->info.finfo) / 8;
+      gint channels = GST_AUDIO_INFO_CHANNELS (&filter->info);
+      guint nsamples = map.size / (width * channels);
+      GstClockTime interval = gst_util_uint64_scale_int (1, GST_SECOND, rate);
+      gboolean have_mutes = FALSE;
+      gboolean have_volumes = FALSE;
 
-    if (self->mutes_count < nsamples && mute_cb) {
-      self->mutes = g_realloc (self->mutes, sizeof (gboolean) * nsamples);
-      self->mutes_count = nsamples;
+      if (self->mutes_count < nsamples && mute_cb) {
+        self->mutes = g_realloc (self->mutes, sizeof (gboolean) * nsamples);
+        self->mutes_count = nsamples;
+      }
+
+      if (self->volumes_count < nsamples) {
+        self->volumes = g_realloc (self->volumes, sizeof (gdouble) * nsamples);
+        self->volumes_count = nsamples;
+      }
+
+      if (volume_cb) {
+        have_volumes =
+            gst_control_binding_get_value_array (volume_cb, ts, interval,
+            nsamples, (gpointer) self->volumes);
+        gst_object_replace ((GstObject **) & volume_cb, NULL);
+      }
+      if (!have_volumes) {
+        volume_orc_memset_f64 (self->volumes, self->current_volume, nsamples);
+      }
+
+      if (mute_cb) {
+        have_mutes = gst_control_binding_get_value_array (mute_cb, ts, interval,
+            nsamples, (gpointer) self->mutes);
+        gst_object_replace ((GstObject **) & mute_cb, NULL);
+      }
+      if (have_mutes) {
+        volume_orc_prepare_volumes (self->volumes, self->mutes, nsamples);
+      } else {
+        g_free (self->mutes);
+        self->mutes = NULL;
+        self->mutes_count = 0;
+      }
+
+      self->process_controlled (self, map.data, self->volumes, channels,
+          map.size);
+
+      goto done;
+    } else if (volume_cb) {
+      gst_object_unref (volume_cb);
     }
-
-    if (self->volumes_count < nsamples) {
-      self->volumes = g_realloc (self->volumes, sizeof (gdouble) * nsamples);
-      self->volumes_count = nsamples;
-    }
-
-    if (mute_cb) {
-      if (!gst_control_binding_get_value_array (mute_cb, ts, interval,
-              nsamples, (gpointer) self->mutes))
-        goto controller_failure;
-
-      gst_object_replace ((GstObject **) & mute_cb, NULL);
-      use_mutes = TRUE;
-    } else {
-      g_free (self->mutes);
-      self->mutes = NULL;
-      self->mutes_count = 0;
-    }
-
-    if (volume_cb) {
-      if (!gst_control_binding_get_value_array (volume_cb, ts, interval,
-              nsamples, (gpointer) self->volumes))
-        goto controller_failure;
-
-      gst_object_replace ((GstObject **) & volume_cb, NULL);
-    } else {
-      volume_orc_memset_f64 (self->volumes, self->current_volume, nsamples);
-    }
-
-    if (use_mutes) {
-      volume_orc_prepare_volumes (self->volumes, self->mutes, nsamples);
-    }
-
-    self->process_controlled (self, map.data, self->volumes, channels,
-        map.size);
-
-    goto done;
-  } else if (volume_cb) {
-    gst_object_unref (volume_cb);
   }
 
   if (self->current_volume == 0.0 || self->current_mute) {
@@ -807,18 +807,6 @@
         ("No format was negotiated"), (NULL));
     return GST_FLOW_NOT_NEGOTIATED;
   }
-controller_failure:
-  {
-    if (mute_cb)
-      gst_object_unref (mute_cb);
-    if (volume_cb)
-      gst_object_unref (volume_cb);
-
-    GST_ELEMENT_ERROR (self, CORE, FAILED,
-        ("Failed to get values from controller"), (NULL));
-    gst_buffer_unmap (outbuf, &map);
-    return GST_FLOW_ERROR;
-  }
 }
 
 static void
diff --git a/gst/volume/gstvolume.h b/gst/volume/gstvolume.h
index 86fe2b6..485a502 100644
--- a/gst/volume/gstvolume.h
+++ b/gst/volume/gstvolume.h
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_VOLUME_H__
diff --git a/gst/volume/gstvolumeorc-dist.c b/gst/volume/gstvolumeorc-dist.c
index 552843f..80c9f8b 100644
--- a/gst/volume/gstvolumeorc-dist.c
+++ b/gst/volume/gstvolumeorc-dist.c
@@ -254,6 +254,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99,
+        97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 54,
+            52,
+        95, 110, 115, 11, 8, 8, 18, 8, 214, 0, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_scalarmultiply_f64_ns);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_scalarmultiply_f64_ns");
       orc_program_set_backup_function (p,
@@ -263,6 +274,7 @@
 
       orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -372,6 +384,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99,
+        97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 51,
+            50,
+        95, 110, 115, 11, 4, 4, 17, 4, 202, 0, 0, 24, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_scalarmultiply_f32_ns);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_scalarmultiply_f32_ns");
       orc_program_set_backup_function (p,
@@ -381,6 +404,7 @@
 
       orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -485,6 +509,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 51, 50, 11, 4, 4, 14, 4,
+        27, 0, 0, 0, 16, 4, 20, 8, 178, 32, 0, 24, 147, 32, 32, 16,
+        169, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_volume_orc_process_int32);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_int32");
       orc_program_set_backup_function (p, _backup_volume_orc_process_int32);
@@ -499,6 +533,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -599,6 +634,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 51, 50, 95, 99, 108, 97, 109,
+        112, 11, 4, 4, 14, 4, 27, 0, 0, 0, 16, 4, 20, 8, 178, 32,
+        0, 24, 147, 32, 32, 16, 170, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_int32_clamp);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_int32_clamp");
       orc_program_set_backup_function (p,
@@ -614,6 +660,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -714,6 +761,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 24, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 49, 54, 11, 2, 2, 14, 4,
+        11, 0, 0, 0, 16, 2, 20, 4, 176, 32, 0, 24, 125, 32, 32, 16,
+        163, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_volume_orc_process_int16);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_int16");
       orc_program_set_backup_function (p, _backup_volume_orc_process_int16);
@@ -728,6 +785,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -828,6 +886,17 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 30, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 49, 54, 95, 99, 108, 97, 109,
+        112, 11, 2, 2, 14, 4, 11, 0, 0, 0, 16, 2, 20, 4, 176, 32,
+        0, 24, 125, 32, 32, 16, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_int16_clamp);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_int16_clamp");
       orc_program_set_backup_function (p,
@@ -843,6 +912,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -943,6 +1013,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 23, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 11, 1, 1, 14, 4, 3,
+        0, 0, 0, 16, 1, 20, 2, 174, 32, 0, 24, 94, 32, 32, 16, 157,
+        0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_volume_orc_process_int8);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_int8");
       orc_program_set_backup_function (p, _backup_volume_orc_process_int8);
@@ -957,6 +1037,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1057,6 +1138,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 29, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 95, 99, 108, 97, 109,
+            112,
+        11, 1, 1, 14, 4, 3, 0, 0, 0, 16, 1, 20, 2, 174, 32, 0,
+        24, 94, 32, 32, 16, 159, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_int8_clamp);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_int8_clamp");
       orc_program_set_backup_function (p,
@@ -1072,6 +1165,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1156,6 +1250,15 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 21, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 109, 101,
+        109, 115, 101, 116, 95, 102, 54, 52, 11, 8, 8, 18, 8, 137, 0, 24,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_volume_orc_memset_f64);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_memset_f64");
       orc_program_set_backup_function (p, _backup_volume_orc_memset_f64);
@@ -1164,6 +1267,7 @@
 
       orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1200,7 +1304,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union64 var35;
   orc_union64 var36;
   orc_union64 var37;
@@ -1254,7 +1362,11 @@
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union64 var34;
+#else
   orc_union64 var34;
+#endif
   orc_union64 var35;
   orc_union64 var36;
   orc_union64 var37;
@@ -1313,6 +1425,16 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        101, 112, 97, 114, 101, 95, 118, 111, 108, 117, 109, 101, 115, 11, 8, 8,
+        12, 4, 4, 15, 8, 0, 0, 0, 0, 0, 0, 240, 63, 20, 8, 223,
+        32, 4, 213, 32, 16, 32, 214, 0, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_volume_orc_prepare_volumes);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_prepare_volumes");
       orc_program_set_backup_function (p, _backup_volume_orc_prepare_volumes);
@@ -1327,6 +1449,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1437,6 +1560,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 102, 54, 52, 95, 49, 99, 104, 11, 8, 8, 12, 8, 8, 214, 0,
+        0, 4, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_f64_1ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_f64_1ch");
       orc_program_set_backup_function (p,
@@ -1446,6 +1581,7 @@
 
       orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1574,6 +1710,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 102, 51, 50, 95, 49, 99, 104, 11, 4, 4, 12, 8, 8, 20, 4,
+        225, 32, 4, 202, 0, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_f32_1ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_f32_1ch");
       orc_program_set_backup_function (p,
@@ -1586,6 +1734,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1748,6 +1897,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 37, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 102, 51, 50, 95, 50, 99, 104, 11, 8, 8, 12, 8, 8, 20, 4,
+        20, 8, 225, 32, 4, 194, 33, 32, 32, 21, 1, 202, 0, 0, 33, 2,
+        0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_f32_2ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_f32_2ch");
       orc_program_set_backup_function (p,
@@ -1763,6 +1925,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mulf", 1, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -1897,6 +2060,18 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 105, 110, 116, 51, 50, 95, 49, 99, 104, 11, 4, 4, 12, 8, 8,
+        20, 8, 223, 32, 0, 214, 32, 32, 4, 222, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_int32_1ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_int32_1ch");
       orc_program_set_backup_function (p,
@@ -1911,6 +2086,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2075,6 +2251,19 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 105, 110, 116, 49, 54, 95, 49, 99, 104, 11, 2, 2, 12, 8, 8,
+        20, 4, 20, 4, 153, 32, 0, 211, 32, 32, 225, 33, 4, 202, 32, 32,
+        33, 210, 32, 32, 165, 0, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_int16_1ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_int16_1ch");
       orc_program_set_backup_function (p,
@@ -2096,6 +2285,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2314,6 +2504,20 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 39, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 105, 110, 116, 49, 54, 95, 50, 99, 104, 11, 4, 4, 12, 8, 8,
+        20, 8, 20, 4, 20, 8, 21, 1, 153, 32, 0, 21, 1, 211, 32, 32,
+        225, 33, 4, 194, 34, 33, 33, 21, 1, 202, 34, 34, 32, 21, 1, 210,
+        34, 34, 21, 1, 165, 0, 34, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_int16_2ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_int16_2ch");
       orc_program_set_backup_function (p,
@@ -2338,6 +2542,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2514,6 +2719,20 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 105, 110, 116, 56, 95, 49, 99, 104, 11, 1, 1, 12, 8, 8, 20,
+        2, 20, 4, 20, 4, 149, 32, 0, 153, 33, 32, 211, 33, 33, 225, 34,
+        4, 202, 33, 33, 34, 210, 33, 33, 163, 32, 33, 159, 0, 32, 2, 0,
+
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_int8_1ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_int8_1ch");
       orc_program_set_backup_function (p,
@@ -2540,6 +2759,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
@@ -2774,6 +2994,21 @@
     if (!p_inited) {
       OrcProgram *p;
 
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 38, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
+        111, 99, 101, 115, 115, 95, 99, 111, 110, 116, 114, 111, 108, 108, 101,
+            100,
+        95, 105, 110, 116, 56, 95, 50, 99, 104, 11, 2, 2, 12, 8, 8, 20,
+        4, 20, 8, 20, 8, 21, 1, 149, 32, 0, 21, 1, 153, 33, 32, 21,
+        1, 211, 33, 33, 225, 32, 4, 194, 34, 32, 32, 21, 1, 202, 33, 33,
+        34, 21, 1, 210, 33, 33, 21, 1, 163, 32, 33, 21, 1, 159, 0, 32,
+        2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p,
+          _backup_volume_orc_process_controlled_int8_2ch);
+#else
       p = orc_program_new ();
       orc_program_set_name (p, "volume_orc_process_controlled_int8_2ch");
       orc_program_set_backup_function (p,
@@ -2802,6 +3037,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssswb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
+#endif
 
       orc_program_compile (p);
       c = orc_program_take_code (p);
diff --git a/ltmain.sh b/ltmain.sh
index 499e473..68c6d96 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.2
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.3
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.2"
+VERSION="2.4.2 Debian-2.4.2-1.3"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 80057a0..bd6bdc1 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,12 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = m4
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,12 +123,18 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -110,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -464,11 +497,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -604,15 +637,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am
index 766305a..9976f95 100644
--- a/pkgconfig/Makefile.am
+++ b/pkgconfig/Makefile.am
@@ -1,5 +1,6 @@
 ### all of the standard pc files we need to generate
 pcverfiles =  \
+	gstreamer-allocators-@GST_API_VERSION@.pc \
 	gstreamer-audio-@GST_API_VERSION@.pc \
 	gstreamer-app-@GST_API_VERSION@.pc \
 	gstreamer-fft-@GST_API_VERSION@.pc \
@@ -12,6 +13,7 @@
 	gstreamer-video-@GST_API_VERSION@.pc \
 	gstreamer-plugins-base-@GST_API_VERSION@.pc
 pcverfiles_uninstalled = \
+	gstreamer-allocators-@GST_API_VERSION@-uninstalled.pc \
 	gstreamer-audio-@GST_API_VERSION@-uninstalled.pc \
 	gstreamer-app-@GST_API_VERSION@-uninstalled.pc \
 	gstreamer-fft-@GST_API_VERSION@-uninstalled.pc \
@@ -41,6 +43,7 @@
 
 CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled)
 pcinfiles = \
+		   gstreamer-allocators.pc.in gstreamer-allocators-uninstalled.pc.in \
            gstreamer-audio.pc.in gstreamer-audio-uninstalled.pc.in \
            gstreamer-app.pc.in gstreamer-app-uninstalled.pc.in \
            gstreamer-fft.pc.in gstreamer-fft-uninstalled.pc.in \
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index 906223a..9c179e1 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,35 +80,36 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = pkgconfig
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/gstreamer-app-uninstalled.pc.in \
-	$(srcdir)/gstreamer-app.pc.in \
-	$(srcdir)/gstreamer-audio-uninstalled.pc.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/gstreamer-allocators.pc.in \
+	$(srcdir)/gstreamer-allocators-uninstalled.pc.in \
 	$(srcdir)/gstreamer-audio.pc.in \
-	$(srcdir)/gstreamer-fft-uninstalled.pc.in \
+	$(srcdir)/gstreamer-audio-uninstalled.pc.in \
+	$(srcdir)/gstreamer-app.pc.in \
+	$(srcdir)/gstreamer-app-uninstalled.pc.in \
 	$(srcdir)/gstreamer-fft.pc.in \
-	$(srcdir)/gstreamer-pbutils-uninstalled.pc.in \
+	$(srcdir)/gstreamer-fft-uninstalled.pc.in \
 	$(srcdir)/gstreamer-pbutils.pc.in \
-	$(srcdir)/gstreamer-plugins-base-uninstalled.pc.in \
-	$(srcdir)/gstreamer-plugins-base.pc.in \
-	$(srcdir)/gstreamer-riff-uninstalled.pc.in \
+	$(srcdir)/gstreamer-pbutils-uninstalled.pc.in \
 	$(srcdir)/gstreamer-riff.pc.in \
-	$(srcdir)/gstreamer-rtp-uninstalled.pc.in \
+	$(srcdir)/gstreamer-riff-uninstalled.pc.in \
 	$(srcdir)/gstreamer-rtp.pc.in \
-	$(srcdir)/gstreamer-rtsp-uninstalled.pc.in \
+	$(srcdir)/gstreamer-rtp-uninstalled.pc.in \
 	$(srcdir)/gstreamer-rtsp.pc.in \
-	$(srcdir)/gstreamer-sdp-uninstalled.pc.in \
+	$(srcdir)/gstreamer-rtsp-uninstalled.pc.in \
 	$(srcdir)/gstreamer-sdp.pc.in \
-	$(srcdir)/gstreamer-tag-uninstalled.pc.in \
+	$(srcdir)/gstreamer-sdp-uninstalled.pc.in \
 	$(srcdir)/gstreamer-tag.pc.in \
+	$(srcdir)/gstreamer-tag-uninstalled.pc.in \
+	$(srcdir)/gstreamer-video.pc.in \
 	$(srcdir)/gstreamer-video-uninstalled.pc.in \
-	$(srcdir)/gstreamer-video.pc.in
+	$(srcdir)/gstreamer-plugins-base.pc.in \
+	$(srcdir)/gstreamer-plugins-base-uninstalled.pc.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -118,8 +146,10 @@
 	$(ACLOCAL_M4)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = gstreamer-audio.pc gstreamer-audio-uninstalled.pc \
-	gstreamer-app.pc gstreamer-app-uninstalled.pc gstreamer-fft.pc \
+CONFIG_CLEAN_FILES = gstreamer-allocators.pc \
+	gstreamer-allocators-uninstalled.pc gstreamer-audio.pc \
+	gstreamer-audio-uninstalled.pc gstreamer-app.pc \
+	gstreamer-app-uninstalled.pc gstreamer-fft.pc \
 	gstreamer-fft-uninstalled.pc gstreamer-pbutils.pc \
 	gstreamer-pbutils-uninstalled.pc gstreamer-riff.pc \
 	gstreamer-riff-uninstalled.pc gstreamer-rtp.pc \
@@ -130,12 +160,18 @@
 	gstreamer-video-uninstalled.pc gstreamer-plugins-base.pc \
 	gstreamer-plugins-base-uninstalled.pc
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -172,6 +208,7 @@
   }
 am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -466,6 +503,7 @@
 
 ### all of the standard pc files we need to generate
 pcverfiles = \
+	gstreamer-allocators-@GST_API_VERSION@.pc \
 	gstreamer-audio-@GST_API_VERSION@.pc \
 	gstreamer-app-@GST_API_VERSION@.pc \
 	gstreamer-fft-@GST_API_VERSION@.pc \
@@ -479,6 +517,7 @@
 	gstreamer-plugins-base-@GST_API_VERSION@.pc
 
 pcverfiles_uninstalled = \
+	gstreamer-allocators-@GST_API_VERSION@-uninstalled.pc \
 	gstreamer-audio-@GST_API_VERSION@-uninstalled.pc \
 	gstreamer-app-@GST_API_VERSION@-uninstalled.pc \
 	gstreamer-fft-@GST_API_VERSION@-uninstalled.pc \
@@ -498,6 +537,7 @@
 pkgconfig_DATA = $(pcverfiles)
 CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled)
 pcinfiles = \
+		   gstreamer-allocators.pc.in gstreamer-allocators-uninstalled.pc.in \
            gstreamer-audio.pc.in gstreamer-audio-uninstalled.pc.in \
            gstreamer-app.pc.in gstreamer-app-uninstalled.pc.in \
            gstreamer-fft.pc.in gstreamer-fft-uninstalled.pc.in \
@@ -545,6 +585,10 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+gstreamer-allocators.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-allocators.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+gstreamer-allocators-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-allocators-uninstalled.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gstreamer-audio.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-audio.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gstreamer-audio-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-audio-uninstalled.pc.in
@@ -616,11 +660,11 @@
 	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -761,16 +805,17 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool distclean distclean-generic distclean-libtool \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkgconfigDATA install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am uninstall uninstall-am uninstall-pkgconfigDATA
+	clean-libtool cscopelist-am ctags-am distclean \
+	distclean-generic distclean-libtool distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pkgconfigDATA install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-pkgconfigDATA
 
 
 all-local: $(pcverfiles) $(pcverfiles_uninstalled)
diff --git a/pkgconfig/gstreamer-allocators-uninstalled.pc.in b/pkgconfig/gstreamer-allocators-uninstalled.pc.in
new file mode 100644
index 0000000..9736c10
--- /dev/null
+++ b/pkgconfig/gstreamer-allocators-uninstalled.pc.in
@@ -0,0 +1,16 @@
+# the standard variables don't make sense for an uninstalled copy
+prefix=
+exec_prefix=
+libdir=
+# includedir is builddir because it is used to find gstconfig.h in places
+includedir=@abs_top_builddir@/gst-libs
+girdir=@abs_top_builddir@/gst-libs/gst/allocators
+typelibdir=@abs_top_builddir@/gst-libs/gst/allocators
+
+Name: GStreamer Allocators Library, Uninstalled
+Description: Allocators implementation, uninstalled
+Version: @VERSION@
+Requires: gstreamer-@GST_API_VERSION@
+Libs: @abs_top_builddir@/gst-libs/gst/allocators/libgstallocators-@GST_API_VERSION@.la
+Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
+
diff --git a/pkgconfig/gstreamer-allocators.pc.in b/pkgconfig/gstreamer-allocators.pc.in
new file mode 100644
index 0000000..f109158
--- /dev/null
+++ b/pkgconfig/gstreamer-allocators.pc.in
@@ -0,0 +1,16 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@/gstreamer-@GST_API_VERSION@
+datarootdir=${prefix}/share
+datadir=${datarootdir}
+girdir=${datadir}/gir-1.0
+typelibdir=${libdir}/girepository-1.0
+
+Name: GStreamer Allocators Library
+Description: Allocators implementation
+Requires: gstreamer-@GST_API_VERSION@
+Version: @VERSION@
+Libs: -L${libdir} -lgstallocators-@GST_API_VERSION@
+Cflags: -I${includedir}
+
diff --git a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
index b696d8a..970c051 100644
--- a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
@@ -10,7 +10,7 @@
 Description: Streaming media framework, base plugins libraries, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: -L@abs_top_builddir@/gst-libs/gst/audio -L@abs_top_builddir@/gst-libs/gst/fft -L@abs_top_builddir@/gst-libs/gst/riff -L@abs_top_builddir@/gst-libs/gst/rtp -L@abs_top_builddir@/gst-libs/gst/rtsp -L@abs_top_builddir@/gst-libs/gst/sdp -L@abs_top_builddir@/gst-libs/gst/tag -L@abs_top_builddir@/gst-libs/gst/pbutils -L@abs_top_builddir@/gst-libs/gst/video -L@abs_top_builddir@/gst-libs/gst/app
+Libs: -L@abs_top_builddir@/gst-libs/gst/allocators -L@abs_top_builddir@/gst-libs/gst/app -L@abs_top_builddir@/gst-libs/gst/audio -L@abs_top_builddir@/gst-libs/gst/fft -L@abs_top_builddir@/gst-libs/gst/pbutils -L@abs_top_builddir@/gst-libs/gst/riff -L@abs_top_builddir@/gst-libs/gst/rtp -L@abs_top_builddir@/gst-libs/gst/rtsp -L@abs_top_builddir@/gst-libs/gst/sdp -L@abs_top_builddir@/gst-libs/gst/tag -L@abs_top_builddir@/gst-libs/gst/video
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
-libraries=app audio fft riff rtp rtsp sdp tag pbutils video
+libraries=allocators app audio fft pbutils riff rtp rtsp sdp tag video
diff --git a/pkgconfig/gstreamer-plugins-base.pc.in b/pkgconfig/gstreamer-plugins-base.pc.in
index 6ecf095..e817746 100644
--- a/pkgconfig/gstreamer-plugins-base.pc.in
+++ b/pkgconfig/gstreamer-plugins-base.pc.in
@@ -11,4 +11,4 @@
 Libs: -L${libdir}
 Cflags: -I${includedir}
 
-libraries=audio fft riff rtp tag pbutils video
+libraries=allocators app audio fft pbutils riff rtp rtsp sdp tag video
diff --git a/po/LINGUAS b/po/LINGUAS
index 2c2d95d..2f56e09 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-af az bg ca cs da de el en_GB eo es eu fi fr gl hr hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN
+af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 3e9e6a8..e96b7c3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,15 +2,18 @@
 ext/alsa/gstalsasrc.c
 ext/cdparanoia/gstcdparanoiasrc.c
 ext/ogg/gstoggdemux.c
+gst/encoding/gstencodebin.c
 gst/playback/gstdecodebin2.c
+gst/playback/gstplaybin2.c
 gst/playback/gstplaysink.c
+gst/playback/gstplaysinkconvertbin.c
 gst/playback/gstsubtitleoverlay.c
 gst/playback/gsturidecodebin.c
 gst/tcp/gsttcpclientsink.c
 gst/tcp/gsttcpclientsrc.c
-gst-libs/gst/audio/gstaudiocdsrc.c
 gst-libs/gst/audio/gstaudiobasesrc.c
-gst-libs/gst/tag/gsttagdemux.c
-gst-libs/gst/tag/tags.c
+gst-libs/gst/audio/gstaudiocdsrc.c
 gst-libs/gst/pbutils/descriptions.c
 gst-libs/gst/pbutils/missing-plugins.c
+gst-libs/gst/tag/gsttagdemux.c
+gst-libs/gst/tag/tags.c
diff --git a/po/af.gmo b/po/af.gmo
index 8068db8..472c562 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 57ae5b5..a9578f0 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -80,6 +80,10 @@
 msgstr ""
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 
@@ -90,9 +94,9 @@
 msgid "This appears to be a text file"
 msgstr ""
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Kon nie skryf na lêer \"%s\" nie."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -164,10 +168,167 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Fout tydens toemaak van lêer \"%s\"."
 
+msgid "Can't record audio fast enough"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
-msgid "Can't record audio fast enough"
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr ""
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Subtitle"
+msgstr ""
+
+msgid "MPL2 subtitle format"
+msgstr ""
+
+msgid "DKS subtitle format"
+msgstr ""
+
+msgid "QTtext subtitle format"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed video"
+msgstr ""
+
+msgid "Uncompressed gray"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+msgid "Uncompressed audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr ""
+
+msgid "DVD source"
+msgstr ""
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr ""
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr ""
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
 msgstr ""
 
 msgid "Failed to read tag: not enough data"
@@ -330,163 +491,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr ""
-
-msgid "APE tag"
-msgstr ""
-
-msgid "ICY internet radio"
-msgstr ""
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-msgid "Windows Media Speech"
-msgstr ""
-
-msgid "CYUV Lossless"
-msgstr ""
-
-msgid "FFMpeg v1"
-msgstr ""
-
-msgid "Lossless MSZH"
-msgstr ""
-
-msgid "Run-length encoding"
-msgstr ""
-
-msgid "Subtitle"
-msgstr ""
-
-msgid "MPL2 subtitle format"
-msgstr ""
-
-msgid "DKS subtitle format"
-msgstr ""
-
-msgid "QTtext subtitle format"
-msgstr ""
-
-msgid "Sami subtitle format"
-msgstr ""
-
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-msgid "Kate subtitle format"
-msgstr ""
-
-msgid "Uncompressed video"
-msgstr ""
-
-msgid "Uncompressed gray"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr ""
-
-msgid "Uncompressed audio"
-msgstr ""
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-msgid "Audio CD source"
-msgstr ""
-
-msgid "DVD source"
-msgstr ""
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-msgid "Unknown source element"
-msgstr ""
-
-msgid "Unknown sink element"
-msgstr ""
-
-msgid "Unknown element"
-msgstr ""
-
-msgid "Unknown decoder element"
-msgstr ""
-
-msgid "Unknown encoder element"
-msgstr ""
-
-msgid "Plugin or element of unknown type"
-msgstr ""
-
 #~ msgid "Bass"
 #~ msgstr "Bas"
 
@@ -545,10 +549,6 @@
 #~ msgstr "Kon nie toestel \"%s\" oopmaak vir lees en skryf nie."
 
 #, fuzzy
-#~ msgid "Could not create \"typefind\" element."
-#~ msgstr "Kon nie skryf na lêer \"%s\" nie."
-
-#, fuzzy
 #~ msgid "No Temp directory specified."
 #~ msgstr "Geen toestel gespesifiseer"
 
diff --git a/po/az.gmo b/po/az.gmo
index 2b04ca8..cac7e56 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 3590259..9c41a7e 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -81,6 +81,10 @@
 msgstr ""
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 
@@ -91,9 +95,9 @@
 msgid "This appears to be a text file"
 msgstr ""
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "\"%s\" faylına yazıla bilmədi."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -165,10 +169,167 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "\"%s\" faylı bağlana bilmədi."
 
+msgid "Can't record audio fast enough"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
-msgid "Can't record audio fast enough"
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr ""
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Subtitle"
+msgstr ""
+
+msgid "MPL2 subtitle format"
+msgstr ""
+
+msgid "DKS subtitle format"
+msgstr ""
+
+msgid "QTtext subtitle format"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed video"
+msgstr ""
+
+msgid "Uncompressed gray"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+msgid "Uncompressed audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr ""
+
+msgid "DVD source"
+msgstr ""
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr ""
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr ""
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
 msgstr ""
 
 msgid "Failed to read tag: not enough data"
@@ -331,163 +492,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr ""
-
-msgid "APE tag"
-msgstr ""
-
-msgid "ICY internet radio"
-msgstr ""
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-msgid "Windows Media Speech"
-msgstr ""
-
-msgid "CYUV Lossless"
-msgstr ""
-
-msgid "FFMpeg v1"
-msgstr ""
-
-msgid "Lossless MSZH"
-msgstr ""
-
-msgid "Run-length encoding"
-msgstr ""
-
-msgid "Subtitle"
-msgstr ""
-
-msgid "MPL2 subtitle format"
-msgstr ""
-
-msgid "DKS subtitle format"
-msgstr ""
-
-msgid "QTtext subtitle format"
-msgstr ""
-
-msgid "Sami subtitle format"
-msgstr ""
-
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-msgid "Kate subtitle format"
-msgstr ""
-
-msgid "Uncompressed video"
-msgstr ""
-
-msgid "Uncompressed gray"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr ""
-
-msgid "Uncompressed audio"
-msgstr ""
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-msgid "Audio CD source"
-msgstr ""
-
-msgid "DVD source"
-msgstr ""
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-msgid "Unknown source element"
-msgstr ""
-
-msgid "Unknown sink element"
-msgstr ""
-
-msgid "Unknown element"
-msgstr ""
-
-msgid "Unknown decoder element"
-msgstr ""
-
-msgid "Unknown encoder element"
-msgstr ""
-
-msgid "Plugin or element of unknown type"
-msgstr ""
-
 #~ msgid "Bass"
 #~ msgstr "Bas"
 
@@ -546,10 +550,6 @@
 #~ msgstr "\"%s\" avadanlığı oxuma və yazma üçün açıla bilmədi."
 
 #, fuzzy
-#~ msgid "Could not create \"typefind\" element."
-#~ msgstr "\"%s\" faylına yazıla bilmədi."
-
-#, fuzzy
 #~ msgid "No Temp directory specified."
 #~ msgstr "Avadanlıq bildirilməyib."
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 76a96b0..46293e1 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index c3eabc2..70dbf3a 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-04-26 22:31+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -77,6 +77,10 @@
 msgstr "Вътрешна грешка на потока от данни."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Елементът „%s“ липсва — проверете инсталацията на GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "За да пуснете този поток, се нуждаете от приставка за %s. Такава не е "
@@ -88,9 +92,9 @@
 msgid "This appears to be a text file"
 msgstr "Това изглежда е текстов файл"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Елементът „%s“ липсва — проверете инсталацията на GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Не може да се създаде елемент „decodebin“."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,171 +166,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Грешка при запис във файла „%s:%d“."
 
-msgid "This CD has no audio tracks"
-msgstr "В това CD липсва аудио"
-
 msgid "Can't record audio fast enough"
 msgstr "Звукът не може да бъде записан достатъчно бързо"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Неуспешно прочитано на етикет: липсват достатъчно данни"
-
-msgid "track ID"
-msgstr "идентификатор на песен"
-
-msgid "MusicBrainz track ID"
-msgstr "идентификатор на песен според MusicBrainz"
-
-msgid "artist ID"
-msgstr "идентификатор на изпълнител"
-
-msgid "MusicBrainz artist ID"
-msgstr "идентификатор на изпълнител според MusicBrainz"
-
-msgid "album ID"
-msgstr "идентификатор на албум"
-
-msgid "MusicBrainz album ID"
-msgstr "идентификатор на албум според MusicBrainz"
-
-msgid "album artist ID"
-msgstr "идентификатор на изпълнител в албума"
-
-msgid "MusicBrainz album artist ID"
-msgstr "идентификатор на изпълнител в албума според MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "индустриален идентификатор на песен (TRM)"
-
-msgid "MusicBrainz TRM ID"
-msgstr "индустриален идентификатор на песен според MusicBrainz (TRM)"
-
-msgid "capturing shutter speed"
-msgstr "скорост на затвора"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Скорост на затвора при заснемане в секунди"
-
-msgid "capturing focal ratio"
-msgstr "относителна бленда"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Относителна бленда при заснемане"
-
-msgid "capturing focal length"
-msgstr "фокусно разстояние"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Фокусно разстояние на обектива при заснемане в милиметри"
-
-msgid "capturing digital zoom ratio"
-msgstr "цифрово увеличение"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Цифрово увеличение при заснемане"
-
-msgid "capturing iso speed"
-msgstr "светлочувствителност по ISO"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Светлочувствителност по ISO при заснемане"
-
-msgid "capturing exposure program"
-msgstr "програма на експозиция"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Програма на експозиция при заснемане"
-
-msgid "capturing exposure mode"
-msgstr "режим на експозиция"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Режим на експозиция при заснемане"
-
-msgid "capturing exposure compensation"
-msgstr "компенсация на експозицията"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Компенсацията на експозицията при заснемане"
-
-msgid "capturing scene capture type"
-msgstr "вид сцена"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Вид сцена при заснемане"
-
-msgid "capturing gain adjustment"
-msgstr "корекция с усилване"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Общата корекция с усилване при заснемане "
-
-msgid "capturing white balance"
-msgstr "баланс на бялото"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Режим на баланс на бялото при заснемане"
-
-msgid "capturing contrast"
-msgstr "контраст"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Посоката на обработката за контраст при заснемане"
-
-msgid "capturing saturation"
-msgstr "наситеност"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Посоката на обработката за наситеност при заснемане"
-
-msgid "capturing sharpness"
-msgstr "острота"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Посоката на обработката за острота при заснемане"
-
-msgid "capturing flash fired"
-msgstr "светкавица"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Дали е ползвана светкавица при заснемане"
-
-msgid "capturing flash mode"
-msgstr "режим на светкавица"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Режимът на светкавица при заснемане"
-
-msgid "capturing metering mode"
-msgstr "режим на заснемане"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Режим на заснемане при определянето на експозиция"
-
-msgid "capturing source"
-msgstr "източник"
-
-msgid "The source or type of device used for the capture"
-msgstr "Видът на устройството-източник при заснемане"
-
-msgid "image horizontal ppi"
-msgstr "точки на инч по хоризонтал"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Целевата разделителна способност на медията по хоризонтал"
-
-msgid "image vertical ppi"
-msgstr "точки на инч по вертикал"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Целевата разделителна способност на медията по вертикал"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "В това CD липсва аудио"
 
 msgid "ID3 tag"
 msgstr "Етикет ID3"
@@ -491,6 +335,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Приставка или елемент от непознат вид"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Неуспешно прочитано на етикет: липсват достатъчно данни"
+
+msgid "track ID"
+msgstr "идентификатор на песен"
+
+msgid "MusicBrainz track ID"
+msgstr "идентификатор на песен според MusicBrainz"
+
+msgid "artist ID"
+msgstr "идентификатор на изпълнител"
+
+msgid "MusicBrainz artist ID"
+msgstr "идентификатор на изпълнител според MusicBrainz"
+
+msgid "album ID"
+msgstr "идентификатор на албум"
+
+msgid "MusicBrainz album ID"
+msgstr "идентификатор на албум според MusicBrainz"
+
+msgid "album artist ID"
+msgstr "идентификатор на изпълнител в албума"
+
+msgid "MusicBrainz album artist ID"
+msgstr "идентификатор на изпълнител в албума според MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "индустриален идентификатор на песен (TRM)"
+
+msgid "MusicBrainz TRM ID"
+msgstr "индустриален идентификатор на песен според MusicBrainz (TRM)"
+
+msgid "capturing shutter speed"
+msgstr "скорост на затвора"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Скорост на затвора при заснемане в секунди"
+
+msgid "capturing focal ratio"
+msgstr "относителна бленда"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Относителна бленда при заснемане"
+
+msgid "capturing focal length"
+msgstr "фокусно разстояние"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Фокусно разстояние на обектива при заснемане в милиметри"
+
+msgid "capturing digital zoom ratio"
+msgstr "цифрово увеличение"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Цифрово увеличение при заснемане"
+
+msgid "capturing iso speed"
+msgstr "светлочувствителност по ISO"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Светлочувствителност по ISO при заснемане"
+
+msgid "capturing exposure program"
+msgstr "програма на експозиция"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Програма на експозиция при заснемане"
+
+msgid "capturing exposure mode"
+msgstr "режим на експозиция"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Режим на експозиция при заснемане"
+
+msgid "capturing exposure compensation"
+msgstr "компенсация на експозицията"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "Компенсацията на експозицията при заснемане"
+
+msgid "capturing scene capture type"
+msgstr "вид сцена"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Вид сцена при заснемане"
+
+msgid "capturing gain adjustment"
+msgstr "корекция с усилване"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Общата корекция с усилване при заснемане "
+
+msgid "capturing white balance"
+msgstr "баланс на бялото"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Режим на баланс на бялото при заснемане"
+
+msgid "capturing contrast"
+msgstr "контраст"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Посоката на обработката за контраст при заснемане"
+
+msgid "capturing saturation"
+msgstr "наситеност"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Посоката на обработката за наситеност при заснемане"
+
+msgid "capturing sharpness"
+msgstr "острота"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Посоката на обработката за острота при заснемане"
+
+msgid "capturing flash fired"
+msgstr "светкавица"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Дали е ползвана светкавица при заснемане"
+
+msgid "capturing flash mode"
+msgstr "режим на светкавица"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Режимът на светкавица при заснемане"
+
+msgid "capturing metering mode"
+msgstr "режим на заснемане"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Режим на заснемане при определянето на експозиция"
+
+msgid "capturing source"
+msgstr "източник"
+
+msgid "The source or type of device used for the capture"
+msgstr "Видът на устройството-източник при заснемане"
+
+msgid "image horizontal ppi"
+msgstr "точки на инч по хоризонтал"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "Целевата разделителна способност на медията по хоризонтал"
+
+msgid "image vertical ppi"
+msgstr "точки на инч по вертикал"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Целевата разделителна способност на медията по вертикал"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Главен"
 
@@ -586,9 +590,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Потоци с RTSP все още не се поддържат."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Не може да се създаде елемент „decodebin“."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/ca.gmo b/po/ca.gmo
index 1e0a55f..c81b3c2 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 4ba37ac..7f9f7f2 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -82,6 +82,10 @@
 msgstr "S'ha produït un error intern de flux de dades."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Manca l'element «%s» - comproveu la vostra instaŀlació del GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Es requereix un connector %s per a reproduir aquest flux, però no és "
@@ -93,9 +97,9 @@
 msgid "This appears to be a text file"
 msgstr "Això sembla ser un fitxer de text"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Manca l'element «%s» - comproveu la vostra instaŀlació del GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "No s'ha pogut crear l'element «decodebin»."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -167,11 +171,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "S'ha produït un error en enviar dades a «%s:%d»."
 
+msgid "Can't record audio fast enough"
+msgstr "No es pot enregistrar l'àudio el suficientment ràpid"
+
 msgid "This CD has no audio tracks"
 msgstr "Aquest CD no té pistes d'àudio"
 
-msgid "Can't record audio fast enough"
-msgstr "No es pot enregistrar l'àudio el suficientment ràpid"
+msgid "ID3 tag"
+msgstr "Etiqueta ID3"
+
+msgid "APE tag"
+msgstr "Etiqueta APE"
+
+msgid "ICY internet radio"
+msgstr "Emissora de ràdio per Internet ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Àudio sense pèrdues d'Apple (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Còdec d'àudio sense pèrdues lliure (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Àudio sense pèrdues real (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Parla de Windows Media"
+
+msgid "CYUV Lossless"
+msgstr "CYUV sense pèrdues"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH sense pèrdues"
+
+msgid "Run-length encoding"
+msgstr "Codificació Run-length"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Format de subtítols TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Format de subtítols Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Format de subtítols Kate"
+
+msgid "Sami subtitle format"
+msgstr "Format de subtítols Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Format de subtítols TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Format de subtítols Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV sense comprimir"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Imatge en escala de grisos sense comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "YUV sense comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Paletitzat %d-bit %s sense comprimir"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versió %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV sense comprimir"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Àudio PCM en cru de %d-bit"
+
+msgid "Audio CD source"
+msgstr "Font de CD d'àudio"
+
+msgid "DVD source"
+msgstr "Font de DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Font del protocol de transmissió en temps real (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Font del protocol de servidor Microsoft Media (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Font del protocol %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "Descarregador de vídeo RTP %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "Descarregador d'àudio RTP %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "Descarregador RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Desmultiplexor %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Descodificador %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "Carregador de vídeo RTP %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "Carregador d'àudio RTP %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "Carregador RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Multiplexor %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Codificador %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Element del GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "L'element de font és desconegut"
+
+msgid "Unknown sink element"
+msgstr "L'element de sortida és desconegut"
+
+msgid "Unknown element"
+msgstr "L'element és desconegut"
+
+msgid "Unknown decoder element"
+msgstr "L'element descodificador és desconegut"
+
+msgid "Unknown encoder element"
+msgstr "L'element codificador és desconegut"
+
+msgid "Plugin or element of unknown type"
+msgstr "El connector o element és de tipus desconegut"
 
 msgid "Failed to read tag: not enough data"
 msgstr "No s'ha pogut llegir l'etiqueta: no hi ha dades suficients"
@@ -340,169 +507,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Etiqueta ID3"
-
-msgid "APE tag"
-msgstr "Etiqueta APE"
-
-msgid "ICY internet radio"
-msgstr "Emissora de ràdio per Internet ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Àudio sense pèrdues d'Apple (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Còdec d'àudio sense pèrdues lliure (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Àudio sense pèrdues real (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Parla de Windows Media"
-
-msgid "CYUV Lossless"
-msgstr "CYUV sense pèrdues"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH sense pèrdues"
-
-msgid "Run-length encoding"
-msgstr "Codificació Run-length"
-
-msgid "Subtitle"
-msgstr ""
-
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Format de subtítols TMPlayer"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Format de subtítols Sami"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Format de subtítols Kate"
-
-msgid "Sami subtitle format"
-msgstr "Format de subtítols Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Format de subtítols TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Format de subtítols Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "YUV sense comprimir"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Imatge en escala de grisos sense comprimir"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV sense comprimir"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Paletitzat %d-bit %s sense comprimir"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versió %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "YUV sense comprimir"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Àudio PCM en cru de %d-bit"
-
-msgid "Audio CD source"
-msgstr "Font de CD d'àudio"
-
-msgid "DVD source"
-msgstr "Font de DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Font del protocol de transmissió en temps real (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Font del protocol de servidor Microsoft Media (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Font del protocol %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "Descarregador de vídeo RTP %s"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "Descarregador d'àudio RTP %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "Descarregador RTP %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Desmultiplexor %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Descodificador %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "Carregador de vídeo RTP %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "Carregador d'àudio RTP %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "Carregador RTP %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "Multiplexor %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "Codificador %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Element del GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "L'element de font és desconegut"
-
-msgid "Unknown sink element"
-msgstr "L'element de sortida és desconegut"
-
-msgid "Unknown element"
-msgstr "L'element és desconegut"
-
-msgid "Unknown decoder element"
-msgstr "L'element descodificador és desconegut"
-
-msgid "Unknown encoder element"
-msgstr "L'element codificador és desconegut"
-
-msgid "Plugin or element of unknown type"
-msgstr "El connector o element és de tipus desconegut"
-
 #~ msgid "Master"
 #~ msgstr "Mestre"
 
@@ -554,9 +558,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Encara no es poden reproduir els fluxes RTSP."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "No s'ha pogut crear l'element «decodebin»."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/cs.gmo b/po/cs.gmo
index 6987892..f4ce22a 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 9ae1e68..925af52 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-05-29 16:49+0200\n"
 "Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -78,6 +78,10 @@
 msgstr "Vnitřní chyba datového proudu."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Schází prvek \"%s\" - zkontrolujte prosím instalaci systému GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Zásuvný modul %s je vyžadován k přehrání tohoto proudu, ale není "
@@ -89,9 +93,9 @@
 msgid "This appears to be a text file"
 msgstr "Zdá se, že se jedná o textový soubor"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Schází prvek \"%s\" - zkontrolujte prosím instalaci systému GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nezdařilo se vytvoření prvku \"decodebin\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -163,174 +167,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Chyba při odesílání dat na \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Toto CD nemá žádné zvukové stopy"
-
 msgid "Can't record audio fast enough"
 msgstr "Zvuk nelze zaznamenat s dostatečnou rychlostí"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Nezdařilo se přečtení značky: nedostatek dat"
-
-msgid "track ID"
-msgstr "ID stopy"
-
-msgid "MusicBrainz track ID"
-msgstr "ID stopy MusicBrainz"
-
-msgid "artist ID"
-msgstr "ID umělce"
-
-msgid "MusicBrainz artist ID"
-msgstr "ID umělce MusicBrainz"
-
-msgid "album ID"
-msgstr "ID alba"
-
-msgid "MusicBrainz album ID"
-msgstr "ID alba MusicBrainz"
-
-msgid "album artist ID"
-msgstr "ID umělce alba"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ID umělce alba MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "ID stopy TRM"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ID stopy TRM MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr "rychlost závěrky záznamu"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Rychlost závěrky při záznamu obrazu, v sekundách"
-
-msgid "capturing focal ratio"
-msgstr "ohnisková vzdálenost záznamu"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Clonové číslo při záznamu obrazu"
-
-msgid "capturing focal length"
-msgstr "ohnisková vzdálenost záznamu"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Ohnisková vzdálenost čoček při záznamu obrazu, v mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "stupeň digitálního přiblížení záznamu"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Stupeň digitálního přiblížení při záznamu obrazu"
-
-msgid "capturing iso speed"
-msgstr "rychlost ISO záznamu"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Rychlost ISO při záznamu obrazu"
-
-msgid "capturing exposure program"
-msgstr "program expozice záznamu"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Program expozice při záznamu obrazu"
-
-msgid "capturing exposure mode"
-msgstr "režim expozice záznamu"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Režim expozice při záznamu obrazu"
-
-msgid "capturing exposure compensation"
-msgstr "kompenzace expozice záznamu"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Kompenzace expozice při záznamu obrazu"
-
-msgid "capturing scene capture type"
-msgstr "typ zachycení scény záznamu"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Typ zachycení scény při záznamu obrazu"
-
-msgid "capturing gain adjustment"
-msgstr "úprava zesílení záznamu"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Úprava zesílení při záznamu obrazu"
-
-msgid "capturing white balance"
-msgstr "vyvážení bílé záznamu"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Režim vyvážení bílé nastavený při záznamu obrazu"
-
-msgid "capturing contrast"
-msgstr "kontrast záznamu"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Použité zpracování kontrastu při záznamu obrazu"
-
-msgid "capturing saturation"
-msgstr "sytost záznamu"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Použité zpracování sytosti při záznamu obrazu"
-
-msgid "capturing sharpness"
-msgstr "ostrost záznamu"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Použité zpracování ostrosti při záznamu obrazu"
-
-msgid "capturing flash fired"
-msgstr "použití blesku při záznamu"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Zda byl při záznamu obrazu použit blesk"
-
-msgid "capturing flash mode"
-msgstr "režim blesku při záznamu"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Režim blesku vybraný při záznamu obrazu"
-
-msgid "capturing metering mode"
-msgstr "režim měření při záznamu"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Režim měření expozice při záznamu obrazu"
-
-msgid "capturing source"
-msgstr "zdroj záznamu"
-
-msgid "The source or type of device used for the capture"
-msgstr "Zdroj nebo typ zařízení použitého při záznamu"
-
-msgid "image horizontal ppi"
-msgstr "pixelů na palec vodorovně v obrazu"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-"Zamýšlená hustota pixelů multimédia (image/video) vodorovně v pixelech na "
-"palec"
-
-msgid "image vertical ppi"
-msgstr "pixelů na palec svisle v obrazu"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-"Zamýšlená hustota pixelů multimédia (image/video) svisle v pixelech na palec"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Toto CD nemá žádné zvukové stopy"
 
 msgid "ID3 tag"
 msgstr "Značka ID3"
@@ -495,6 +336,169 @@
 msgid "Plugin or element of unknown type"
 msgstr "Zásuvný modul nebo prvek neznámého typu"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Nezdařilo se přečtení značky: nedostatek dat"
+
+msgid "track ID"
+msgstr "ID stopy"
+
+msgid "MusicBrainz track ID"
+msgstr "ID stopy MusicBrainz"
+
+msgid "artist ID"
+msgstr "ID umělce"
+
+msgid "MusicBrainz artist ID"
+msgstr "ID umělce MusicBrainz"
+
+msgid "album ID"
+msgstr "ID alba"
+
+msgid "MusicBrainz album ID"
+msgstr "ID alba MusicBrainz"
+
+msgid "album artist ID"
+msgstr "ID umělce alba"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ID umělce alba MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "ID stopy TRM"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ID stopy TRM MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr "rychlost závěrky záznamu"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Rychlost závěrky při záznamu obrazu, v sekundách"
+
+msgid "capturing focal ratio"
+msgstr "ohnisková vzdálenost záznamu"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Clonové číslo při záznamu obrazu"
+
+msgid "capturing focal length"
+msgstr "ohnisková vzdálenost záznamu"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Ohnisková vzdálenost čoček při záznamu obrazu, v mm"
+
+msgid "capturing digital zoom ratio"
+msgstr "stupeň digitálního přiblížení záznamu"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Stupeň digitálního přiblížení při záznamu obrazu"
+
+msgid "capturing iso speed"
+msgstr "rychlost ISO záznamu"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Rychlost ISO při záznamu obrazu"
+
+msgid "capturing exposure program"
+msgstr "program expozice záznamu"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Program expozice při záznamu obrazu"
+
+msgid "capturing exposure mode"
+msgstr "režim expozice záznamu"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Režim expozice při záznamu obrazu"
+
+msgid "capturing exposure compensation"
+msgstr "kompenzace expozice záznamu"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "Kompenzace expozice při záznamu obrazu"
+
+msgid "capturing scene capture type"
+msgstr "typ zachycení scény záznamu"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Typ zachycení scény při záznamu obrazu"
+
+msgid "capturing gain adjustment"
+msgstr "úprava zesílení záznamu"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Úprava zesílení při záznamu obrazu"
+
+msgid "capturing white balance"
+msgstr "vyvážení bílé záznamu"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Režim vyvážení bílé nastavený při záznamu obrazu"
+
+msgid "capturing contrast"
+msgstr "kontrast záznamu"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Použité zpracování kontrastu při záznamu obrazu"
+
+msgid "capturing saturation"
+msgstr "sytost záznamu"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Použité zpracování sytosti při záznamu obrazu"
+
+msgid "capturing sharpness"
+msgstr "ostrost záznamu"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Použité zpracování ostrosti při záznamu obrazu"
+
+msgid "capturing flash fired"
+msgstr "použití blesku při záznamu"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Zda byl při záznamu obrazu použit blesk"
+
+msgid "capturing flash mode"
+msgstr "režim blesku při záznamu"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Režim blesku vybraný při záznamu obrazu"
+
+msgid "capturing metering mode"
+msgstr "režim měření při záznamu"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Režim měření expozice při záznamu obrazu"
+
+msgid "capturing source"
+msgstr "zdroj záznamu"
+
+msgid "The source or type of device used for the capture"
+msgstr "Zdroj nebo typ zařízení použitého při záznamu"
+
+msgid "image horizontal ppi"
+msgstr "pixelů na palec vodorovně v obrazu"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+"Zamýšlená hustota pixelů multimédia (image/video) vodorovně v pixelech na "
+"palec"
+
+msgid "image vertical ppi"
+msgstr "pixelů na palec svisle v obrazu"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+"Zamýšlená hustota pixelů multimédia (image/video) svisle v pixelech na palec"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Master"
 
@@ -549,9 +553,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Proudy RTSP zatím nemohou být přehrávány."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nezdařilo se vytvoření prvku \"decodebin\"."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/da.gmo b/po/da.gmo
index 2035831..275acbc 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index d276ed1..6168aba 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,9 +1,9 @@
 # Danish translation of gst-plugins-base.
-# Copyright (C) 2013 gst, Mogens Jaeger, Joe Hansen.
+# Copyright (C) 2011 gst, Mogens Jaeger, Joe Hansen.
 # This file is distributed under the same license as the gst-plugins-base package.
 #
 # Mogens Jaeger <mogens@jaeger.tf>, 2007.
-# Joe Hansen <joedalton2@yahoo.dk>, 2009, 2010, 2011, 2013.
+# Joe Hansen <joedalton2@yahoo.dk>, 2009, 2010, 2011.
 #
 # capture -> optage
 # gain -> forstærkning
@@ -31,10 +31,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2013-01-01 16:38+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-28 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -100,6 +100,10 @@
 msgstr "Intern datastrømsfejl."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "'%s' elementet mangler - check din GStreamer installation."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Et %s plugin er nødvendigt ved afspilning af denne sekvens, men ikke "
@@ -111,9 +115,9 @@
 msgid "This appears to be a text file"
 msgstr "Denne fremstår som en tekstfil"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "'%s' elementet mangler - check din GStreamer installation."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Kunne ikke danne et \"decodebin\" element."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -186,11 +190,177 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Der opstod en fejl under data-overførsel til \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Kan ikke optage lyd hurtigt nok"
+
 msgid "This CD has no audio tracks"
 msgstr "Denne cd har ingen lydspor"
 
-msgid "Can't record audio fast enough"
-msgstr "Kan ikke optage lyd hurtigt nok"
+msgid "ID3 tag"
+msgstr "ID3-mærke"
+
+msgid "APE tag"
+msgstr "APE-mærke"
+
+msgid "ICY internet radio"
+msgstr "ICY-internetradio"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Lossless"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Lossless MSZH"
+
+msgid "Run-length encoding"
+msgstr "Kørsels-længde indkodning"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "TMPlayer undertekstformat"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sami undertekstformat"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Undertekstformat Kate"
+
+msgid "Sami subtitle format"
+msgstr "Sami undertekstformat"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer undertekstformat"
+
+msgid "Kate subtitle format"
+msgstr "Undertekstformat Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Ukomprimeret YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Ukomprimeret gråtonebillede"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Ukomprimeret YUV"
+
+# Findes dette ord palettet på dansk ? evt. indekseret
+# Ukomprimeret palettet %d-bit %s
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Ukomprimeret indekseret %d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 version %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Ukomprimeret YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Ufiltreret %d-bit PCM audio"
+
+msgid "Audio CD source"
+msgstr "Audio cd kilde"
+
+msgid "DVD source"
+msgstr "DVD kilde"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Real Time Streaming Protocol (RTSP) kilde"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) protokol kilde"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokol kilde"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s video RTP-depayloader"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s lyd RTP-depayloader"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP-depayloader"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s demuxer"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s afkoder"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s video RTP-payloader"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s lyd RTP-payloader"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP-payloader"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s muxer"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s indkoder"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer element %s"
+
+msgid "Unknown source element"
+msgstr "Ukendt kildeelement"
+
+# sink ? (afløb, kanal)
+msgid "Unknown sink element"
+msgstr "Ukendt afløbselement"
+
+msgid "Unknown element"
+msgstr "Ukendt element"
+
+msgid "Unknown decoder element"
+msgstr "Ukendt afkodeelement"
+
+msgid "Unknown encoder element"
+msgstr "Ukendt indkodeelement"
+
+msgid "Plugin or element of unknown type"
+msgstr "Plugin eller element af ukendt type"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Kunne ikke læse mærke: Ikke nok data"
@@ -321,7 +491,7 @@
 msgstr "optageskarphed"
 
 msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Skarphedindstilling brugt under optagelse af et billede"
+msgstr "skarphedindstilling brugt under optagelse af et billede"
 
 msgid "capturing flash fired"
 msgstr "optagerblitzen der blev brugt"
@@ -360,167 +530,149 @@
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Påtænkt lodret billedtæthed for medie (billede/video) i ppi"
 
-# frame kan da ikke være billede her?
 msgid "ID3v2 frame"
-msgstr "ID3v2-ramme"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "ufortolket id3v2-mærkeramme"
+msgstr ""
 
-msgid "ID3 tag"
-msgstr "ID3-mærke"
+#~ msgid "Master"
+#~ msgstr "Master"
 
-msgid "APE tag"
-msgstr "APE-mærke"
+#~ msgid "Bass"
+#~ msgstr "Bas"
 
-msgid "ICY internet radio"
-msgstr "ICY-internetradio"
+#~ msgid "Treble"
+#~ msgstr "Diskant"
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+#~ msgid "PCM"
+#~ msgstr "Pcm"
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+#~ msgid "Synth"
+#~ msgstr "Synthesizer"
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+#~ msgid "Line-in"
+#~ msgstr "Linie-ind"
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+#~ msgid "CD"
+#~ msgstr "Cd"
 
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
+#~ msgid "PC Speaker"
+#~ msgstr "Pc-højttaler"
 
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
+#~ msgid "Playback"
+#~ msgstr "Afspilning"
 
-msgid "Run-length encoding"
-msgstr "Kørsels-længde indkodning"
+#~ msgid "Capture"
+#~ msgstr "Optage"
 
-msgid "Subtitle"
-msgstr "Undertekst"
+#~ msgid "Connection to %s:%d refused."
+#~ msgstr "Opkobling til %s:%d afvist."
 
-msgid "MPL2 subtitle format"
-msgstr "MPL2-undertekstformat"
+#~ msgid "Uncompressed planar YUV 4:2:0"
+#~ msgstr "Ukomprimeret plan-YUV 4:2:0"
 
-msgid "DKS subtitle format"
-msgstr "DKS-undertekstformat"
+#~ msgid "Uncompressed planar YVU 4:2:0"
+#~ msgstr "Ukomprimeret plan-YVU 4:2:0"
 
-msgid "QTtext subtitle format"
-msgstr "QTtext-undertekstformat"
+#~ msgid "Uncompressed packed YUV 4:2:2"
+#~ msgstr "Ukomprimeret pakket YUV 4:2:2"
 
-msgid "Sami subtitle format"
-msgstr "Sami-undertekstformat"
+#~ msgid "Uncompressed packed YUV 4:1:0"
+#~ msgstr "Ukomprimeret pakket YUV 4:1:0"
 
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer-undertekstformat"
+#~ msgid "Uncompressed packed YVU 4:1:0"
+#~ msgstr "Ukomprimeret pakket YVU 4:1:0"
 
-msgid "Kate subtitle format"
-msgstr "Kate-undertekstformat"
+#~ msgid "Uncompressed packed YUV 4:1:1"
+#~ msgstr "Ukomprimeret pakket YUV 4:1:1"
 
-msgid "Uncompressed video"
-msgstr "Ukomprimeret video"
+#~ msgid "Uncompressed packed YUV 4:4:4"
+#~ msgstr "Ukomprimeret pakket YUV 4:4:4"
 
-msgid "Uncompressed gray"
-msgstr "Ukomprimeret gråtone"
+#~ msgid "Uncompressed planar YUV 4:2:2"
+#~ msgstr "Ukomprimeret plan-YUV 4:2:2"
 
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Ukomprimeret %s YUV %s"
+#~ msgid "Uncompressed planar YUV 4:1:1"
+#~ msgstr "Ukomprimeret plan-YUV 4:1:1"
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Ukomprimeret %s%d-bit %s"
+#~ msgid "Uncompressed black and white Y-plane"
+#~ msgstr "Ukomprimeret sort og hvid Y-plan"
 
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 version %d"
+#~ msgid "Raw PCM audio"
+#~ msgstr "Ufiltreret PCM audio"
 
-msgid "Uncompressed audio"
-msgstr "Ukomprimeret lyd"
+#~ msgid "Raw %d-bit floating-point audio"
+#~ msgstr "Ufiltreret %d-bit flydende-komma audio"
 
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Ufiltreret %d-bit %s-lyd"
+#~ msgid "Raw floating-point audio"
+#~ msgstr "Ufiltreret flydende-komma audio"
 
-msgid "Audio CD source"
-msgstr "Audio cd kilde"
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Kunne ikke åbne vfs-filen \"%s\" til skrivning: %s."
 
-msgid "DVD source"
-msgstr "DVD kilde"
+#~ msgid "No filename given"
+#~ msgstr "Intet filnavn angivet"
 
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Real Time Streaming Protocol (RTSP) kilde"
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Kunne ikke lukke vfs-filen \"%s\"."
 
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protokol kilde"
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Fejl ved skrivning til filen \"%s\"."
 
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokol kilde"
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Defekt undertekst URI \"%s\", undertekster deaktiveret."
 
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s video RTP-depayloader"
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "RTSP sekvenser kan endnu ikke afspilles."
 
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s lyd RTP-depayloader"
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Der blev kun fundet en undertekst-sekvens. Enten forsøger du at indlæse "
+#~ "en undertekst-fil eller en anden type tekstfil, eller media-filen blev "
+#~ "ikke genkendt."
 
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP-depayloader"
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Du har ingen dekoder installeret, der kan håndtere denne fil. Du er nødt "
+#~ "til at installere de nødvendige plugins."
 
-#, c-format
-msgid "%s demuxer"
-msgstr "%s demuxer"
+#~ msgid "This is not a media file"
+#~ msgstr "Dette er ikke en media-fil"
 
-#, c-format
-msgid "%s decoder"
-msgstr "%s afkoder"
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "En undertekst-sekvens blev fundet, men ingen video-sekvens."
 
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s video RTP-payloader"
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Både autovideosink og xvimagesink elementerne mangler."
 
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s lyd RTP-payloader"
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Både autoaudiosink og alsasink elementerne mangler."
 
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP-payloader"
+#~ msgid "No device specified."
+#~ msgstr "Ingen enhed angivet."
 
-#, c-format
-msgid "%s muxer"
-msgstr "%s muxer"
+#~ msgid "Device \"%s\" does not exist."
+#~ msgstr "Enheden \"%s\" eksisterer ikke."
 
-#, c-format
-msgid "%s encoder"
-msgstr "%s indkoder"
+#~ msgid "Device \"%s\" is already being used."
+#~ msgstr "Enheden \"%s\" er allerede i brug."
 
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer element %s"
+#~ msgid "Could not open device \"%s\" for reading and writing."
+#~ msgstr "Kunne ikke tilgå enheden \"%s\"."
 
-msgid "Unknown source element"
-msgstr "Ukendt kildeelement"
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr ""
+#~ "Der opstod en fejl under overførsel af gdp-overskriftsdata til \"%s:%d\"."
 
-# sink ? (afløb, kanal)
-msgid "Unknown sink element"
-msgstr "Ukendt afløbselement"
-
-msgid "Unknown element"
-msgstr "Ukendt element"
-
-msgid "Unknown decoder element"
-msgstr "Ukendt afkodeelement"
-
-msgid "Unknown encoder element"
-msgstr "Ukendt indkodeelement"
-
-msgid "Plugin or element of unknown type"
-msgstr "Plugin eller element af ukendt type"
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr ""
+#~ "Der opstod en fejl under overførsel af gdp-pakkeindhold til \"%s:%d\"."
diff --git a/po/de.gmo b/po/de.gmo
index 2d6d294..6037cee 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index bf50254..9b4116e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,17 +1,17 @@
-# German messages for gst-plugins-base 1.0.3
+# German messages for gst-plugins-base 0.10.32.2
 # Copyright © 2006 Karl Eichwalder
 # This file is distributed under the same license as the gst-plugins-base package.
 # Karl Eichwalder <ke@suse.de>, 2006.
 # Mario Blättermann <mariobl@gnome.org>, 2010.
-# Christian Kirbach <christian.kirbach@gmail.com>, 2009, 2010, 2011, 2012.
+# Christian Kirbach <christian.kirbach@googlemail.com>, 2009, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-11-28 19:39+0100\n"
-"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-28 00:04+0200\n"
+"Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
@@ -78,6 +78,11 @@
 msgstr "Interner Fehler im Datenstrom."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+"Das Element »%s« fehlt - überprüfen Sie Ihre Installation von GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Ein Plugin »%s« wird zum Abspielen dieses Datenstroms benötigt, ist aber "
@@ -89,10 +94,9 @@
 msgid "This appears to be a text file"
 msgstr "Dies scheint eine Textdatei zu sein"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
-"Das Element »%s« fehlt - überprüfen Sie Ihre Installation von GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Das Element »decodebin« konnte nicht erstellt werden."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -101,6 +105,7 @@
 msgid "The autovideosink element is missing."
 msgstr "Das Element »autovideosink« fehlt."
 
+# »Senke« hört sich echt scheußlich an.
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr "Das konfigurierte Videoziel »%s« funktioniert nicht."
@@ -165,11 +170,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Fehler beim Senden der Daten nach »%s:%d«."
 
+msgid "Can't record audio fast enough"
+msgstr "Der Ton kann nicht schnell genug aufgezeichnet werden"
+
 msgid "This CD has no audio tracks"
 msgstr "Auf dieser CD befinden sich keine Audio-Titel"
 
-msgid "Can't record audio fast enough"
-msgstr "Der Ton kann nicht schnell genug aufgezeichnet werden"
+msgid "ID3 tag"
+msgstr "ID3-Kennzeichnung"
+
+msgid "APE tag"
+msgstr "APE-Kennzeichnung"
+
+msgid "ICY internet radio"
+msgstr "ICY Internet-Radio"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV verlustlos"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "verlustloses MSZH"
+
+msgid "Run-length encoding"
+msgstr "RLE-Codierung"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Untertitel-Format TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Untertitel-Format Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Untertitel-Format Kate"
+
+msgid "Sami subtitle format"
+msgstr "Untertitel-Format Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Untertitel-Format TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Untertitel-Format Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Unkomprimiertes YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Unkomprimiertes Graubild"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Unkomprimiertes YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Unkomprimiertes palettiertes %d-Bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Version %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Unkomprimiertes YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Rohes %d-bit PCM-Audio"
+
+msgid "Audio CD source"
+msgstr "Musik-CD-Quelle"
+
+msgid "DVD source"
+msgstr "DVD-Quelle"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Real Time Streaming Protocol (RTSP)-Quelle"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS)-Protokollquelle"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s Protokollquelle"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s-Video RTP-Payload-Entnahme"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s-Audio RTP-Payload-Entnahme"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s-RTP-Payload-Entnahme"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s-Demuxer"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s-Decoder"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s-Video RTP-Payloader"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s-Audio RTP-Payloader"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s-RTP-Payloader"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s-Multiplexer"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s-Encoder"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer-Element %s"
+
+msgid "Unknown source element"
+msgstr "Unbekanntes Quellelement"
+
+msgid "Unknown sink element"
+msgstr "Unbekanntes Zielelement"
+
+msgid "Unknown element"
+msgstr "Unbekanntes Element"
+
+msgid "Unknown decoder element"
+msgstr "Unbekanntes Decoder-Element"
+
+msgid "Unknown encoder element"
+msgstr "Unbekanntes Encoder-Element"
+
+msgid "Plugin or element of unknown type"
+msgstr "Plugin oder Element unbekannten Typs"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Lesen der Kennzeichnung schlug fehl: Nicht genug Daten"
@@ -214,6 +382,7 @@
 msgid "capturing focal ratio"
 msgstr "Blendenwert"
 
+# F-Nummer kennt bei uns kein Mensch. Oder doch...?
 msgid "Focal ratio (f-number) used when capturing the image"
 msgstr "Der verwendete Blendenwert bei Bildaufnahme"
 
@@ -331,167 +500,10 @@
 msgstr "Vertikale Auflösung des Bildes oder Videos in ppi (Pixel pro Zoll)"
 
 msgid "ID3v2 frame"
-msgstr "ID3v2-Rahmen"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "unverarbeiteter ID3v2-Kennzeichnungsrahmen"
-
-msgid "ID3 tag"
-msgstr "ID3-Kennzeichnung"
-
-msgid "APE tag"
-msgstr "APE-Kennzeichnung"
-
-msgid "ICY internet radio"
-msgstr "ICY Internet-Radio"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV verlustlos"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "verlustloses MSZH"
-
-msgid "Run-length encoding"
-msgstr "RLE-Codierung"
-
-msgid "Subtitle"
-msgstr "Untertitel"
-
-msgid "MPL2 subtitle format"
-msgstr "Untertitel-Format MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Untertitel-Format DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Untertitel-Format QTtext"
-
-msgid "Sami subtitle format"
-msgstr "Untertitel-Format Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Untertitel-Format TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Untertitel-Format Kate"
-
-msgid "Uncompressed video"
-msgstr "Unkomprimiertes Video"
-
-msgid "Uncompressed gray"
-msgstr "Unkomprimiertes Grau"
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Unkomprimiertes %s YUV %s"
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Unkomprimiertes %s%d-Bit %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Version %d"
-
-msgid "Uncompressed audio"
-msgstr "Unkomprimiertes Audio"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Rohes %d-Bit %s Audio"
-
-msgid "Audio CD source"
-msgstr "Musik-CD-Quelle"
-
-msgid "DVD source"
-msgstr "DVD-Quelle"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Real Time Streaming Protocol (RTSP)-Quelle"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS)-Protokollquelle"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s Protokollquelle"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s-Video RTP-Payload-Entnahme"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s-Audio RTP-Payload-Entnahme"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s-RTP-Payload-Entnahme"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s-Demuxer"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s-Decoder"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s-Video RTP-Payloader"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s-Audio RTP-Payloader"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s-RTP-Payloader"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s-Multiplexer"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s-Encoder"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer-Element %s"
-
-msgid "Unknown source element"
-msgstr "Unbekanntes Quellelement"
-
-msgid "Unknown sink element"
-msgstr "Unbekanntes Zielelement"
-
-msgid "Unknown element"
-msgstr "Unbekanntes Element"
-
-msgid "Unknown decoder element"
-msgstr "Unbekanntes Decoder-Element"
-
-msgid "Unknown encoder element"
-msgstr "Unbekanntes Encoder-Element"
-
-msgid "Plugin or element of unknown type"
-msgstr "Plugin oder Element unbekannten Typs"
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "Hauptregler"
@@ -526,61 +538,6 @@
 #~ msgid "Capture"
 #~ msgstr "Aufnahme"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "VFS-Datei »%s« konnte nicht zum Schreiben geöffnet werden: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Kein Dateiname angegeben"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "VFS-Datei »%s« konnte nicht geschlossen werden."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Fehler beim Schreiben in die Datei »%s«."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Ungültige Untertitel-URI »%s«, Untertitel werden deaktiviert."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "RTSP-Datenströme können noch nicht abgespielt werden."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Das Element »decodebin« konnte nicht erstellt werden."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Es wurde nur ein Datenstrom mit Untertiteln erkannt. Entweder laden Sie "
-#~ "eine Datei mit Untertiteln oder eine andere Art Textdatei oder die "
-#~ "Mediendatei wurde nicht erkannt."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Sie haben keinen Decoder für den Umgang mit dieser Datei installiert. Sie "
-#~ "sollten die erforderlichen Plugins installieren."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Dies ist keine Mediendatei"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Ein Datenstrom mit Untertiteln wurde erkannt, aber kein Videostrom."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Beide Elemente »autovideosink« und »xvimagesink« fehlen."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Beide Elemente »autoaudiosink« und »alsasink« fehlen."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Fehler beim Senden der GDP-Kopfdaten nach »%s:%d«."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Fehler beim Senden der GDP-Nutzdaten nach »%s:%d«."
-
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Verbindung nach %s:%d wurde verweigert."
 
@@ -623,6 +580,52 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Rohes Gleitkomma-Audio"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "VFS-Datei »%s« konnte nicht zum Schreiben geöffnet werden: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Kein Dateiname angegeben"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "VFS-Datei »%s« konnte nicht geschlossen werden."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Fehler beim Schreiben in die Datei »%s«."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Ungültige Untertitel-URI »%s«, Untertitel werden deaktiviert."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "RTSP-Datenströme können noch nicht abgespielt werden."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Es wurde nur ein Datenstrom mit Untertiteln erkannt. Entweder laden Sie "
+#~ "eine Datei mit Untertiteln oder eine andere Art Textdatei oder die "
+#~ "Mediendatei wurde nicht erkannt."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Sie haben keinen Decoder für den Umgang mit dieser Datei installiert. Sie "
+#~ "sollten die erforderlichen Plugins installieren."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Dies ist keine Mediendatei"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Ein Datenstrom mit Untertiteln wurde erkannt, aber kein Videostrom."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Beide Elemente »autovideosink« und »xvimagesink« fehlen."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Beide Elemente »autoaudiosink« und »alsasink« fehlen."
+
 #~ msgid "No device specified."
 #~ msgstr "Kein Gerät angegeben."
 
@@ -636,6 +639,12 @@
 #~ msgstr ""
 #~ "Das Gerät »%s« konnte nicht zum Lesen und Schreiben geöffnet werden."
 
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Fehler beim Senden der GDP-Kopfdaten nach »%s:%d«."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Fehler beim Senden der GDP-Nutzdaten nach »%s:%d«."
+
 #~ msgid "Can't display both text subtitles and subpictures."
 #~ msgstr ""
 #~ "Es können nicht Untertiteltexte und Kleinbilder zugleich angezeigt werden."
diff --git a/po/el.gmo b/po/el.gmo
index 956d28f..d916045 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 5cff628..58fc1c5 100644
--- a/po/el.po
+++ b/po/el.po
@@ -2,16 +2,15 @@
 # This file is put in the public domain.
 #
 # Simos Xenitellis <simos.lists@googlemail.com>, 2010.
-# Michael Kotsarinis <mk73628@gmail.com>, 2010.
-# Savvas Radevic <vicedar@gmail.com>, 2012.
+# Michael Kotsarinis <mk73628@gmail.com>, 2010. 
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-05-05 19:13+0100\n"
-"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2010-10-27 12:05+0200\n"
+"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
@@ -80,6 +79,10 @@
 msgstr "Σφάλμα εσωτερικής ροής δεδομένων."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Λείπει το στοιχείο '%s' - ελέγξτε την εγκατάσταση του GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Απαιτείται μια πρόσθετη λειτουργία %s για την αναπαραγωγή αυτής της ροής, "
@@ -91,9 +94,9 @@
 msgid "This appears to be a text file"
 msgstr "Αυτό φαίνεται να είναι αρχείο κειμένου"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Λείπει το στοιχείο '%s' - ελέγξτε την εγκατάσταση του GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Αδυναμία δημιουργία στοιχείου «decodebin»."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -165,186 +168,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Σφάλμα κατά την αποστολή δεδομένων σε «%s:%d»."
 
-msgid "This CD has no audio tracks"
-msgstr "Αυτό το CD δεν έχει ηχητικά κομμάτια"
-
 msgid "Can't record audio fast enough"
 msgstr "Αδυναμία εγγραφής ήχου αρκετά γρήγορα"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Αποτυχία ανάγνωσης ετικέτας: δεν υπάρχουν αρκετά δεδομένα"
-
-msgid "track ID"
-msgstr "ID κομματιού"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz ID κομματιού"
-
-msgid "artist ID"
-msgstr "ID καλλιτέχνη"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz ID καλλιτέχνη"
-
-msgid "album ID"
-msgstr "ID άλμπουμ"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz ID άλμπουμ"
-
-msgid "album artist ID"
-msgstr "ID καλλιτενη άλμπουμ"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz ID καλλιτέχνη άλμπουμ"
-
-msgid "track TRM ID"
-msgstr "TRM ID κομματιού"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM ID"
-
-msgid "capturing shutter speed"
-msgstr "ταχύτητα κλείστρου λήψης"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Ταχύτητα κλείστρου κατά τη λήψη μιας εικόνας, σε δευτερόλεπτα"
-
-msgid "capturing focal ratio"
-msgstr "εστιακός λόγος λήψης"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-"Εστιακός λόγος (f-number ή f-stop) που χρησιμοποιήθηκε κατά τη λήψη της "
-"εικόνας"
-
-msgid "capturing focal length"
-msgstr "εστιακό μήκος λήψης"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-"Το εστιακό μήκος του φακού που χρησιμοποιήθηκε κατά τη λήψη της εικόνας, σε "
-"mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "λόγος ψηφιακού ζουμ λήψης"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Ο λόγος ψηφιακού ζουμ που χρησιμοποιήθηκε κατά τη λήψη μιας εικόνας"
-
-msgid "capturing iso speed"
-msgstr "ταχύτητα iso λήψης"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Η ταχύτητα ISO που χρησιμοποιήθηκε κατά τη λήψη μιας εικόνας"
-
-msgid "capturing exposure program"
-msgstr "πρόγραμμα έκθεσης λήψης"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Το πρόγραμμα έκθεσης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
-
-msgid "capturing exposure mode"
-msgstr "τρόπος έκθεσης λήψης"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Ο τρόπος έκθεσης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
-
-msgid "capturing exposure compensation"
-msgstr "αντιστάθμιση έκθεσης λήψης"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Η αντιστάθμιση έκθεσης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
-
-msgid "capturing scene capture type"
-msgstr "τύπος σύλληψης σκηνής της λήψης"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Ο τρόπος σύλληψης σκηνής που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
-
-msgid "capturing gain adjustment"
-msgstr "προσαρμογή κέρδους λήψης"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Η συνολική προσαρμογή κέρδους που εφαρμόσθηκε σε μια εικόνα"
-
-msgid "capturing white balance"
-msgstr "ισορροπία λευκού λήψης"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Η ισορροπία λευκού που ορίσθηκε κατά τη λήψη μιας εικόνας"
-
-msgid "capturing contrast"
-msgstr "αντίθεση λήψης"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-"Η κατεύθυνση της επεξεργασίας της αντίθεσης που εφαρμόσθηκε κατά τη λήψη "
-"μιας εικόνας"
-
-msgid "capturing saturation"
-msgstr "κορεσμός λήψης"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-"Η κατεύθυνση της επεξεργασίας του κορεσμού  που εφαρμόσθηκε κατά τη λήψη "
-"μιας εικόνας"
-
-msgid "capturing sharpness"
-msgstr "ευκρίνεια λήψης"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-"Η κατεύθυνση της επεξεργασίας της ευκρίνειας  που εφαρμόσθηκε κατά τη λήψη "
-"μιας εικόνας"
-
-msgid "capturing flash fired"
-msgstr "ενεργοποίηση φλας στη λήψη"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Αν ενεργοποιήθηκε το φλας κατά τη λήψη μιας εικόνας"
-
-msgid "capturing flash mode"
-msgstr "κατάσταση φλας λήψης"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Η επιλεγμένη κατάσταση λειτουργίας του φλας κατά τη λήψη μιας εικόνας"
-
-msgid "capturing metering mode"
-msgstr "τρόπος φωτομέτρησης λήψης"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Ο τρόπος φωτομέτρησης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
-
-msgid "capturing source"
-msgstr "πηγή λήψης"
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-"Η πηγή ή ο τύπος της συσκευής που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
-
-msgid "image horizontal ppi"
-msgstr "οριζόντια ppi εικόνας"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-"Η σκοπούμενη οριζόντια πυκνότητα εικονοστοιχείων (pixel) του μέσου (εικόνα/"
-"βίντεο) σε ppi"
-
-msgid "image vertical ppi"
-msgstr "κάθετα ppi εικόνας"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-"Η σκοπούμενη κάθετη πυκνότητα εικονοστοιχείων (pixel) του μέσου (εικόνα/"
-"βίντεο) σε ppi"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Αυτό το CD δεν έχει ηχητικά κομμάτια"
 
 msgid "ID3 tag"
 msgstr "Ετικέτα ID3"
@@ -509,6 +337,183 @@
 msgid "Plugin or element of unknown type"
 msgstr "Πρόσθετη λειτουργία ή στοιχείο άγνωστου τύπου"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Αποτυχία ανάγνωσης ετικέτας: δεν υπάρχουν αρκετά δεδομένα"
+
+msgid "track ID"
+msgstr "ID κομματιού"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz ID κομματιού"
+
+msgid "artist ID"
+msgstr "ID καλλιτέχνη"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz ID καλλιτέχνη"
+
+msgid "album ID"
+msgstr "ID άλμπουμ"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz ID άλμπουμ"
+
+msgid "album artist ID"
+msgstr "ID καλλιτενη άλμπουμ"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz ID καλλιτέχνη άλμπουμ"
+
+msgid "track TRM ID"
+msgstr "TRM ID κομματιού"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM ID"
+
+msgid "capturing shutter speed"
+msgstr "ταχύτητα κλείστρου λήψης"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Ταχύτητα κλείστρου κατά τη λήψη μιας εικόνας, σε δευτερόλεπτα"
+
+msgid "capturing focal ratio"
+msgstr "εστιακός λόγος λήψης"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+"Εστιακός λόγος (f-number ή f-stop) που χρησιμοποιήθηκε κατά τη λήψη της "
+"εικόνας"
+
+msgid "capturing focal length"
+msgstr "εστιακό μήκος λήψης"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+"Το εστιακό μήκος του φακού που χρησιμοποιήθηκε κατά τη λήψη της εικόνας, σε "
+"mm"
+
+msgid "capturing digital zoom ratio"
+msgstr "λόγος ψηφιακού ζουμ λήψης"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Ο λόγος ψηφιακού ζουμ που χρησιμοποιήθηκε κατά τη λήψη μιας εικόνας"
+
+msgid "capturing iso speed"
+msgstr "ταχύτητα iso λήψης"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Η ταχύτητα ISO που χρησιμοποιήθηκε κατά τη λήψη μιας εικόνας"
+
+msgid "capturing exposure program"
+msgstr "πρόγραμμα έκθεσης λήψης"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Το πρόγραμμα έκθεσης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
+
+msgid "capturing exposure mode"
+msgstr "τρόπος έκθεσης λήψης"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Ο τρόπος έκθεσης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
+
+#, fuzzy
+msgid "capturing exposure compensation"
+msgstr "τρόπος έκθεσης λήψης"
+
+#, fuzzy
+msgid "The exposure compensation used when capturing an image"
+msgstr "Ο τρόπος έκθεσης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
+
+msgid "capturing scene capture type"
+msgstr "τύπος σύλληψης σκηνής της λήψης"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Ο τρόπος σύλληψης σκηνής που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
+
+msgid "capturing gain adjustment"
+msgstr "προσαρμογή κέρδους λήψης"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Η συνολική προσαρμογή κέρδους που εφαρμόσθηκε σε μια εικόνα"
+
+msgid "capturing white balance"
+msgstr "ισορροπία λευκού λήψης"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Η ισορροπία λευκού που ορίσθηκε κατά τη λήψη μιας εικόνας"
+
+msgid "capturing contrast"
+msgstr "αντίθεση λήψης"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+"Η κατεύθυνση της επεξεργασίας της αντίθεσης που εφαρμόσθηκε κατά τη λήψη "
+"μιας εικόνας"
+
+msgid "capturing saturation"
+msgstr "κορεσμός λήψης"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+"Η κατεύθυνση της επεξεργασίας του κορεσμού  που εφαρμόσθηκε κατά τη λήψη "
+"μιας εικόνας"
+
+msgid "capturing sharpness"
+msgstr "ευκρίνεια λήψης"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+"Η κατεύθυνση της επεξεργασίας της ευκρίνειας  που εφαρμόσθηκε κατά τη λήψη "
+"μιας εικόνας"
+
+msgid "capturing flash fired"
+msgstr "ενεργοποίηση φλας στη λήψη"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Αν ενεργοποιήθηκε το φλας κατά τη λήψη μιας εικόνας"
+
+msgid "capturing flash mode"
+msgstr "κατάσταση φλας λήψης"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Η επιλεγμένη κατάσταση λειτουργίας του φλας κατά τη λήψη μιας εικόνας"
+
+msgid "capturing metering mode"
+msgstr "τρόπος φωτομέτρησης λήψης"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Ο τρόπος φωτομέτρησης που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
+
+msgid "capturing source"
+msgstr "πηγή λήψης"
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+"Η πηγή ή ο τύπος της συσκευής που χρησιμοποιήθηκε για τη λήψη μιας εικόνας"
+
+msgid "image horizontal ppi"
+msgstr "οριζόντια ppi εικόνας"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+"Η σκοπούμενη οριζόντια πυκνότητα εικονοστοιχείων (pixel) του μέσου (εικόνα/"
+"βίντεο) σε ppi"
+
+msgid "image vertical ppi"
+msgstr "κάθετα ppi εικόνας"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+"Η σκοπούμενη κάθετη πυκνότητα εικονοστοιχείων (pixel) του μέσου (εικόνα/"
+"βίντεο) σε ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Γενικός"
 
@@ -542,62 +547,6 @@
 #~ msgid "Capture"
 #~ msgstr "Σύλληψη"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Αδυναμία ανοίγματος αρχείου vfs «%s» για εγγραφή: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Δεν δόθηκε όνομα αρχείου"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Αδυναμία κλεισίματος αρχείου vfs «%s»."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Σφάλμα κατά την εγγραφή στο αρχείο «%s»."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Μη έγκυρο URI υποτίτλων «%s», υπότιτλοι απενεργοποιήθηκαν."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Ροές RTSP δεν μπορούν να αναπαραχθούν ακόμα."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Αδυναμία δημιουργία στοιχείου «decodebin»."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Ανιχνεύθηκε μόνο μια ροή υποτίτλων. Είτε φορτώνετε ένα αρχείο υποτίτλων ή "
-#~ "κάποιο άλλο τύπο αρχείου κειμένου, ή το αρχείο πολυμέσων δεν "
-#~ "αναγνωρίσθηκε."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Δεν έχετε εγκατεστημένο αποκωδικοποιητή για να χειριστεί αυτό το αρχείο. "
-#~ "Μπορεί να χρειάζεται να εγκαταστήσετε τις απαραίτητες πρόσθετες "
-#~ "λειτουργίες."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Αυτό δεν είναι αρχείο πολυμέσων"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Ανιχνεύθηκε ροή υποτίτλων αλλά όχι ροή βίντεο."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Λείπουν και τα δύο στοιχεία autovideosink και xvimagesink."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Λείπουν και τα δύο στοιχεία autoaudiosink και alsasink."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Σφάλμα κατά την αποστολή δεδομένων κεφαλίδας gdp σε «%s:%d»."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Σφάλμα κατά την αποστολή δεδομένων φόρτου gdp σε «%s:%d»."
-
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Άρνηση σύνδεσης σε %s:%d."
 
@@ -640,6 +589,53 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Καθαρός floating-point ήχος"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Αδυναμία ανοίγματος αρχείου vfs «%s» για εγγραφή: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Δεν δόθηκε όνομα αρχείου"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Αδυναμία κλεισίματος αρχείου vfs «%s»."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Σφάλμα κατά την εγγραφή στο αρχείο «%s»."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Μη έγκυρο URI υποτίτλων «%s», υπότιτλοι απενεργοποιήθηκαν."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Ροές RTSP δεν μπορούν να αναπαραχθούν ακόμα."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Ανιχνεύθηκε μόνο μια ροή υποτίτλων. Είτε φορτώνετε ένα αρχείο υποτίτλων ή "
+#~ "κάποιο άλλο τύπο αρχείου κειμένου, ή το αρχείο πολυμέσων δεν "
+#~ "αναγνωρίσθηκε."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Δεν έχετε εγκατεστημένο αποκωδικοποιητή για να χειριστεί αυτό το αρχείο. "
+#~ "Μπορεί να χρειάζεται να εγκαταστήσετε τις απαραίτητες πρόσθετες "
+#~ "λειτουργίες."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Αυτό δεν είναι αρχείο πολυμέσων"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Ανιχνεύθηκε ροή υποτίτλων αλλά όχι ροή βίντεο."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Λείπουν και τα δύο στοιχεία autovideosink και xvimagesink."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Λείπουν και τα δύο στοιχεία autoaudiosink και alsasink."
+
 #~ msgid "No device specified."
 #~ msgstr "Δεν ορίσθηκε συσκευή."
 
@@ -651,3 +647,9 @@
 
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Αδυναμία ανοίγματος συσκευής «%s» για ανάγνωση και εγγραφή."
+
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Σφάλμα κατά την αποστολή δεδομένων κεφαλίδας gdp σε «%s:%d»."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Σφάλμα κατά την αποστολή δεδομένων φόρτου gdp σε «%s:%d»."
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 2ae52a3..5d2d700 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 81982f2..91224e7 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -79,6 +79,10 @@
 msgstr ""
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 
@@ -89,9 +93,9 @@
 msgid "This appears to be a text file"
 msgstr ""
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Could not write to file \"%s\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -163,10 +167,167 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Error closing file \"%s\"."
 
+msgid "Can't record audio fast enough"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
-msgid "Can't record audio fast enough"
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr ""
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Subtitle"
+msgstr ""
+
+msgid "MPL2 subtitle format"
+msgstr ""
+
+msgid "DKS subtitle format"
+msgstr ""
+
+msgid "QTtext subtitle format"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed video"
+msgstr ""
+
+msgid "Uncompressed gray"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+msgid "Uncompressed audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr ""
+
+msgid "DVD source"
+msgstr ""
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr ""
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr ""
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
 msgstr ""
 
 msgid "Failed to read tag: not enough data"
@@ -329,163 +490,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr ""
-
-msgid "APE tag"
-msgstr ""
-
-msgid "ICY internet radio"
-msgstr ""
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-msgid "Windows Media Speech"
-msgstr ""
-
-msgid "CYUV Lossless"
-msgstr ""
-
-msgid "FFMpeg v1"
-msgstr ""
-
-msgid "Lossless MSZH"
-msgstr ""
-
-msgid "Run-length encoding"
-msgstr ""
-
-msgid "Subtitle"
-msgstr ""
-
-msgid "MPL2 subtitle format"
-msgstr ""
-
-msgid "DKS subtitle format"
-msgstr ""
-
-msgid "QTtext subtitle format"
-msgstr ""
-
-msgid "Sami subtitle format"
-msgstr ""
-
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-msgid "Kate subtitle format"
-msgstr ""
-
-msgid "Uncompressed video"
-msgstr ""
-
-msgid "Uncompressed gray"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr ""
-
-msgid "Uncompressed audio"
-msgstr ""
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-msgid "Audio CD source"
-msgstr ""
-
-msgid "DVD source"
-msgstr ""
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-msgid "Unknown source element"
-msgstr ""
-
-msgid "Unknown sink element"
-msgstr ""
-
-msgid "Unknown element"
-msgstr ""
-
-msgid "Unknown decoder element"
-msgstr ""
-
-msgid "Unknown encoder element"
-msgstr ""
-
-msgid "Plugin or element of unknown type"
-msgstr ""
-
 #~ msgid "Bass"
 #~ msgstr "Bass"
 
@@ -543,10 +547,6 @@
 #~ msgstr "Could not open device \"%s\" for reading and writing."
 
 #, fuzzy
-#~ msgid "Could not create \"typefind\" element."
-#~ msgstr "Could not write to file \"%s\"."
-
-#, fuzzy
 #~ msgid "No Temp directory specified."
 #~ msgstr "No device specified."
 
diff --git a/po/eo.gmo b/po/eo.gmo
index 47af1f2..0faf679 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 1cf1586..af2bc53 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+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"
@@ -76,6 +76,10 @@
 msgstr "Interna datumflu-eraro."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "%s-kromprogramo bezonatas, sed tia ne estas instalite."
 
@@ -85,9 +89,9 @@
 msgid "This appears to be a text file"
 msgstr "Tio ŝajnas esti tekstdosiero"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Ne eblis krei \"decodebin\"-elementon."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -159,11 +163,168 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Eraro dum sendado de datumoj al \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Ne eblas registri la sonon sufiĉe rapide"
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
-msgid "Can't record audio fast enough"
-msgstr "Ne eblas registri la sonon sufiĉe rapide"
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Subtitle"
+msgstr ""
+
+msgid "MPL2 subtitle format"
+msgstr ""
+
+msgid "DKS subtitle format"
+msgstr ""
+
+msgid "QTtext subtitle format"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed video"
+msgstr ""
+
+msgid "Uncompressed gray"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "\"DivX MPEG-4\"-versio %d"
+
+msgid "Uncompressed audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr "Son-KD-fonto"
+
+msgid "DVD source"
+msgstr "DVD-fonto"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokolfonto"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr "Nekonata fontelemento"
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr "Nekonata elemento"
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
+msgstr ""
 
 msgid "Failed to read tag: not enough data"
 msgstr ""
@@ -325,163 +486,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr ""
-
-msgid "APE tag"
-msgstr ""
-
-msgid "ICY internet radio"
-msgstr ""
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-msgid "Windows Media Speech"
-msgstr ""
-
-msgid "CYUV Lossless"
-msgstr ""
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr ""
-
-msgid "Run-length encoding"
-msgstr ""
-
-msgid "Subtitle"
-msgstr ""
-
-msgid "MPL2 subtitle format"
-msgstr ""
-
-msgid "DKS subtitle format"
-msgstr ""
-
-msgid "QTtext subtitle format"
-msgstr ""
-
-msgid "Sami subtitle format"
-msgstr ""
-
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-msgid "Kate subtitle format"
-msgstr ""
-
-msgid "Uncompressed video"
-msgstr ""
-
-msgid "Uncompressed gray"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "\"DivX MPEG-4\"-versio %d"
-
-msgid "Uncompressed audio"
-msgstr ""
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-msgid "Audio CD source"
-msgstr "Son-KD-fonto"
-
-msgid "DVD source"
-msgstr "DVD-fonto"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protokolfonto"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-msgid "Unknown source element"
-msgstr "Nekonata fontelemento"
-
-msgid "Unknown sink element"
-msgstr ""
-
-msgid "Unknown element"
-msgstr "Nekonata elemento"
-
-msgid "Unknown decoder element"
-msgstr ""
-
-msgid "Unknown encoder element"
-msgstr ""
-
-msgid "Plugin or element of unknown type"
-msgstr ""
-
 #~ msgid "Master"
 #~ msgstr "Ĉefa regilo"
 
@@ -524,9 +528,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Ankoraŭ ne eblas ludi RTSP-fluojn."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Ne eblis krei \"decodebin\"-elementon."
-
 #~ msgid "This is not a media file"
 #~ msgstr "Tio ne estas aŭdvidaĵa dosiero"
 
diff --git a/po/es.gmo b/po/es.gmo
index 4b910ab..cd3f6bf 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 464f0b7..82ed6e8 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-10-02 15:46+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -76,6 +76,10 @@
 msgstr "Error interno de flujo de datos."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Falta el elemento «%s»; compruebe su instalación de GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Se requiere un complemento de %s para reproducir este medio, pero no está "
@@ -87,9 +91,9 @@
 msgid "This appears to be a text file"
 msgstr "Esto parece ser un archivo de texto"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Falta el elemento «%s»; compruebe su instalación de GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "No se pudo crear el elemento «decodebin»."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,172 +166,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Error al enviar los datos a «%s:%d»."
 
-msgid "This CD has no audio tracks"
-msgstr "Este CD no tiene pistas de sonido"
-
 msgid "Can't record audio fast enough"
 msgstr "No se puede grabar el sonido lo suficientemente rápido"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Falló al leer la etiqueta: no hay datos suficientes"
-
-msgid "track ID"
-msgstr "ID de la pista"
-
-msgid "MusicBrainz track ID"
-msgstr "ID de la pista en MusicBrainz"
-
-msgid "artist ID"
-msgstr "ID del artista"
-
-msgid "MusicBrainz artist ID"
-msgstr "ID del artista en MusicBrainz"
-
-msgid "album ID"
-msgstr "ID del álbum"
-
-msgid "MusicBrainz album ID"
-msgstr "ID del álbum en MusicBrainz"
-
-msgid "album artist ID"
-msgstr "ID del álbum del artista"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ID del álbum del artista en MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "ID TRM de la pista"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ID TRM en MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr "velocidad del obturador de la toma"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Velocidad del obturador usada al tomar una imagen, en segundos"
-
-msgid "capturing focal ratio"
-msgstr "tasa focal de la toma"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Tasa focal (número-f) usada al tomar la imagen"
-
-msgid "capturing focal length"
-msgstr "longitud focal de la toma"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Longitud focal de la lente usada al tomar la imagen, en mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "tasa de ampliación digital de la toma"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Tasa de ampliación digital usada al tomar una imagen"
-
-msgid "capturing iso speed"
-msgstr "velocidad ISO de la toma"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "La velocidad de captura ISO usada al tomar una imagen"
-
-msgid "capturing exposure program"
-msgstr "programa de exposición de la toma"
-
-msgid "The exposure program used when capturing an image"
-msgstr "El programa de exposición usado al tomar una imagen"
-
-msgid "capturing exposure mode"
-msgstr "modo de exposición de la toma"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "El modo de exposición usado al tomar una imagen"
-
-msgid "capturing exposure compensation"
-msgstr "compensación de la exposición en la captura"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "La compensación de exposición usada al capturar una imagen"
-
-msgid "capturing scene capture type"
-msgstr "tipo de escena usado en la toma"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "El modo de captura usado al tomar una imagen"
-
-msgid "capturing gain adjustment"
-msgstr "ajuste de ganancia de la toma"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "El ajuste general de ganancia aplicado en una imagen"
-
-msgid "capturing white balance"
-msgstr "balance de blancos de la toma"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "El modo de balance de blancos usado al tomar una imagen"
-
-msgid "capturing contrast"
-msgstr "contraste de la toma"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "La dirección de contraste procesada aplicada al tomar una imagen"
-
-msgid "capturing saturation"
-msgstr "saturación de la toma"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "La dirección de saturación procesada aplicacada al tomar una imagen"
-
-msgid "capturing sharpness"
-msgstr "nitidez de la toma"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "La dirección de nitidez procesada aplicada al tomar una imagen"
-
-msgid "capturing flash fired"
-msgstr "disparo de flash de la toma"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Si el flash se disparó al capturar una imagen"
-
-msgid "capturing flash mode"
-msgstr "modo de flash de la toma"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "El modo de flash seleccionado al tomar una imagen"
-
-msgid "capturing metering mode"
-msgstr "modo de medición de la toma"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-"El modo de medición usado al determinado la exposición al tomar una imagen"
-
-msgid "capturing source"
-msgstr "fuente de la toma"
-
-msgid "The source or type of device used for the capture"
-msgstr "El origen o tipo de dispositivo usado para la toma"
-
-msgid "image horizontal ppi"
-msgstr "ppi horizontal de la imagen"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Densidad horizontal de píxeles, en ppi, del medio (imagen o vídeo)"
-
-msgid "image vertical ppi"
-msgstr "ppi vertical de la imagen"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Densidad vertical de píxeles, en ppi, del medio (imagen o vídeo)"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Este CD no tiene pistas de sonido"
 
 msgid "ID3 tag"
 msgstr "Etiqueta ID3"
@@ -492,6 +335,167 @@
 msgid "Plugin or element of unknown type"
 msgstr "Complemento o elemento de tipo desconocido"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Falló al leer la etiqueta: no hay datos suficientes"
+
+msgid "track ID"
+msgstr "ID de la pista"
+
+msgid "MusicBrainz track ID"
+msgstr "ID de la pista en MusicBrainz"
+
+msgid "artist ID"
+msgstr "ID del artista"
+
+msgid "MusicBrainz artist ID"
+msgstr "ID del artista en MusicBrainz"
+
+msgid "album ID"
+msgstr "ID del álbum"
+
+msgid "MusicBrainz album ID"
+msgstr "ID del álbum en MusicBrainz"
+
+msgid "album artist ID"
+msgstr "ID del álbum del artista"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ID del álbum del artista en MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "ID TRM de la pista"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ID TRM en MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr "velocidad del obturador de la toma"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Velocidad del obturador usada al tomar una imagen, en segundos"
+
+msgid "capturing focal ratio"
+msgstr "tasa focal de la toma"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Tasa focal (número-f) usada al tomar la imagen"
+
+msgid "capturing focal length"
+msgstr "longitud focal de la toma"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Longitud focal de la lente usada al tomar la imagen, en mm"
+
+msgid "capturing digital zoom ratio"
+msgstr "tasa de ampliación digital de la toma"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Tasa de ampliación digital usada al tomar una imagen"
+
+msgid "capturing iso speed"
+msgstr "velocidad ISO de la toma"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "La velocidad de captura ISO usada al tomar una imagen"
+
+msgid "capturing exposure program"
+msgstr "programa de exposición de la toma"
+
+msgid "The exposure program used when capturing an image"
+msgstr "El programa de exposición usado al tomar una imagen"
+
+msgid "capturing exposure mode"
+msgstr "modo de exposición de la toma"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "El modo de exposición usado al tomar una imagen"
+
+msgid "capturing exposure compensation"
+msgstr "compensación de la exposición en la captura"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "La compensación de exposición usada al capturar una imagen"
+
+msgid "capturing scene capture type"
+msgstr "tipo de escena usado en la toma"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "El modo de captura usado al tomar una imagen"
+
+msgid "capturing gain adjustment"
+msgstr "ajuste de ganancia de la toma"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "El ajuste general de ganancia aplicado en una imagen"
+
+msgid "capturing white balance"
+msgstr "balance de blancos de la toma"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "El modo de balance de blancos usado al tomar una imagen"
+
+msgid "capturing contrast"
+msgstr "contraste de la toma"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "La dirección de contraste procesada aplicada al tomar una imagen"
+
+msgid "capturing saturation"
+msgstr "saturación de la toma"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "La dirección de saturación procesada aplicacada al tomar una imagen"
+
+msgid "capturing sharpness"
+msgstr "nitidez de la toma"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "La dirección de nitidez procesada aplicada al tomar una imagen"
+
+msgid "capturing flash fired"
+msgstr "disparo de flash de la toma"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Si el flash se disparó al capturar una imagen"
+
+msgid "capturing flash mode"
+msgstr "modo de flash de la toma"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "El modo de flash seleccionado al tomar una imagen"
+
+msgid "capturing metering mode"
+msgstr "modo de medición de la toma"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+"El modo de medición usado al determinado la exposición al tomar una imagen"
+
+msgid "capturing source"
+msgstr "fuente de la toma"
+
+msgid "The source or type of device used for the capture"
+msgstr "El origen o tipo de dispositivo usado para la toma"
+
+msgid "image horizontal ppi"
+msgstr "ppi horizontal de la imagen"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "Densidad horizontal de píxeles, en ppi, del medio (imagen o vídeo)"
+
+msgid "image vertical ppi"
+msgstr "ppi vertical de la imagen"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Densidad vertical de píxeles, en ppi, del medio (imagen o vídeo)"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Maestro"
 
@@ -546,9 +550,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Aún no se pueden reproducir los medios RTSP."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "No se pudo crear el elemento «decodebin»."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/eu.gmo b/po/eu.gmo
index 3f683e7..b248b18 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 00cc2ed..1250177 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-03-25 12:32+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -78,6 +78,10 @@
 msgstr "Datu-korrontearen barne-errorea."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "'%s' elementua falta da. Begiratu GStreamer ondo instalatua dagoen."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "%s plugina behar da korronte hori erreproduzitzeko, baina ez dago instalatua."
@@ -88,9 +92,9 @@
 msgid "This appears to be a text file"
 msgstr "Testu-fitxategia dela dirudi"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "'%s' elementua falta da. Begiratu GStreamer ondo instalatua dagoen."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Ezin izan da sortu \"decodebin\" elementua."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -164,171 +168,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Errorea gertatu da datuak \"%s:%d\"(e)ra bidaltzean."
 
-msgid "This CD has no audio tracks"
-msgstr "CD honek ez du audio-pistarik"
-
 msgid "Can't record audio fast enough"
 msgstr "Ezin da behar bezain bizkor grabatu audioa"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Huts egin du etiketa irakurtzean: ez dago nahikoa daturik"
-
-msgid "track ID"
-msgstr "pistaren IDa"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz pistaren IDa"
-
-msgid "artist ID"
-msgstr "interpretearen IDa"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz interpretearen IDa"
-
-msgid "album ID"
-msgstr "albumaren IDa"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz albumaren IDa"
-
-msgid "album artist ID"
-msgstr "albumaren interpretearen IDa"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albumaren interpretearen IDa"
-
-msgid "track TRM ID"
-msgstr "pistaren TRM IDa"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM IDa"
-
-msgid "capturing shutter speed"
-msgstr ""
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure compensation"
-msgstr ""
-
-msgid "The exposure compensation used when capturing an image"
-msgstr ""
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr ""
-
-msgid "The white balance mode set when capturing an image"
-msgstr ""
-
-msgid "capturing contrast"
-msgstr ""
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr ""
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr ""
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr ""
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "CD honek ez du audio-pistarik"
 
 msgid "ID3 tag"
 msgstr "ID3 etiketa"
@@ -493,6 +337,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Mota ezezaguneko plugina edo elementua"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Huts egin du etiketa irakurtzean: ez dago nahikoa daturik"
+
+msgid "track ID"
+msgstr "pistaren IDa"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz pistaren IDa"
+
+msgid "artist ID"
+msgstr "interpretearen IDa"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz interpretearen IDa"
+
+msgid "album ID"
+msgstr "albumaren IDa"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz albumaren IDa"
+
+msgid "album artist ID"
+msgstr "albumaren interpretearen IDa"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz albumaren interpretearen IDa"
+
+msgid "track TRM ID"
+msgstr "pistaren TRM IDa"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM IDa"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Maisua"
 
@@ -587,9 +591,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Oraindik ezin dira erreproduzitu RTSP korronteak."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Ezin izan da sortu \"decodebin\" elementua."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/fi.gmo b/po/fi.gmo
index 9a7d299..e8c1c2c 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index d34c27c..bdc6cce 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-12-31 23:21+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -80,6 +80,10 @@
 msgstr "Sisäisen tietovirran virhe."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Puuttuva elementti \"%s\" - tarkista GStreamer-asennuksesi."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Virran toistamiseen tarvitaan %s-liitännäinen, mutta se ei ole asennettu."
@@ -90,9 +94,9 @@
 msgid "This appears to be a text file"
 msgstr "Tämä näyttää olevan tekstitiedosto"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Puuttuva elementti \"%s\" - tarkista GStreamer-asennuksesi."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Elementtiä \"decodebin\" ei voitu luoda."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -164,173 +168,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Virhe lähetettäessä tietoa kohteeseen \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Tällä CD-levyllä ei ole ääniraitoja"
-
 msgid "Can't record audio fast enough"
 msgstr "Ääntä ei voi nauhoittaa tarpeeksi nopeasti"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Tagin lukeminen epäonnistui: ei riittävästi dataa"
-
-msgid "track ID"
-msgstr "kappaletunniste"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz-kappaletunniste"
-
-msgid "artist ID"
-msgstr "esittäjätunniste"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz-esittäjätunniste"
-
-msgid "album ID"
-msgstr "levytunniste"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz-levytunniste"
-
-msgid "album artist ID"
-msgstr "levyn esittäjätunniste"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz levyn esittäjätunniste"
-
-msgid "track TRM ID"
-msgstr "kappaleen TRM-tunniste"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM-tunniste"
-
-msgid "capturing shutter speed"
-msgstr "kuvaamisen suljinnopeus"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Suljinnopeus kuvattaessa, sekunteina"
-
-msgid "capturing focal ratio"
-msgstr "kuvaamisen aukkosuhde"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Aukkosuhde (f-luku) kuvattaessa"
-
-msgid "capturing focal length"
-msgstr "kuvaamisen polttoväli"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Linssin polttoväli kuvattaessa, millimetriä"
-
-msgid "capturing digital zoom ratio"
-msgstr "kuvaamisen digitaalinen zoomaus"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Digitaalinen suurennuskerroin kuvattaessa"
-
-msgid "capturing iso speed"
-msgstr "kuvaamisen ISO-nopeus"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "ISO-nopeus kuvattaessa"
-
-msgid "capturing exposure program"
-msgstr "kuvaamisen valotusohjelma"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Valotusohjelma kuvattaessa"
-
-msgid "capturing exposure mode"
-msgstr "kuvaamisen valotustapa"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Valotustapa kuvattaessa"
-
-#, fuzzy
-msgid "capturing exposure compensation"
-msgstr "kuvaamisen valotustapa"
-
-#, fuzzy
-msgid "The exposure compensation used when capturing an image"
-msgstr "Valotustapa kuvattaessa"
-
-msgid "capturing scene capture type"
-msgstr "kuvaamisen kuvausmoodi"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Kuvausmoodi kuvattaessa"
-
-msgid "capturing gain adjustment"
-msgstr "kuvaamisen kirkkauskorjaus"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Yleinen kirkkauskorjaus, joka kuvalle on tehty"
-
-msgid "capturing white balance"
-msgstr "kuvaamisen valkotasapaino"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Valittu valkotasapainotila kuvattaessa"
-
-msgid "capturing contrast"
-msgstr "kuvaamisen kontrasti"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Käytetty kontrastikäsittelyn suunta kuvattessa"
-
-msgid "capturing saturation"
-msgstr "kuvaamisen saturaatio"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Käytetty saturaatiokäsittelyn suunta kuvattessa"
-
-msgid "capturing sharpness"
-msgstr "kuvaamisen terävyys"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Käytetty terävyyskäsittelyn suunta kuvattessa"
-
-msgid "capturing flash fired"
-msgstr "kuvaamisen salamankäyttö"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Syttyikö salama kuvattaessa"
-
-msgid "capturing flash mode"
-msgstr "kuvaamisen salamamoodi"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Valittu salamamoodi kuvattessa"
-
-msgid "capturing metering mode"
-msgstr "kuvaamisen mittausmoodi"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Käytetty mittausmoodi päätettäessä valotusta kuvattaessa"
-
-msgid "capturing source"
-msgstr "kuvaamisen lähde"
-
-msgid "The source or type of device used for the capture"
-msgstr "Lähde tai laitetyyppi kuvattaessa"
-
-msgid "image horizontal ppi"
-msgstr "kuvan vaakasuora ppi"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Median (kuva tai video) tarkoitettu vaakasuora pikselitiheys ppi:nä"
-
-msgid "image vertical ppi"
-msgstr "kuvan pystysuora ppi"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Median (kuva tai video) tarkoitettu pystysuora pikselitiheys ppi:nä"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Tällä CD-levyllä ei ole ääniraitoja"
 
 msgid "ID3 tag"
 msgstr "ID3-tagi"
@@ -495,6 +337,168 @@
 msgid "Plugin or element of unknown type"
 msgstr "Liitännäisen tai elementin tyyppi on tuntematon"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Tagin lukeminen epäonnistui: ei riittävästi dataa"
+
+msgid "track ID"
+msgstr "kappaletunniste"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz-kappaletunniste"
+
+msgid "artist ID"
+msgstr "esittäjätunniste"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz-esittäjätunniste"
+
+msgid "album ID"
+msgstr "levytunniste"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz-levytunniste"
+
+msgid "album artist ID"
+msgstr "levyn esittäjätunniste"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz levyn esittäjätunniste"
+
+msgid "track TRM ID"
+msgstr "kappaleen TRM-tunniste"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM-tunniste"
+
+msgid "capturing shutter speed"
+msgstr "kuvaamisen suljinnopeus"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Suljinnopeus kuvattaessa, sekunteina"
+
+msgid "capturing focal ratio"
+msgstr "kuvaamisen aukkosuhde"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Aukkosuhde (f-luku) kuvattaessa"
+
+msgid "capturing focal length"
+msgstr "kuvaamisen polttoväli"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Linssin polttoväli kuvattaessa, millimetriä"
+
+msgid "capturing digital zoom ratio"
+msgstr "kuvaamisen digitaalinen zoomaus"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Digitaalinen suurennuskerroin kuvattaessa"
+
+msgid "capturing iso speed"
+msgstr "kuvaamisen ISO-nopeus"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "ISO-nopeus kuvattaessa"
+
+msgid "capturing exposure program"
+msgstr "kuvaamisen valotusohjelma"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Valotusohjelma kuvattaessa"
+
+msgid "capturing exposure mode"
+msgstr "kuvaamisen valotustapa"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Valotustapa kuvattaessa"
+
+#, fuzzy
+msgid "capturing exposure compensation"
+msgstr "kuvaamisen valotustapa"
+
+#, fuzzy
+msgid "The exposure compensation used when capturing an image"
+msgstr "Valotustapa kuvattaessa"
+
+msgid "capturing scene capture type"
+msgstr "kuvaamisen kuvausmoodi"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Kuvausmoodi kuvattaessa"
+
+msgid "capturing gain adjustment"
+msgstr "kuvaamisen kirkkauskorjaus"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Yleinen kirkkauskorjaus, joka kuvalle on tehty"
+
+msgid "capturing white balance"
+msgstr "kuvaamisen valkotasapaino"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Valittu valkotasapainotila kuvattaessa"
+
+msgid "capturing contrast"
+msgstr "kuvaamisen kontrasti"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Käytetty kontrastikäsittelyn suunta kuvattessa"
+
+msgid "capturing saturation"
+msgstr "kuvaamisen saturaatio"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Käytetty saturaatiokäsittelyn suunta kuvattessa"
+
+msgid "capturing sharpness"
+msgstr "kuvaamisen terävyys"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Käytetty terävyyskäsittelyn suunta kuvattessa"
+
+msgid "capturing flash fired"
+msgstr "kuvaamisen salamankäyttö"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Syttyikö salama kuvattaessa"
+
+msgid "capturing flash mode"
+msgstr "kuvaamisen salamamoodi"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Valittu salamamoodi kuvattessa"
+
+msgid "capturing metering mode"
+msgstr "kuvaamisen mittausmoodi"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Käytetty mittausmoodi päätettäessä valotusta kuvattaessa"
+
+msgid "capturing source"
+msgstr "kuvaamisen lähde"
+
+msgid "The source or type of device used for the capture"
+msgstr "Lähde tai laitetyyppi kuvattaessa"
+
+msgid "image horizontal ppi"
+msgstr "kuvan vaakasuora ppi"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "Median (kuva tai video) tarkoitettu vaakasuora pikselitiheys ppi:nä"
+
+msgid "image vertical ppi"
+msgstr "kuvan pystysuora ppi"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Median (kuva tai video) tarkoitettu pystysuora pikselitiheys ppi:nä"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Pääkanava"
 
@@ -588,9 +592,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP-virtoja ei voi vielä soittaa."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Elementtiä \"decodebin\" ei voitu luoda."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/fr.gmo b/po/fr.gmo
index 4ffb850..0b3b3f7 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 31f09f6..edaa7be 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-04-28 09:19+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -83,6 +83,10 @@
 msgstr "Erreur interne de flux de données."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Élément « %s » manquant, contrôlez votre installation de GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Un greffon %s est requis pour lire ce flux, mais il n'est pas installé."
@@ -93,9 +97,9 @@
 msgid "This appears to be a text file"
 msgstr "Ce fichier semble être un fichier texte"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Élément « %s » manquant, contrôlez votre installation de GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Impossible de créer un élément « decodebin »."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -167,11 +171,175 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Erreur lors de l'envoi de données vers « %s:%d »."
 
+msgid "Can't record audio fast enough"
+msgstr "Impossible d'enregistrer assez rapidement les données audio"
+
 msgid "This CD has no audio tracks"
 msgstr "Ce CD ne contient aucune piste audio"
 
-msgid "Can't record audio fast enough"
-msgstr "Impossible d'enregistrer assez rapidement les données audio"
+msgid "ID3 tag"
+msgstr "Étiquette ID3"
+
+msgid "APE tag"
+msgstr "Étiquette APE"
+
+msgid "ICY internet radio"
+msgstr "Radio Internet ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "ALAC (Apple Lossless Audio)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "FLAC (Free Lossless Audio Codec)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "TTA (Lossless True Audio)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV sans perte"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH sans perte"
+
+# http://fr.wikipedia.org/wiki/Run-length_encoding
+msgid "Run-length encoding"
+msgstr "Codage par plages"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Format de sous-titres TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Format de sous-titres Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Format de sous-titres Kate"
+
+msgid "Sami subtitle format"
+msgstr "Format de sous-titres Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Format de sous-titres TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Format de sous-titres Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV non compressé"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Image niveaux de gris non compressée"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "YUV non compressé"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "%2$s %1$d bits en palette non compressé"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "MPEG-4 DivX version %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV non compressé"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Audio PCM brut %d bits"
+
+msgid "Audio CD source"
+msgstr "Source CD audio"
+
+msgid "DVD source"
+msgstr "Source DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Source RTSP (Real Time Streaming Protocol)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Source protocole MMS (Microsoft Media Server)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Source protocole %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "Depayloader RTP vidéo %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "Depayloader RTP audio %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "Depayloader RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Démultiplexeur %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Décodeur %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "Payloader RTP vidéo %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "Payloader RTP audio %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "Payloader RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Multiplexeur %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Codeur %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Élément GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Élément source inconnu"
+
+msgid "Unknown sink element"
+msgstr "Élément d'entrée inconnu"
+
+msgid "Unknown element"
+msgstr "Élément inconnu"
+
+msgid "Unknown decoder element"
+msgstr "Élément décodeur inconnu"
+
+msgid "Unknown encoder element"
+msgstr "Élément codeur inconnu"
+
+msgid "Plugin or element of unknown type"
+msgstr "Greffon ou élément de type inconnu"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Échec de lecture de l'étiquette : données insuffisantes"
@@ -347,170 +515,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Étiquette ID3"
-
-msgid "APE tag"
-msgstr "Étiquette APE"
-
-msgid "ICY internet radio"
-msgstr "Radio Internet ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "ALAC (Apple Lossless Audio)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "FLAC (Free Lossless Audio Codec)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "TTA (Lossless True Audio)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV sans perte"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH sans perte"
-
-# http://fr.wikipedia.org/wiki/Run-length_encoding
-msgid "Run-length encoding"
-msgstr "Codage par plages"
-
-msgid "Subtitle"
-msgstr ""
-
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Format de sous-titres TMPlayer"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Format de sous-titres Sami"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Format de sous-titres Kate"
-
-msgid "Sami subtitle format"
-msgstr "Format de sous-titres Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Format de sous-titres TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Format de sous-titres Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "YUV non compressé"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Image niveaux de gris non compressée"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV non compressé"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%2$s %1$d bits en palette non compressé"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "MPEG-4 DivX version %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "YUV non compressé"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Audio PCM brut %d bits"
-
-msgid "Audio CD source"
-msgstr "Source CD audio"
-
-msgid "DVD source"
-msgstr "Source DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Source RTSP (Real Time Streaming Protocol)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Source protocole MMS (Microsoft Media Server)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Source protocole %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "Depayloader RTP vidéo %s"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "Depayloader RTP audio %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "Depayloader RTP %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Démultiplexeur %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Décodeur %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "Payloader RTP vidéo %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "Payloader RTP audio %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "Payloader RTP %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "Multiplexeur %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "Codeur %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Élément GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Élément source inconnu"
-
-msgid "Unknown sink element"
-msgstr "Élément d'entrée inconnu"
-
-msgid "Unknown element"
-msgstr "Élément inconnu"
-
-msgid "Unknown decoder element"
-msgstr "Élément décodeur inconnu"
-
-msgid "Unknown encoder element"
-msgstr "Élément codeur inconnu"
-
-msgid "Plugin or element of unknown type"
-msgstr "Greffon ou élément de type inconnu"
-
 #~ msgid "Master"
 #~ msgstr "Volume général"
 
@@ -605,9 +609,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Il n'est pas encore possible de lire les flux RTSP."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Impossible de créer un élément « decodebin »."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/gl.gmo b/po/gl.gmo
index 3b50210..a259c62 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index aa45804..6fffe95 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -3,23 +3,21 @@
 # This file is distributed under the same license as the gst-plugins-base package.
 # Fran Diéguez <frandieguez@ubuntu.com>, 2010, 2011.
 # Fran Dieguez <frandieguez@ubuntu.com>, 2011.
-# Fran Dieguez <frandieguez@gnome.org>, 2012.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-12-15 03:40+0200\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-09-05 12:48+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
 "Language: gl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Virtaal 0.7.1\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 "X-Poedit-Language: galego\n"
-"X-Project-Style: gnome\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Non foi posíbel abrir o dispositivo para a reprodución en modo mono."
@@ -81,6 +79,10 @@
 msgstr "Produciuse un erro no fluxo de datos internos."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Falta o elemento «%s» - comprobe a instalación do GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Precísase un engadido %s que non está instalado para reproducir este fluxo."
@@ -91,9 +93,9 @@
 msgid "This appears to be a text file"
 msgstr "Isto parece ser un ficheiro de texto"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Falta o elemento «%s» - comprobe a instalación do GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Non foi posíbel crear o elemento \"decodebin\" ."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -166,11 +168,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Produciuse un erro mentres se enviaban datos a \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Non é posíbel gravar o son cunha velocidade suficiente"
+
 msgid "This CD has no audio tracks"
 msgstr "Este CD non contén pistas de son"
 
-msgid "Can't record audio fast enough"
-msgstr "Non é posíbel gravar o son cunha velocidade suficiente"
+msgid "ID3 tag"
+msgstr "Etiqueta ID3"
+
+msgid "APE tag"
+msgstr "Etiqueta APE"
+
+msgid "ICY internet radio"
+msgstr "Emisora de internet ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Lossless"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH sen perda"
+
+msgid "Run-length encoding"
+msgstr "Codificación do tamaño durante a execución"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Formato de subtítulos TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Formato de subtítulos Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Formato de subtítulos Kate"
+
+msgid "Sami subtitle format"
+msgstr "Formato de subtítulos Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Formato de subtítulos TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Formato de subtítulos Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV sen comprimir"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Imaxe en escala de grises sen comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "YUV sen comprimir"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Paletizado sen comprimir de %d-bit %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Versión %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV sen comprimir"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Audio PCM sen comprimir de %d-bits"
+
+msgid "Audio CD source"
+msgstr "Fonte: CD de son"
+
+msgid "DVD source"
+msgstr "Fonte: DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Fonte: Real Time Streaming Protocol (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Fonte: protocolo Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Fonte: Protocolo %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "decodificador de vídeo RTP %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "decodificador de son RTP %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "decodificador RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "demultiplexor %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "decodificador %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "codificador de vídeo RTP %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "codificador de son RTP %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "codificador RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "multiplexor %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "codificador %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Elemento %s do GStreamer"
+
+msgid "Unknown source element"
+msgstr "Fonte: Elemento descoñecido"
+
+msgid "Unknown sink element"
+msgstr "Elemento sumideiro (sink) descoñecido"
+
+msgid "Unknown element"
+msgstr "Elemento descoñecido"
+
+msgid "Unknown decoder element"
+msgstr "O elemento decodificador é descoñecido"
+
+msgid "Unknown encoder element"
+msgstr "O elemento codificador é descoñecido"
+
+msgid "Plugin or element of unknown type"
+msgstr "Engadido ou elemento de tipo descoñecido"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Produciuse un fallo ao ler a etiqueta: non hai datos suficientes"
@@ -328,167 +493,10 @@
 msgstr "Densidade vertical de píxeles, en ppi, do medio (imaxe ou vídeo)"
 
 msgid "ID3v2 frame"
-msgstr "Marco ID3v2"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "marco da etiqueta id3v2 non analizado"
-
-msgid "ID3 tag"
-msgstr "Etiqueta ID3"
-
-msgid "APE tag"
-msgstr "Etiqueta APE"
-
-msgid "ICY internet radio"
-msgstr "Emisora de internet ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH sen perda"
-
-msgid "Run-length encoding"
-msgstr "Codificación do tamaño durante a execución"
-
-msgid "Subtitle"
-msgstr "Subtítulo"
-
-msgid "MPL2 subtitle format"
-msgstr "Formato de subtítulos MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Formato de subtítulos DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Formato de subtítulos QTtext"
-
-msgid "Sami subtitle format"
-msgstr "Formato de subtítulos Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Formato de subtítulos TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Formato de subtítulos Kate"
-
-msgid "Uncompressed video"
-msgstr "Vídeo sen comprimir"
-
-msgid "Uncompressed gray"
-msgstr "Gris non comprimido"
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "%s YUV %s sen comprimir"
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%s%d-bit %s sen comprimir"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Versión %d"
-
-msgid "Uncompressed audio"
-msgstr "Son sen comprimir"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Son RAW de %d-bit %s"
-
-msgid "Audio CD source"
-msgstr "Fonte: CD de son"
-
-msgid "DVD source"
-msgstr "Fonte: DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Fonte: Real Time Streaming Protocol (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Fonte: protocolo Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Fonte: Protocolo %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "decodificador de vídeo RTP %s"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "decodificador de son RTP %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "decodificador RTP %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "demultiplexor %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "decodificador %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "codificador de vídeo RTP %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "codificador de son RTP %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "codificador RTP %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "multiplexor %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "codificador %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Elemento %s do GStreamer"
-
-msgid "Unknown source element"
-msgstr "Fonte: Elemento descoñecido"
-
-msgid "Unknown sink element"
-msgstr "Elemento sumideiro (sink) descoñecido"
-
-msgid "Unknown element"
-msgstr "Elemento descoñecido"
-
-msgid "Unknown decoder element"
-msgstr "O elemento decodificador é descoñecido"
-
-msgid "Unknown encoder element"
-msgstr "O elemento codificador é descoñecido"
-
-msgid "Plugin or element of unknown type"
-msgstr "Engadido ou elemento de tipo descoñecido"
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "Mestre"
@@ -523,6 +531,9 @@
 #~ msgid "Capture"
 #~ msgstr "Capturar"
 
+#~ msgid "Connection to %s:%d refused."
+#~ msgstr "Rexeitouse a conexión a %s:%d."
+
 #~ msgid "Could not open vfs file \"%s\" for writing: %s."
 #~ msgstr "Non foi posíbel abrir o ficheiro vfs «%s» para escribir: %s."
 
@@ -542,9 +553,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Aínda non é posíbel reproducir os fluxos RTSP."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Non foi posíbel crear o elemento \"decodebin\" ."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
@@ -580,9 +588,6 @@
 #~ msgid "Error while sending gdp payload data to \"%s:%d\"."
 #~ msgstr "Produciuse un erro ao enviar a carga de datos de gdp a «%s:%d»."
 
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Rexeitouse a conexión a %s:%d."
-
 #~ msgid "Uncompressed planar YUV 4:2:0"
 #~ msgstr "YUV 4:2:0 plano sen comprimir"
 
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index 0f2ab23..e66fafc 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.8\n"
+"Project-Id-Version: gst-plugins-base 1.1.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+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"
@@ -43,30 +43,30 @@
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:408
+#: ext/alsa/gstalsasrc.c:438
 msgid "Could not open device for recording in mono mode."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:410
+#: ext/alsa/gstalsasrc.c:440
 msgid "Could not open device for recording in stereo mode."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:414
+#: ext/alsa/gstalsasrc.c:444
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:706
+#: ext/alsa/gstalsasrc.c:736
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:711
+#: ext/alsa/gstalsasrc.c:741
 msgid "Could not open audio device for recording."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:937
+#: ext/alsa/gstalsasrc.c:983
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
 
@@ -82,117 +82,124 @@
 msgid "Could not read CD."
 msgstr ""
 
-#: ext/ogg/gstoggdemux.c:4509
+#: ext/ogg/gstoggdemux.c:4520
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:1726
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-
-#: gst/playback/gstdecodebin2.c:1733
-msgid "Could not determine type of stream"
-msgstr ""
-
-#: gst/playback/gstdecodebin2.c:2388
-msgid "This appears to be a text file"
-msgstr ""
-
-#: gst/playback/gstplaysink.c:1360 gst/playback/gstplaysink.c:1377
-#: gst/playback/gstplaysink.c:1689 gst/playback/gstplaysink.c:2280
-#: gst/playback/gstplaysink.c:2329 gst/playback/gstplaysink.c:2344
-#: gst/playback/gstplaysink.c:2369 gst/playback/gstplaysink.c:2401
-#: gst/playback/gstplaysink.c:2531 gst/playback/gstplaysink.c:2900
-#: gst/playback/gstplaysink.c:2909 gst/playback/gstplaysink.c:2918
-#: gst/playback/gstplaysink.c:2927 gst/playback/gstplaysink.c:4041
-#: gst/playback/gsturidecodebin.c:1390
+#: gst/encoding/gstencodebin.c:1474 gst/playback/gstplaybin2.c:3003
+#: gst/playback/gstplaysink.c:1364 gst/playback/gstplaysink.c:1381
+#: gst/playback/gstplaysink.c:1701 gst/playback/gstplaysink.c:2298
+#: gst/playback/gstplaysink.c:2347 gst/playback/gstplaysink.c:2362
+#: gst/playback/gstplaysink.c:2387 gst/playback/gstplaysink.c:2419
+#: gst/playback/gstplaysink.c:2549 gst/playback/gstplaysink.c:2921
+#: gst/playback/gstplaysink.c:2930 gst/playback/gstplaysink.c:2939
+#: gst/playback/gstplaysink.c:2948 gst/playback/gstplaysink.c:4083
+#: gst/playback/gstplaysinkconvertbin.c:116
+#: gst/playback/gstplaysinkconvertbin.c:136
+#: gst/playback/gsturidecodebin.c:1448
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1777
+#: gst/playback/gstdecodebin2.c:1776
+#, c-format
+msgid "A %s plugin is required to play this stream, but not installed."
+msgstr ""
+
+#: gst/playback/gstdecodebin2.c:1783
+msgid "Could not determine type of stream"
+msgstr ""
+
+#: gst/playback/gstdecodebin2.c:2450
+msgid "This appears to be a text file"
+msgstr ""
+
+#: gst/playback/gstplaybin2.c:4963
+msgid "Could not create \"uridecodebin\" element."
+msgstr ""
+
+#: gst/playback/gstplaysink.c:1794
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1781
+#: gst/playback/gstplaysink.c:1798
 msgid "The autovideosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1786
+#: gst/playback/gstplaysink.c:1803
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1790
+#: gst/playback/gstplaysink.c:1807
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1794
+#: gst/playback/gstplaysink.c:1811
 msgid "The autovideosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2317
+#: gst/playback/gstplaysink.c:2335
 msgid "Custom text sink element is not usable."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2649
+#: gst/playback/gstplaysink.c:2669
 msgid "No volume control found"
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2679
+#: gst/playback/gstplaysink.c:2699
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2683
+#: gst/playback/gstplaysink.c:2703
 msgid "The autoaudiosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2688
+#: gst/playback/gstplaysink.c:2708
 #, c-format
 msgid "Configured audiosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2692
+#: gst/playback/gstplaysink.c:2712
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2696
+#: gst/playback/gstplaysink.c:2716
 msgid "The autoaudiosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:3003 gst/playback/gstplaysink.c:3008
+#: gst/playback/gstplaysink.c:3024 gst/playback/gstplaysink.c:3029
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:880
+#: gst/playback/gsturidecodebin.c:930
 #, c-format
 msgid "No decoder available for type '%s'."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1303
+#: gst/playback/gsturidecodebin.c:1354
 msgid "No URI specified to play from."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1309
+#: gst/playback/gsturidecodebin.c:1360
 #, c-format
 msgid "Invalid URI \"%s\"."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1315
+#: gst/playback/gsturidecodebin.c:1367
 msgid "This stream type cannot be played yet."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1332
+#: gst/playback/gsturidecodebin.c:1385
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:2163
+#: gst/playback/gsturidecodebin.c:2238
 msgid "Source element is invalid."
 msgstr ""
 
@@ -201,12 +208,220 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr ""
 
+#: gst-libs/gst/audio/gstaudiobasesrc.c:854
+msgid "Can't record audio fast enough"
+msgstr ""
+
 #: gst-libs/gst/audio/gstaudiocdsrc.c:1646
 msgid "This CD has no audio tracks"
 msgstr ""
 
-#: gst-libs/gst/audio/gstaudiobasesrc.c:845
-msgid "Can't record audio fast enough"
+#: gst-libs/gst/pbutils/descriptions.c:92
+msgid "ID3 tag"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:93
+#: gst-libs/gst/pbutils/descriptions.c:94
+msgid "APE tag"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:95
+msgid "ICY internet radio"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:130
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:144
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:173
+#: gst-libs/gst/pbutils/descriptions.c:174
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:182
+msgid "Windows Media Speech"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:196
+msgid "CYUV Lossless"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:201
+msgid "FFMpeg v1"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:215
+msgid "Lossless MSZH"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:226
+msgid "Run-length encoding"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:275
+msgid "Subtitle"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:276
+msgid "MPL2 subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:277
+msgid "DKS subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:278
+msgid "QTtext subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:279
+msgid "Sami subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:280
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:283
+msgid "Kate subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:346
+#: gst-libs/gst/pbutils/descriptions.c:349
+#: gst-libs/gst/pbutils/descriptions.c:392
+msgid "Uncompressed video"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:354
+msgid "Uncompressed gray"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:380
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:389
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:442
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:663
+msgid "Uncompressed audio"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:669
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:756
+msgid "Audio CD source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:759
+msgid "DVD source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:762
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:766
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:774
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:846
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:848
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:850
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:857
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:859
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:897
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:899
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:901
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:908
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:910
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:942
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+#: gst-libs/gst/pbutils/missing-plugins.c:578
+msgid "Unknown source element"
+msgstr ""
+
+#: gst-libs/gst/pbutils/missing-plugins.c:581
+msgid "Unknown sink element"
+msgstr ""
+
+#: gst-libs/gst/pbutils/missing-plugins.c:584
+msgid "Unknown element"
+msgstr ""
+
+#: gst-libs/gst/pbutils/missing-plugins.c:587
+msgid "Unknown decoder element"
+msgstr ""
+
+#: gst-libs/gst/pbutils/missing-plugins.c:590
+msgid "Unknown encoder element"
+msgstr ""
+
+#: gst-libs/gst/pbutils/missing-plugins.c:595
+msgid "Plugin or element of unknown type"
 msgstr ""
 
 #: gst-libs/gst/tag/gsttagdemux.c:1055
@@ -421,211 +636,3 @@
 #: gst-libs/gst/tag/tags.c:194
 msgid "unparsed id3v2 tag frame"
 msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:76
-msgid "ID3 tag"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:77
-#: gst-libs/gst/pbutils/descriptions.c:78
-msgid "APE tag"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:79
-msgid "ICY internet radio"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:110
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:121
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:148
-#: gst-libs/gst/pbutils/descriptions.c:149
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:157
-msgid "Windows Media Speech"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:171
-msgid "CYUV Lossless"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:175
-msgid "FFMpeg v1"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:189
-msgid "Lossless MSZH"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:200
-msgid "Run-length encoding"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:247
-msgid "Subtitle"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:248
-msgid "MPL2 subtitle format"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:249
-msgid "DKS subtitle format"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:250
-msgid "QTtext subtitle format"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:251
-msgid "Sami subtitle format"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:252
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:254
-msgid "Kate subtitle format"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:317
-#: gst-libs/gst/pbutils/descriptions.c:320
-#: gst-libs/gst/pbutils/descriptions.c:363
-msgid "Uncompressed video"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:325
-msgid "Uncompressed gray"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:351
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:360
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:413
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:634
-msgid "Uncompressed audio"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:640
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:727
-msgid "Audio CD source"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:730
-msgid "DVD source"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:733
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:737
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:745
-#, c-format
-msgid "%s protocol source"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:817
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:819
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:821
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:828
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:830
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:868
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:870
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:872
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:879
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:881
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#: gst-libs/gst/pbutils/descriptions.c:913
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-#: gst-libs/gst/pbutils/missing-plugins.c:559
-msgid "Unknown source element"
-msgstr ""
-
-#: gst-libs/gst/pbutils/missing-plugins.c:562
-msgid "Unknown sink element"
-msgstr ""
-
-#: gst-libs/gst/pbutils/missing-plugins.c:565
-msgid "Unknown element"
-msgstr ""
-
-#: gst-libs/gst/pbutils/missing-plugins.c:568
-msgid "Unknown decoder element"
-msgstr ""
-
-#: gst-libs/gst/pbutils/missing-plugins.c:571
-msgid "Unknown encoder element"
-msgstr ""
-
-#: gst-libs/gst/pbutils/missing-plugins.c:576
-msgid "Plugin or element of unknown type"
-msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
deleted file mode 100644
index d2d312c..0000000
--- a/po/hr.gmo
+++ /dev/null
Binary files differ
diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644
index 0a43b6e..0000000
--- a/po/hr.po
+++ /dev/null
@@ -1,632 +0,0 @@
-# Translation of gst-plugins-base to Croatian.
-# This file is put in the public domain.
-# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-04-16 04:19+0200\n"
-"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-
-msgid "Could not open device for playback in mono mode."
-msgstr "Ne mogu otvoriti uređaj za reprodukciju u mono načinu."
-
-msgid "Could not open device for playback in stereo mode."
-msgstr "Ne mogu otvoriti uređaj za reprodukciju u stereo načinu."
-
-#, c-format
-msgid "Could not open device for playback in %d-channel mode."
-msgstr "Ne mogu otvoriti uređaj za reprodukciju u %d-kanalnom načinu."
-
-msgid ""
-"Could not open audio device for playback. Device is being used by another "
-"application."
-msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Uređaj trenutno koristi "
-"drugi program."
-
-msgid "Could not open audio device for playback."
-msgstr "Ne mogu otvoriti zvučni uređaj za reprodukciju."
-
-msgid "Error outputting to audio device. The device has been disconnected."
-msgstr ""
-
-msgid "Could not open device for recording in mono mode."
-msgstr "Ne mogu otvoriti uređaj za snimanje u mono načinu."
-
-msgid "Could not open device for recording in stereo mode."
-msgstr "Ne mogu otvoriti uređaj za snimanje u stereo načinu."
-
-#, c-format
-msgid "Could not open device for recording in %d-channel mode"
-msgstr "Ne mogu otvoriti uređaj za snimanje u %d-kanalnom načinu."
-
-msgid ""
-"Could not open audio device for recording. Device is being used by another "
-"application."
-msgstr ""
-"Ne mogu otvoriti zvučni uređaj za snimanje. Uređaj trenutno koristi drugi "
-"program."
-
-msgid "Could not open audio device for recording."
-msgstr "Ne mogu otvoriti zvučni uređaj za snimanje."
-
-msgid "Error recording from audio device. The device has been disconnected."
-msgstr ""
-
-msgid "Could not open CD device for reading."
-msgstr "Ne mogu otvoriti CD uređaj za čitanje."
-
-msgid "Could not seek CD."
-msgstr "Ne mogu pretraživati CD."
-
-msgid "Could not read CD."
-msgstr "Ne mogu čitati CD."
-
-msgid "Internal data stream error."
-msgstr "Greška unutarnjeg niza podataka."
-
-#, c-format
-msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
-"Potreban je priključak %s za reprodukciju ovog niza, ali nije instaliran."
-
-msgid "Could not determine type of stream"
-msgstr "Ne mogu odrediti vrstu niza"
-
-msgid "This appears to be a text file"
-msgstr "Ovo izgleda kao tekstualna datoteka"
-
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Nedostaje element „%s” - provjerite vašu GStreamer instalaciju."
-
-#, c-format
-msgid "Both autovideosink and %s elements are missing."
-msgstr "Nedostaju elementi autoaudiosink i %s."
-
-msgid "The autovideosink element is missing."
-msgstr "Nedostaje element autovideosink."
-
-#, c-format
-msgid "Configured videosink %s is not working."
-msgstr "Konfigurirani videosink %s ne radi."
-
-#, c-format
-msgid "Both autovideosink and %s elements are not working."
-msgstr "Elementi autovideosink i %s ne rade."
-
-msgid "The autovideosink element is not working."
-msgstr "Element autovideosink ne radi."
-
-msgid "Custom text sink element is not usable."
-msgstr "Prilagođeni element prijamnika teksta nije uporabljiv."
-
-msgid "No volume control found"
-msgstr "Nije pronađen kontroler glasnoće"
-
-#, c-format
-msgid "Both autoaudiosink and %s elements are missing."
-msgstr "Nedostaju elementi autoaudiosink i %s."
-
-msgid "The autoaudiosink element is missing."
-msgstr "Nedostaje element autoaudiosink."
-
-#, c-format
-msgid "Configured audiosink %s is not working."
-msgstr "Konfigurirani audiosink %s ne radi."
-
-#, c-format
-msgid "Both autoaudiosink and %s elements are not working."
-msgstr "Elementi autoaudiosink i %s ne rade."
-
-msgid "The autoaudiosink element is not working."
-msgstr "Element autoaudiosink ne radi."
-
-msgid "Can't play a text file without video or visualizations."
-msgstr ""
-"Ne mogu reproducirati tekstualnu datoteku bez videozapisa ili vizualizacija."
-
-#, c-format
-msgid "No decoder available for type '%s'."
-msgstr "Nema dostupnih dekodera za vrstu „%s”."
-
-msgid "No URI specified to play from."
-msgstr "Nije naveden URI za reprodukciju."
-
-#, c-format
-msgid "Invalid URI \"%s\"."
-msgstr "Neispravan URI „%s”."
-
-msgid "This stream type cannot be played yet."
-msgstr "Ova vrsta niza se još ne može reproducirati."
-
-#, c-format
-msgid "No URI handler implemented for \"%s\"."
-msgstr "Nije implementiran URI upravitelj za „%s”."
-
-msgid "Source element is invalid."
-msgstr "Izvorni element nije ispravan."
-
-#, c-format
-msgid "Error while sending data to \"%s:%d\"."
-msgstr "Greška pri slanju podataka u „%s:%d”."
-
-msgid "This CD has no audio tracks"
-msgstr "Ovaj CD nema zvučne pjesme"
-
-msgid "Can't record audio fast enough"
-msgstr "Ne mogu dovoljno brzo snimati zvuk"
-
-msgid "Failed to read tag: not enough data"
-msgstr "Nisam uspio čitati oznaku: nema dovoljno podataka"
-
-msgid "track ID"
-msgstr "ID pjesme"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz ID pjesme"
-
-msgid "artist ID"
-msgstr "ID izvođača"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz ID izvođača"
-
-msgid "album ID"
-msgstr "ID albuma"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz ID albuma"
-
-msgid "album artist ID"
-msgstr "ID izvođača albuma"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz ID izvođača albuma"
-
-msgid "track TRM ID"
-msgstr "TRM ID pjesme"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM ID"
-
-msgid "capturing shutter speed"
-msgstr "brzina blende"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Brzina prekidača korištena za snimanje slika, u sekundama"
-
-msgid "capturing focal ratio"
-msgstr "omjer fokusa"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Omjer fokusa (f-broj) korišten za snimanje slika"
-
-msgid "capturing focal length"
-msgstr "žarišna duljina"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Žarišna duljina leće korištene za snimanje slika, u mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "omjer digitalnog uvećavanja"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Omjer digitalnog uvećavanja korišten za snimanje slika"
-
-msgid "capturing iso speed"
-msgstr "iso brzina"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "ISO brzina korištena za snimanje slika"
-
-msgid "capturing exposure program"
-msgstr "program ekspozicije"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Program ekspozicije korišten za snimanje slika"
-
-msgid "capturing exposure mode"
-msgstr "način ekspozicije"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Način ekspozicije korišten za snimanje slika"
-
-msgid "capturing exposure compensation"
-msgstr "kompenzacija ekspozicije"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Kompenzacija ekspozicije korištena za snimanje slika"
-
-msgid "capturing scene capture type"
-msgstr "vrsta snimanja scene"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Način snimanja scene korišten za snimanje slika"
-
-msgid "capturing gain adjustment"
-msgstr "korekcija pojačanja"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Ukupna korekcija pojačanja primijenjena na sliku"
-
-msgid "capturing white balance"
-msgstr "balans bijele boje"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Način balansa bijele boje postavljen za snimanje slika"
-
-msgid "capturing contrast"
-msgstr "kontrast"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Upute za obradu kontrasta primijenjene za snimanje slika"
-
-msgid "capturing saturation"
-msgstr "zasićenje"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Upute za obradu zasićenja primijenjene za snimanje slika"
-
-msgid "capturing sharpness"
-msgstr "oštrina"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Upute za obradu oštrine primijenjene za snimanje slika"
-
-msgid "capturing flash fired"
-msgstr "uključivanje bljeskalice"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Je li se uključila bljeskalica za snimanje slike"
-
-msgid "capturing flash mode"
-msgstr "način bljeskalice"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Odabrani način bljeskalice za snimanje slike"
-
-msgid "capturing metering mode"
-msgstr "način mjerenja"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Način mjerenja korišten pri određivanju ekspozicije za snimanje slike"
-
-msgid "capturing source"
-msgstr "izvor"
-
-msgid "The source or type of device used for the capture"
-msgstr "Izvor ili vrsta uređaja korištena za snimanje"
-
-msgid "image horizontal ppi"
-msgstr "vodoravni ppi slike"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Ciljana vodoravna gustoća piksela medija (slike/videozapisa) u ppi"
-
-msgid "image vertical ppi"
-msgstr "okomiti ppi slike"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Ciljana okomita gustoća piksela medija (slike/videozapisa) u ppi"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
-
-msgid "ID3 tag"
-msgstr "ID3 oznaka"
-
-msgid "APE tag"
-msgstr "APE oznaka"
-
-msgid "ICY internet radio"
-msgstr "ICY internetski radio"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
-
-msgid "Run-length encoding"
-msgstr "Run-length kodiranje"
-
-msgid "Subtitle"
-msgstr ""
-
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "TMPlayer oblik titlova"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Sami oblik titlova"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Kate oblik titlova"
-
-msgid "Sami subtitle format"
-msgstr "Sami oblik titlova"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer oblik titlova"
-
-msgid "Kate subtitle format"
-msgstr "Kate oblik titlova"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Nekomprimirani YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Uncompressed Gray Image"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nekomprimirani YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nekomprimirani paletizirani %d-bitni %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 inačica %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Nekomprimirani YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Sirovi %d-bitni PCM zvuk"
-
-msgid "Audio CD source"
-msgstr "Audio CD izvor"
-
-msgid "DVD source"
-msgstr "DVD izvor"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Real Time Streaming Protocol (RTSP) izvor"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Izvor Microsoft Media Server (MMS) protokola"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Izvor %s protokola"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s video RTP uklonitelj opterećenja"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s audio RTP uklonitelj opterećenja"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP uklonitelj opterećenja"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s demultipleksor"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s dekoder"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s video RTP opteretitelj"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s audio RTP opteretitelj"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP opteretitelj"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s multipleksor"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s koder"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer element %s"
-
-msgid "Unknown source element"
-msgstr "Nepoznat element izvora"
-
-msgid "Unknown sink element"
-msgstr "Nepoznat element prijamnika"
-
-msgid "Unknown element"
-msgstr "Nepoznat element"
-
-msgid "Unknown decoder element"
-msgstr "Nepoznat element dekodera"
-
-msgid "Unknown encoder element"
-msgstr "Nepoznat element kodera"
-
-msgid "Plugin or element of unknown type"
-msgstr "Priključak ili element nepoznate vrste"
-
-#~ msgid "Master"
-#~ msgstr "Glavni"
-
-#~ msgid "Bass"
-#~ msgstr "Niski"
-
-#~ msgid "Treble"
-#~ msgstr "Visoki"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Synth"
-#~ msgstr "Sintetizator"
-
-#~ msgid "Line-in"
-#~ msgstr "Ulazna linija"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "Microphone"
-#~ msgstr "Mikrofon"
-
-#~ msgid "PC Speaker"
-#~ msgstr "PC zvučnik"
-
-#~ msgid "Playback"
-#~ msgstr "Reprodukcija"
-
-#~ msgid "Capture"
-#~ msgstr "Snimanje"
-
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Ne mogu otvoriti vfs datoteku „%s” za pisanje: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Nije zadano ime datoteke"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Ne mogu zatvoriti vfs datoteku „%s”."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Greška pri pisanju u datoteku „%s”."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Neispravan URI titlova „%s”, titlovi su onemogućeni."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Još ne mogu reproducirati RTSP nizove."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Ne mogu stvoriti element „decodebin”."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Pronađen je samo niz titlova. Ili ste učitali datoteku titlova ili neku "
-#~ "drugu vrstu tekstualne datoteke, ili medijska datoteka nije prepoznata."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Nemate instaliran dekoder za upravljanje ovom datotekom. Trebate "
-#~ "instalirati potrebne priključke."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Ovo nije medijska datoteka"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Pronađen je niz titlova, ali nije video niz."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Nedostaju elementi autovideosink i xvimagesink."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Nedostaju elementi autoaudiosink i alsasink."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Greška pri slanju podataka gdp zaglavlja u „%s:%d”."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Greška pri slanju podataka gdp opterećenja „%s:%d”."
-
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Spajanje na %s:%d odbijeno."
-
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Nekomprimirani ravninski YUV 4:2:0"
-
-#~ msgid "Uncompressed planar YVU 4:2:0"
-#~ msgstr "Nekomprimirani ravninski YVU 4:2:0"
-
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Nekomprimirani pakirani YUV 4:2:2"
-
-#~ msgid "Uncompressed packed YUV 4:1:0"
-#~ msgstr "Nekomprimirani pakirani YUV 4:1:0"
-
-#~ msgid "Uncompressed packed YVU 4:1:0"
-#~ msgstr "Nekomprimirani pakirani YVU 4:1:0"
-
-#~ msgid "Uncompressed packed YUV 4:1:1"
-#~ msgstr "Nekomprimirani pakirani YUV 4:1:1"
-
-#~ msgid "Uncompressed packed YUV 4:4:4"
-#~ msgstr "Nekomprimirani pakirani YUV 4:4:4"
-
-#~ msgid "Uncompressed planar YUV 4:2:2"
-#~ msgstr "Nekomprimirani ravninski YUV 4:2:2"
-
-#~ msgid "Uncompressed planar YUV 4:1:1"
-#~ msgstr "Nekomprimirani ravninski YUV 4:1:1"
-
-#~ msgid "Uncompressed black and white Y-plane"
-#~ msgstr "Nekomprimirana crno-bijela Y-ravnina"
-
-#~ msgid "Raw PCM audio"
-#~ msgstr "Sirovi PCM zvuk"
-
-#~ msgid "Raw %d-bit floating-point audio"
-#~ msgstr "Sirovi %d-bitni zvuk s pomičnim zarezom"
-
-#~ msgid "Raw floating-point audio"
-#~ msgstr "Sirovi zvuk s pomičnim zarezom"
-
-#~ msgid "No device specified."
-#~ msgstr "Nije naveden uređaj."
-
-#~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Uređaj „%s” ne postoji."
-
-#~ msgid "Device \"%s\" is already being used."
-#~ msgstr "Uređaj „%s” se već koristi."
-
-#~ msgid "Could not open device \"%s\" for reading and writing."
-#~ msgstr "Ne mogu otvoriti uređaj „%s” za čitanje i pisanje."
diff --git a/po/hu.gmo b/po/hu.gmo
index a47499f..8c8127a 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index dfd28d2..3da3840 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -3,13 +3,13 @@
 # Copyright (C) 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 #
 # Laszlo Dvornik <dvornik@invitel.hu>, 2004.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2012.
+# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-11-29 14:05+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2010-11-03 02:48+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
 "Language: hu\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Rosetta-Export-Date: 2007-03-10 00:18+0000\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: KBabel 1.11.4\n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
 msgid "Could not open device for playback in mono mode."
@@ -79,6 +79,10 @@
 msgstr "Belső adatfolyam-hiba."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "A(z) „%s” elem hiányzik - ellenőrizze a Gstreamer telepítését."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Az adatfolyam lejátszásához egy %s bővítmény szükséges, de az nincs "
@@ -90,9 +94,9 @@
 msgid "This appears to be a text file"
 msgstr "Ez egy szövegfájlnak tűnik"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "A(z) „%s” elem hiányzik - ellenőrizze a Gstreamer telepítését."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nem hozható létre „decodebin” elem"
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -164,171 +168,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Hiba adatok küldése során a következőnek: „%s:%d”."
 
-msgid "This CD has no audio tracks"
-msgstr "Ez a CD nem rendelkezik hangsávokkal"
-
 msgid "Can't record audio fast enough"
 msgstr "Nem lehet elég gyorsan rögzíteni a hangot"
 
-msgid "Failed to read tag: not enough data"
-msgstr "A címke nem olvasható: nincs elég adat"
-
-msgid "track ID"
-msgstr "számazonosító"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz számazonosító"
-
-msgid "artist ID"
-msgstr "előadó-azonosító"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz előadó-azonosító"
-
-msgid "album ID"
-msgstr "Albumazonosító"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz albumazonosító"
-
-msgid "album artist ID"
-msgstr "Albumelőadó azonosítója"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albumelőadó azonosítója"
-
-msgid "track TRM ID"
-msgstr "szám TRM azonosítója"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz szám TRM azonosítója"
-
-msgid "capturing shutter speed"
-msgstr "felvétel zársebessége"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Kép felvételéhez használt zársebesség másodpercben"
-
-msgid "capturing focal ratio"
-msgstr "felvétel fókuszaránya"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "A kép felvételéhez használt fókuszarány (f-szám)"
-
-msgid "capturing focal length"
-msgstr "felvétel fókusztávolsága"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "A kép felvételéhez használt lencse fókusztávolsága mm-ben"
-
-msgid "capturing digital zoom ratio"
-msgstr "felvétel digitális nagyítási aránya"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "A kép felvételéhez használt digitális nagyítási arány"
-
-msgid "capturing iso speed"
-msgstr "felvétel ISO sebessége"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "A kép felvételéhez használt ISO sebesség"
-
-msgid "capturing exposure program"
-msgstr "felvétel expozíciós programja"
-
-msgid "The exposure program used when capturing an image"
-msgstr "A kép felvételéhez használt expozíciós program"
-
-msgid "capturing exposure mode"
-msgstr "felvétel expozíciós módja"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "A kép felvételéhez használt expozíciós mód"
-
-msgid "capturing exposure compensation"
-msgstr "felvétel expozíciós kompenzációja"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "A kép felvételéhez használt expozíciós kompenzáció"
-
-msgid "capturing scene capture type"
-msgstr "felvétel helyszínfelvételi módja"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "A kép felvételéhez használt helyszínfelvételi mód"
-
-msgid "capturing gain adjustment"
-msgstr "felvétel erősítésmódosítása"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "A képre alkalmazott általános erősítésmódosítás"
-
-msgid "capturing white balance"
-msgstr "felvétel fehéregyensúlya"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "A kép felvételéhez használt fehéregyensúlymód"
-
-msgid "capturing contrast"
-msgstr "felvétel kontrasztja"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "A kép felvételekor használt kontrasztfeldolgozás iránya"
-
-msgid "capturing saturation"
-msgstr "felvétel telítettsége"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "A kép felvételekor alkalmazott telítettségfeldolgozás iránya"
-
-msgid "capturing sharpness"
-msgstr "felvétel élessége"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "A kép felvételekor alkalmazott élességfeldolgozás iránya"
-
-msgid "capturing flash fired"
-msgstr "felvétel vakuja"
-
-msgid "If the flash fired while capturing an image"
-msgstr "A kép felvételéhez használt vaku"
-
-msgid "capturing flash mode"
-msgstr "felvétel vakumódja"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "A kép felvételéhez használt kijelölt vakumód"
-
-msgid "capturing metering mode"
-msgstr "felvétel mérési módja"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "A kép felvételekor az expozíció meghatározásához használt mérési mód"
-
-msgid "capturing source"
-msgstr "felvétel forrása"
-
-msgid "The source or type of device used for the capture"
-msgstr "A felvételhez használt forrás vagy eszköz típusa"
-
-msgid "image horizontal ppi"
-msgstr "kép vízszintes ppi"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "A média (kép/videó) tervezett vízszintes képpontsűrűsége ppi-ben"
-
-msgid "image vertical ppi"
-msgstr "kép függőleges ppi"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "A média (kép/videó) tervezett függőleges képpontsűrűsége ppi-ben"
-
-msgid "ID3v2 frame"
-msgstr "ID3v2 keret"
-
-msgid "unparsed id3v2 tag frame"
-msgstr "feldolgozatlan id3v2 címke keret"
+msgid "This CD has no audio tracks"
+msgstr "Ez a CD nem rendelkezik hangsávokkal"
 
 msgid "ID3 tag"
 msgstr "ID3 címke"
@@ -364,16 +208,19 @@
 msgstr "Műsorhossz-kódolás"
 
 msgid "Subtitle"
-msgstr "Felirat"
+msgstr ""
 
+#, fuzzy
 msgid "MPL2 subtitle format"
-msgstr "MPL2 feliratformátum"
+msgstr "TMPlayer feliratformátum"
 
+#, fuzzy
 msgid "DKS subtitle format"
-msgstr "DKS feliratformátum"
+msgstr "Sami feliratformátum"
 
+#, fuzzy
 msgid "QTtext subtitle format"
-msgstr "QTtext feliratformátum"
+msgstr "Kate feliratformátum"
 
 msgid "Sami subtitle format"
 msgstr "Sami feliratformátum"
@@ -384,30 +231,33 @@
 msgid "Kate subtitle format"
 msgstr "Kate feliratformátum"
 
+#, fuzzy
 msgid "Uncompressed video"
-msgstr "Tömörítetlen videó"
+msgstr "Tömörítetlen YUV"
 
+#, fuzzy
 msgid "Uncompressed gray"
-msgstr "Tömörítetlen szürke"
+msgstr "Tömörítetlen szürke kép"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Uncompressed %s YUV %s"
-msgstr "Tömörítetlen %s YUV %s"
+msgstr "Tömörítetlen YUV"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Uncompressed %s%d-bit %s"
-msgstr "Tömörítetlen, %s%d bites %s"
+msgstr "Tömörítetlen, palettás %d bites %s"
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr "DivX MPEG-4 %d. verzió"
 
+#, fuzzy
 msgid "Uncompressed audio"
-msgstr "Tömörítetlen hang"
+msgstr "Tömörítetlen YUV"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Nyers %d bites %s hang"
+msgstr "Nyers %d bites PCM hang"
 
 msgid "Audio CD source"
 msgstr "Hang CD forrás"
@@ -487,6 +337,168 @@
 msgid "Plugin or element of unknown type"
 msgstr "Ismeretlen típusú bővítmény vagy elem"
 
+msgid "Failed to read tag: not enough data"
+msgstr "A címke nem olvasható: nincs elég adat"
+
+msgid "track ID"
+msgstr "számazonosító"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz számazonosító"
+
+msgid "artist ID"
+msgstr "előadó-azonosító"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz előadó-azonosító"
+
+msgid "album ID"
+msgstr "Albumazonosító"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz albumazonosító"
+
+msgid "album artist ID"
+msgstr "Albumelőadó azonosítója"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz albumelőadó azonosítója"
+
+msgid "track TRM ID"
+msgstr "szám TRM azonosítója"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz szám TRM azonosítója"
+
+msgid "capturing shutter speed"
+msgstr "felvétel zársebessége"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Kép felvételéhez használt zársebesség másodpercben"
+
+msgid "capturing focal ratio"
+msgstr "felvétel fókuszaránya"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "A kép felvételéhez használt fókuszarány (f-szám)"
+
+msgid "capturing focal length"
+msgstr "felvétel fókusztávolsága"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "A kép felvételéhez használt lencse fókusztávolsága mm-ben"
+
+msgid "capturing digital zoom ratio"
+msgstr "felvétel digitális nagyítási aránya"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "A kép felvételéhez használt digitális nagyítási arány"
+
+msgid "capturing iso speed"
+msgstr "felvétel ISO sebessége"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "A kép felvételéhez használt ISO sebesség"
+
+msgid "capturing exposure program"
+msgstr "felvétel expozíciós programja"
+
+msgid "The exposure program used when capturing an image"
+msgstr "A kép felvételéhez használt expozíciós program"
+
+msgid "capturing exposure mode"
+msgstr "felvétel expozíciós módja"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "A kép felvételéhez használt expozíciós mód"
+
+#, fuzzy
+msgid "capturing exposure compensation"
+msgstr "felvétel expozíciós módja"
+
+#, fuzzy
+msgid "The exposure compensation used when capturing an image"
+msgstr "A kép felvételéhez használt expozíciós mód"
+
+msgid "capturing scene capture type"
+msgstr "felvétel helyszínfelvételi módja"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "A kép felvételéhez használt helyszínfelvételi mód"
+
+msgid "capturing gain adjustment"
+msgstr "felvétel erősítésmódosítása"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "A képre alkalmazott általános erősítésmódosítás"
+
+msgid "capturing white balance"
+msgstr "felvétel fehéregyensúlya"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "A kép felvételéhez használt fehéregyensúlymód"
+
+msgid "capturing contrast"
+msgstr "felvétel kontrasztja"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "A kép felvételekor használt kontrasztfeldolgozás iránya"
+
+msgid "capturing saturation"
+msgstr "felvétel telítettsége"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "A kép felvételekor alkalmazott telítettségfeldolgozás iránya"
+
+msgid "capturing sharpness"
+msgstr "felvétel élessége"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "A kép felvételekor alkalmazott élességfeldolgozás iránya"
+
+msgid "capturing flash fired"
+msgstr "felvétel vakuja"
+
+msgid "If the flash fired while capturing an image"
+msgstr "A kép felvételéhez használt vaku"
+
+msgid "capturing flash mode"
+msgstr "felvétel vakumódja"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "A kép felvételéhez használt kijelölt vakumód"
+
+msgid "capturing metering mode"
+msgstr "felvétel mérési módja"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "A kép felvételekor az expozíció meghatározásához használt mérési mód"
+
+msgid "capturing source"
+msgstr "felvétel forrása"
+
+msgid "The source or type of device used for the capture"
+msgstr "A felvételhez használt forrás vagy eszköz típusa"
+
+msgid "image horizontal ppi"
+msgstr "kép vízszintes ppi"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "A média (kép/videó) tervezett vízszintes képpontsűrűsége ppi-ben"
+
+msgid "image vertical ppi"
+msgstr "kép függőleges ppi"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "A média (kép/videó) tervezett függőleges képpontsűrűsége ppi-ben"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Fő hangerő"
 
@@ -520,60 +532,6 @@
 #~ msgid "Capture"
 #~ msgstr "Felvétel"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Nem lehet írásra megnyitni a(z) „%s” vfs-fájlt: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Nincs fájlnév megadva"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Nem lehet bezárni a(z) „%s” vfs-fájlt."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Hiba a(z) „%s” fájl írása közben."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Érvénytelen felirat URI: „%s”, a feliratok letiltva."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Az RTSP adatfolyamok még nem játszhatók le."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nem hozható létre „decodebin” elem"
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Csak egy feliratfolyam észlelhető. Vagy egy feliratfájlt vagy más "
-#~ "szövegfájlt tölt be, vagy a médiafájl nem ismerhető fel."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Nincs telepítve a fájl kezeléséhez szükséges dekódoló. Lehetséges, hogy "
-#~ "telepítenie kell a szükséges bővítményeket."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Ez nem egy médiafájl"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Egy feliratfolyam felismerve, de nincs videofolyam."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Mind az autovideosink, mind az xvimagesink elemek hiányoznak."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Az autoaudiosink és az alsasink elem is hiányzik."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Hiba a gdp fejlécadatok küldésekor a következőnek: „%s:%d”."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Hiba a gdp küldeményadatok elküldésekor a következőnek: „%s:%d”."
-
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "A kapcsolat visszautasítva a következőhöz: %s:%d."
 
@@ -616,6 +574,51 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Nyers lebegőpontos hang"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Nem lehet írásra megnyitni a(z) „%s” vfs-fájlt: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Nincs fájlnév megadva"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Nem lehet bezárni a(z) „%s” vfs-fájlt."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Hiba a(z) „%s” fájl írása közben."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Érvénytelen felirat URI: „%s”, a feliratok letiltva."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Az RTSP adatfolyamok még nem játszhatók le."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Csak egy feliratfolyam észlelhető. Vagy egy feliratfájlt vagy más "
+#~ "szövegfájlt tölt be, vagy a médiafájl nem ismerhető fel."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Nincs telepítve a fájl kezeléséhez szükséges dekódoló. Lehetséges, hogy "
+#~ "telepítenie kell a szükséges bővítményeket."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Ez nem egy médiafájl"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Egy feliratfolyam felismerve, de nincs videofolyam."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Mind az autovideosink, mind az xvimagesink elemek hiányoznak."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Az autoaudiosink és az alsasink elem is hiányzik."
+
 #~ msgid "No device specified."
 #~ msgstr "Nincs megadva eszköz."
 
@@ -627,3 +630,9 @@
 
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Nem lehet olvasásra és írásra megnyitni az eszközt („%s”)."
+
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Hiba a gdp fejlécadatok küldésekor a következőnek: „%s:%d”."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Hiba a gdp küldeményadatok elküldésekor a következőnek: „%s:%d”."
diff --git a/po/id.gmo b/po/id.gmo
index b71c1e0..7abb1c1 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 9834f62..33bb3a1 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2012-01-28 11:31+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -74,6 +74,10 @@
 msgstr "Galat arus data internal."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Elemen '%s' hilang - cek instalasi GStreamer anda."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "Plugin %s dibutuhkan untuk memutar arus ini, tapi tidak diinstal."
 
@@ -83,9 +87,9 @@
 msgid "This appears to be a text file"
 msgstr "Ini kelihatannya merupakan berkas teks"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Elemen '%s' hilang - cek instalasi GStreamer anda."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Tak dapat membuat elemen \"decodebin\""
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -157,173 +161,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Galat ketika mengirim data ke \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "CD ini tidak memiliki jalur audio"
-
 msgid "Can't record audio fast enough"
 msgstr "Tak dapat merekam audio cukup cepat"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Gagal membaca tanda: tak cukup data"
-
-msgid "track ID"
-msgstr "ID jalur"
-
-msgid "MusicBrainz track ID"
-msgstr "ID jalur MusicBrainz"
-
-msgid "artist ID"
-msgstr "ID artis"
-
-msgid "MusicBrainz artist ID"
-msgstr "ID artis MusicBrainz"
-
-msgid "album ID"
-msgstr "ID album"
-
-msgid "MusicBrainz album ID"
-msgstr "ID album MusicBrainz"
-
-msgid "album artist ID"
-msgstr "ID artis album"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ID artis album MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "ID TRM jalur"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ID TRM MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr "menangkap kecepatan rana"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Kecepatan rana digunakan saat menangkap gambar, dalam detik"
-
-msgid "capturing focal ratio"
-msgstr "menangkap bukaan"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Bukaan (angka-f) digunakan ketika menangkap gambar"
-
-msgid "capturing focal length"
-msgstr "menangkap panjang fokal"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Panjang fokal dari lensa digunakan ketika menangkap gambar, dalam mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "menangkap rasio pembesaran digital"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Rasio pembesaran digital digunakan ketika menangkap gambar"
-
-msgid "capturing iso speed"
-msgstr "menangkap kecepatan iso"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Kecepatan ISO digunakan menangkap gambar"
-
-msgid "capturing exposure program"
-msgstr "menangkap program pajanan"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Program pajanan digunakan ketika menangkap gambar"
-
-msgid "capturing exposure mode"
-msgstr "menangkap mode pajanan"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Mode pajanan digunakan ketika menangkap gambar"
-
-msgid "capturing exposure compensation"
-msgstr "menangkap kompensasi pajanan"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Kompensasi pajanan digunakan ketika menangkap gambar"
-
-msgid "capturing scene capture type"
-msgstr "menangkap tipe pengambilan scene"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Mode penangkapan scene digunakan ketika menangkap gambar"
-
-msgid "capturing gain adjustment"
-msgstr "menangkap penyesuaian bati"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Keseluruhan penyesuaian bati diterapkan pada gambar"
-
-msgid "capturing white balance"
-msgstr "menangkap white balance"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Pengaturan mode white balance ketika menangkap gambar"
-
-msgid "capturing contrast"
-msgstr "menangkap kontras"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Arah pemrosesan kontras diterapkan ketika menangkap gambar"
-
-msgid "capturing saturation"
-msgstr "menangkap saturasi"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Arah pemrosesan saturasi diterapkan ketika menangkap gambar"
-
-msgid "capturing sharpness"
-msgstr "menangkap ketajaman"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Arah pemrosesan ketajaman diterapkan ketika menangkap gambar"
-
-msgid "capturing flash fired"
-msgstr "menangkap blitz ditembakkan"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Apakah blitz ditembakkan ketika menangkap gambar"
-
-msgid "capturing flash mode"
-msgstr "menangkap mode blitz"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Mode blitz terpilih ketika menangkap gambar"
-
-msgid "capturing metering mode"
-msgstr "menangkap mode meter"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Mode meter digunakan untuk menentukan pajanan ketika menangkap gambar"
-
-msgid "capturing source"
-msgstr "menangkap sumber"
-
-msgid "The source or type of device used for the capture"
-msgstr "Sumber atau tipe divais digunakan untuk menangkap"
-
-msgid "image horizontal ppi"
-msgstr "ppi horizontal gambar"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-"Kerapatan pixel horizontal yang diinginkan media (gambar/video) dalam ppi"
-
-msgid "image vertical ppi"
-msgstr "ppi vertikal gambar"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-"Kerapatan pixel vertikal yang diinginkan media (gambar/video) dalam ppi"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "CD ini tidak memiliki jalur audio"
 
 msgid "ID3 tag"
 msgstr "Tag ID3"
@@ -488,6 +330,168 @@
 msgid "Plugin or element of unknown type"
 msgstr "Plugin atau elemen dari tipe yang tak diketahui"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Gagal membaca tanda: tak cukup data"
+
+msgid "track ID"
+msgstr "ID jalur"
+
+msgid "MusicBrainz track ID"
+msgstr "ID jalur MusicBrainz"
+
+msgid "artist ID"
+msgstr "ID artis"
+
+msgid "MusicBrainz artist ID"
+msgstr "ID artis MusicBrainz"
+
+msgid "album ID"
+msgstr "ID album"
+
+msgid "MusicBrainz album ID"
+msgstr "ID album MusicBrainz"
+
+msgid "album artist ID"
+msgstr "ID artis album"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ID artis album MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "ID TRM jalur"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ID TRM MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr "menangkap kecepatan rana"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Kecepatan rana digunakan saat menangkap gambar, dalam detik"
+
+msgid "capturing focal ratio"
+msgstr "menangkap bukaan"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Bukaan (angka-f) digunakan ketika menangkap gambar"
+
+msgid "capturing focal length"
+msgstr "menangkap panjang fokal"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Panjang fokal dari lensa digunakan ketika menangkap gambar, dalam mm"
+
+msgid "capturing digital zoom ratio"
+msgstr "menangkap rasio pembesaran digital"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Rasio pembesaran digital digunakan ketika menangkap gambar"
+
+msgid "capturing iso speed"
+msgstr "menangkap kecepatan iso"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Kecepatan ISO digunakan menangkap gambar"
+
+msgid "capturing exposure program"
+msgstr "menangkap program pajanan"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Program pajanan digunakan ketika menangkap gambar"
+
+msgid "capturing exposure mode"
+msgstr "menangkap mode pajanan"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Mode pajanan digunakan ketika menangkap gambar"
+
+msgid "capturing exposure compensation"
+msgstr "menangkap kompensasi pajanan"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "Kompensasi pajanan digunakan ketika menangkap gambar"
+
+msgid "capturing scene capture type"
+msgstr "menangkap tipe pengambilan scene"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Mode penangkapan scene digunakan ketika menangkap gambar"
+
+msgid "capturing gain adjustment"
+msgstr "menangkap penyesuaian bati"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Keseluruhan penyesuaian bati diterapkan pada gambar"
+
+msgid "capturing white balance"
+msgstr "menangkap white balance"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Pengaturan mode white balance ketika menangkap gambar"
+
+msgid "capturing contrast"
+msgstr "menangkap kontras"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Arah pemrosesan kontras diterapkan ketika menangkap gambar"
+
+msgid "capturing saturation"
+msgstr "menangkap saturasi"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Arah pemrosesan saturasi diterapkan ketika menangkap gambar"
+
+msgid "capturing sharpness"
+msgstr "menangkap ketajaman"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Arah pemrosesan ketajaman diterapkan ketika menangkap gambar"
+
+msgid "capturing flash fired"
+msgstr "menangkap blitz ditembakkan"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Apakah blitz ditembakkan ketika menangkap gambar"
+
+msgid "capturing flash mode"
+msgstr "menangkap mode blitz"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Mode blitz terpilih ketika menangkap gambar"
+
+msgid "capturing metering mode"
+msgstr "menangkap mode meter"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Mode meter digunakan untuk menentukan pajanan ketika menangkap gambar"
+
+msgid "capturing source"
+msgstr "menangkap sumber"
+
+msgid "The source or type of device used for the capture"
+msgstr "Sumber atau tipe divais digunakan untuk menangkap"
+
+msgid "image horizontal ppi"
+msgstr "ppi horizontal gambar"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+"Kerapatan pixel horizontal yang diinginkan media (gambar/video) dalam ppi"
+
+msgid "image vertical ppi"
+msgstr "ppi vertikal gambar"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+"Kerapatan pixel vertikal yang diinginkan media (gambar/video) dalam ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Utama"
 
@@ -539,9 +543,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Arus RTSP belum dapat dimainkan."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Tak dapat membuat elemen \"decodebin\""
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/it.gmo b/po/it.gmo
index 05d3523..71bb835 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index dad2d4c..19308e1 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-04-28 14:27+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -78,6 +78,12 @@
 msgstr "Errore interno nel flusso di dati."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+"Risulta mancante l'elemento «%s» - verificare la propria installazione di "
+"GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Per riprodurre questo stream è richiesto un plugin %s, che però non risulta "
@@ -89,11 +95,9 @@
 msgid "This appears to be a text file"
 msgstr "Questo sembra essere un file di testo"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
-"Risulta mancante l'elemento «%s» - verificare la propria installazione di "
-"GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Impossibile creare l'elemento «decodebin»."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -165,173 +169,12 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Errore durante l'invio dei dati a \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Questo CD non presenta alcuna traccia audio"
-
 # una parafrasi, ma mi pare non perda...  -Luca
 msgid "Can't record audio fast enough"
 msgstr "Impossibile registrare l'audio a velocità adeguata"
 
-# dati non sufficienti... mah
-msgid "Failed to read tag: not enough data"
-msgstr "Lettura del tag non riuscita: non abbastanza dati"
-
-msgid "track ID"
-msgstr "ID traccia"
-
-msgid "MusicBrainz track ID"
-msgstr "ID MusicBrainz della traccia"
-
-msgid "artist ID"
-msgstr "ID artista"
-
-msgid "MusicBrainz artist ID"
-msgstr "ID MusicBrainz dell'artista"
-
-msgid "album ID"
-msgstr "ID album"
-
-msgid "MusicBrainz album ID"
-msgstr "ID MusicBrainz dell'album"
-
-msgid "album artist ID"
-msgstr "ID artista dell'album"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ID MusicBrainz dell'artista dell'album"
-
-msgid "track TRM ID"
-msgstr "ID TRM della traccia"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ID MusicBrainz del TRM"
-
-msgid "capturing shutter speed"
-msgstr ""
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure compensation"
-msgstr ""
-
-msgid "The exposure compensation used when capturing an image"
-msgstr ""
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr ""
-
-msgid "The white balance mode set when capturing an image"
-msgstr ""
-
-msgid "capturing contrast"
-msgstr ""
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr ""
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr ""
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr ""
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Questo CD non presenta alcuna traccia audio"
 
 msgid "ID3 tag"
 msgstr "Tag ID3"
@@ -506,6 +349,167 @@
 msgid "Plugin or element of unknown type"
 msgstr "Plugin o elemento di tipo sconosciuto"
 
+# dati non sufficienti... mah
+msgid "Failed to read tag: not enough data"
+msgstr "Lettura del tag non riuscita: non abbastanza dati"
+
+msgid "track ID"
+msgstr "ID traccia"
+
+msgid "MusicBrainz track ID"
+msgstr "ID MusicBrainz della traccia"
+
+msgid "artist ID"
+msgstr "ID artista"
+
+msgid "MusicBrainz artist ID"
+msgstr "ID MusicBrainz dell'artista"
+
+msgid "album ID"
+msgstr "ID album"
+
+msgid "MusicBrainz album ID"
+msgstr "ID MusicBrainz dell'album"
+
+msgid "album artist ID"
+msgstr "ID artista dell'album"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ID MusicBrainz dell'artista dell'album"
+
+msgid "track TRM ID"
+msgstr "ID TRM della traccia"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ID MusicBrainz del TRM"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Principale"
 
@@ -606,9 +610,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Non è ancora possibile riprodurre gli stream RTSP."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Impossibile creare l'elemento «decodebin»."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/ja.gmo b/po/ja.gmo
index c3f6ff8..145d763 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index c7bb1f5..1b56395 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-10-25 10:27+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -76,6 +76,12 @@
 msgstr "内部データストリームエラー"
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+"エレメント '%s' が見つかりません - GStreamer のインストールが失敗している可能"
+"性があります"
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "%s プラグインはこのストリームを再生するのに必要ですが、インストールされていま"
@@ -87,11 +93,9 @@
 msgid "This appears to be a text file"
 msgstr "これはテキストファイルのようです"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
-"エレメント '%s' が見つかりません - GStreamer のインストールが失敗している可能"
-"性があります"
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "\"decodebin\" エレメントを作成できません。"
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -163,173 +167,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "データを \"%s:%d\" へ送信中にエラーが発生しました"
 
-msgid "This CD has no audio tracks"
-msgstr "この CD にはオーディオトラックがありません"
-
 msgid "Can't record audio fast enough"
 msgstr "十分に速くオーディオを録音することができません"
 
-msgid "Failed to read tag: not enough data"
-msgstr "タグの読み込みに失敗しました: データが十分にありません"
-
-msgid "track ID"
-msgstr "トラック ID"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz トラック ID"
-
-msgid "artist ID"
-msgstr "アーティスト ID"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz アーティスト ID"
-
-msgid "album ID"
-msgstr "アルバム ID"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz アルバム ID"
-
-msgid "album artist ID"
-msgstr "アルバムアーティスト ID"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz アルバムアーティスト ID"
-
-msgid "track TRM ID"
-msgstr "トラック TRM ID"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM ID"
-
-msgid "capturing shutter speed"
-msgstr "キャプチャーのシャッタースピード"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "イメージをキャプチャするときに使われるシャッタースピード (秒)"
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-#, fuzzy
-msgid "capturing exposure compensation"
-msgstr "キャプチャーの彩度"
-
-#, fuzzy
-msgid "The exposure compensation used when capturing an image"
-msgstr "イメージをキャプチャするときのホワイトバランスモードセット"
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr "キャプチャーのホワイトバランス"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "イメージをキャプチャするときのホワイトバランスモードセット"
-
-msgid "capturing contrast"
-msgstr "キャプチャーのコントラスト"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr "キャプチャーの彩度"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr "キャプチャーのシャープネス"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr "キャプチャーのソース"
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "この CD にはオーディオトラックがありません"
 
 msgid "ID3 tag"
 msgstr "ID3 タグ"
@@ -494,6 +336,168 @@
 msgid "Plugin or element of unknown type"
 msgstr "不明な種類のプラグインまたはエレメント"
 
+msgid "Failed to read tag: not enough data"
+msgstr "タグの読み込みに失敗しました: データが十分にありません"
+
+msgid "track ID"
+msgstr "トラック ID"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz トラック ID"
+
+msgid "artist ID"
+msgstr "アーティスト ID"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz アーティスト ID"
+
+msgid "album ID"
+msgstr "アルバム ID"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz アルバム ID"
+
+msgid "album artist ID"
+msgstr "アルバムアーティスト ID"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz アルバムアーティスト ID"
+
+msgid "track TRM ID"
+msgstr "トラック TRM ID"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM ID"
+
+msgid "capturing shutter speed"
+msgstr "キャプチャーのシャッタースピード"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "イメージをキャプチャするときに使われるシャッタースピード (秒)"
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+#, fuzzy
+msgid "capturing exposure compensation"
+msgstr "キャプチャーの彩度"
+
+#, fuzzy
+msgid "The exposure compensation used when capturing an image"
+msgstr "イメージをキャプチャするときのホワイトバランスモードセット"
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr "キャプチャーのホワイトバランス"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "イメージをキャプチャするときのホワイトバランスモードセット"
+
+msgid "capturing contrast"
+msgstr "キャプチャーのコントラスト"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr "キャプチャーの彩度"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr "キャプチャーのシャープネス"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr "キャプチャーのソース"
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "マスター"
 
@@ -587,9 +591,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP ストリームをまだ再生できません"
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "\"decodebin\" エレメントを作成できません。"
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/lt.gmo b/po/lt.gmo
index 6fffaff..dc3b1ee 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 4aabc01..f26c2e7 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.15.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2008-03-07 23:43+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -78,6 +78,10 @@
 msgstr "Vidinė duomenų srauto klaida."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Trūksta elemento „%s“ - patikrinkite GStreamer įdiegimą."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "Šiam srautui groti reikalingas %s įskiepis, bet jis nėra įdiegtas."
 
@@ -88,9 +92,9 @@
 msgid "This appears to be a text file"
 msgstr "Atrodo, kad šis failas tekstinis"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Trūksta elemento „%s“ - patikrinkite GStreamer įdiegimą."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nepavyko sukurti „decodebin“ elemento."
 
 #, fuzzy, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -166,171 +170,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Klaida siunčiant duomenis į „%s:%d“."
 
-msgid "This CD has no audio tracks"
-msgstr "Šiame CD nėra audio takelių"
-
 msgid "Can't record audio fast enough"
 msgstr "Nepakankamai greitai įrašomas garsas"
 
-msgid "Failed to read tag: not enough data"
-msgstr ""
-
-msgid "track ID"
-msgstr "takelio ID"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz takelio ID"
-
-msgid "artist ID"
-msgstr "atlikėjo ID"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz atlikėjo ID"
-
-msgid "album ID"
-msgstr "albumo ID"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz albumo ID"
-
-msgid "album artist ID"
-msgstr "albumo atlikėjo ID"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albumo atlikėjo ID"
-
-msgid "track TRM ID"
-msgstr "takelio TRM ID"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM ID"
-
-msgid "capturing shutter speed"
-msgstr ""
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure compensation"
-msgstr ""
-
-msgid "The exposure compensation used when capturing an image"
-msgstr ""
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr ""
-
-msgid "The white balance mode set when capturing an image"
-msgstr ""
-
-msgid "capturing contrast"
-msgstr ""
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr ""
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr ""
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr ""
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Šiame CD nėra audio takelių"
 
 msgid "ID3 tag"
 msgstr "ID3 žymė"
@@ -496,6 +340,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Nežinomo tipo įskiepis ar elementas"
 
+msgid "Failed to read tag: not enough data"
+msgstr ""
+
+msgid "track ID"
+msgstr "takelio ID"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz takelio ID"
+
+msgid "artist ID"
+msgstr "atlikėjo ID"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz atlikėjo ID"
+
+msgid "album ID"
+msgstr "albumo ID"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz albumo ID"
+
+msgid "album artist ID"
+msgstr "albumo atlikėjo ID"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz albumo atlikėjo ID"
+
+msgid "track TRM ID"
+msgstr "takelio TRM ID"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM ID"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Pagrindinis"
 
@@ -589,9 +593,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP srautai dar negali būti rodomi."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nepavyko sukurti „decodebin“ elemento."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/lv.gmo b/po/lv.gmo
index 60dd6ce..b4078d9 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 2adfdbb..7a7d276 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-09-02 12:02-0000\n"
 "Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -81,6 +81,10 @@
 msgstr "Iekšējās datu plūsmas kļūda."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Trūkst elements \"%s\" - pārbaudiet savu GStreamer instalāciju."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Nepieciešamas %s spraudnis, lai atskaņotu šo plūsmu, bet tas nav instalēts."
@@ -91,9 +95,9 @@
 msgid "This appears to be a text file"
 msgstr "Tiek atpazīts kā teksta fails"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Trūkst elements \"%s\" - pārbaudiet savu GStreamer instalāciju."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nevarēja izveidot \"decodebin\" elementu."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -165,171 +169,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Radās kļūda nosūtot datus uz \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Šajā CD nav neviena audio celiņa"
-
 msgid "Can't record audio fast enough"
 msgstr "Nevar ierakstīt audio pietiekami ātri"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Neizdevās nolasīt atzīmi: nepietiek datu"
-
-msgid "track ID"
-msgstr "celiņa ID"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz celiņa ID"
-
-msgid "artist ID"
-msgstr "izpildītāja ID"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz izpildītāja ID"
-
-msgid "album ID"
-msgstr "albuma ID"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz albuma ID"
-
-msgid "album artist ID"
-msgstr "albuma izpildītāja ID"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albuma izpildītāja ID"
-
-msgid "track TRM ID"
-msgstr "celiņa TRM ID"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM ID"
-
-msgid "capturing shutter speed"
-msgstr "Tveršanā aizvara ātrums"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Attēla tveršanā izmantotais aizvara ātrums sekundēs"
-
-msgid "capturing focal ratio"
-msgstr "tveršanā fokusa attiecība"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Attēla tveršanā izmantotā fokusa attiecība (f-cipars)"
-
-msgid "capturing focal length"
-msgstr "tveršanā fokusa attālums"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Attēla tveršanā izmantotā lēcas fokusa attālums milimetros"
-
-msgid "capturing digital zoom ratio"
-msgstr "tveršanā digitālais tālummaiņas attiecība"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Attēla tveršanā izmantotais digitālās tālummaiņas attiecība"
-
-msgid "capturing iso speed"
-msgstr "tveršanā iso ātrums"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Attēla tveršanā izmantotais ISO ātrums"
-
-msgid "capturing exposure program"
-msgstr "tveršanā atseguma programma"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Attēla tveršanā izmantotā atseguma programma"
-
-msgid "capturing exposure mode"
-msgstr "tveršanā atseguma režīms"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Attēla tveršanā izmantotais atseguma režīms"
-
-msgid "capturing exposure compensation"
-msgstr "tveršanā atseguma kompensācija"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Attēla tveršanā izmantotais atseguma kompensācija"
-
-msgid "capturing scene capture type"
-msgstr "tveršanā ainas tveršanas tips"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Attēla tveršanā izmantotas ainas tveršanas režīms"
-
-msgid "capturing gain adjustment"
-msgstr "tveršanā pieaguma korekcija"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Attēla tveršanā izmantotais vispārējā pieauguma korekcija"
-
-msgid "capturing white balance"
-msgstr "tveršanas baltais balanss"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Lietotais baltais balanss virziens attēla tveršanā"
-
-msgid "capturing contrast"
-msgstr "tveršanā kontrasts"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Lietotais kontrasts virziens attēla tveršanā"
-
-msgid "capturing saturation"
-msgstr "tveršanā piesātinājums"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Lietotais piesātinājuma virziens attēla tveršanā"
-
-msgid "capturing sharpness"
-msgstr "tveršanā asumss"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Lietotais asuma virziens attēla tveršanā"
-
-msgid "capturing flash fired"
-msgstr "tveršanā zibsnis palaists"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Ja zibsnis palaists attēla tveršanā"
-
-msgid "capturing flash mode"
-msgstr "tveršanā zibšņa režīms"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Atlasītais zibšņa režīms priekš attēla tveršanas"
-
-msgid "capturing metering mode"
-msgstr "tveršanā mērīšanas režīms"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Mērīšanas režīms, lai noteiktu atsegumu attēla tveršanai"
-
-msgid "capturing source"
-msgstr "tveršanā avots"
-
-msgid "The source or type of device used for the capture"
-msgstr "Tveršanas avots vai iekārtas tips"
-
-msgid "image horizontal ppi"
-msgstr "attēla horizontālais ppi"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Medija (attēls/video) domātā horizontālā pikseļu blīvums ppi"
-
-msgid "image vertical ppi"
-msgstr "attēla vertikālais ppi"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Medija (attēls/video) domātā vertikālā pikseļu blīvums ppi"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Šajā CD nav neviena audio celiņa"
 
 msgid "ID3 tag"
 msgstr "ID3 atzīme"
@@ -494,6 +338,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Nezināma veida spraudnis vai elements"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Neizdevās nolasīt atzīmi: nepietiek datu"
+
+msgid "track ID"
+msgstr "celiņa ID"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz celiņa ID"
+
+msgid "artist ID"
+msgstr "izpildītāja ID"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz izpildītāja ID"
+
+msgid "album ID"
+msgstr "albuma ID"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz albuma ID"
+
+msgid "album artist ID"
+msgstr "albuma izpildītāja ID"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz albuma izpildītāja ID"
+
+msgid "track TRM ID"
+msgstr "celiņa TRM ID"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM ID"
+
+msgid "capturing shutter speed"
+msgstr "Tveršanā aizvara ātrums"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Attēla tveršanā izmantotais aizvara ātrums sekundēs"
+
+msgid "capturing focal ratio"
+msgstr "tveršanā fokusa attiecība"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Attēla tveršanā izmantotā fokusa attiecība (f-cipars)"
+
+msgid "capturing focal length"
+msgstr "tveršanā fokusa attālums"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Attēla tveršanā izmantotā lēcas fokusa attālums milimetros"
+
+msgid "capturing digital zoom ratio"
+msgstr "tveršanā digitālais tālummaiņas attiecība"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Attēla tveršanā izmantotais digitālās tālummaiņas attiecība"
+
+msgid "capturing iso speed"
+msgstr "tveršanā iso ātrums"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Attēla tveršanā izmantotais ISO ātrums"
+
+msgid "capturing exposure program"
+msgstr "tveršanā atseguma programma"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Attēla tveršanā izmantotā atseguma programma"
+
+msgid "capturing exposure mode"
+msgstr "tveršanā atseguma režīms"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Attēla tveršanā izmantotais atseguma režīms"
+
+msgid "capturing exposure compensation"
+msgstr "tveršanā atseguma kompensācija"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "Attēla tveršanā izmantotais atseguma kompensācija"
+
+msgid "capturing scene capture type"
+msgstr "tveršanā ainas tveršanas tips"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Attēla tveršanā izmantotas ainas tveršanas režīms"
+
+msgid "capturing gain adjustment"
+msgstr "tveršanā pieaguma korekcija"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Attēla tveršanā izmantotais vispārējā pieauguma korekcija"
+
+msgid "capturing white balance"
+msgstr "tveršanas baltais balanss"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Lietotais baltais balanss virziens attēla tveršanā"
+
+msgid "capturing contrast"
+msgstr "tveršanā kontrasts"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Lietotais kontrasts virziens attēla tveršanā"
+
+msgid "capturing saturation"
+msgstr "tveršanā piesātinājums"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Lietotais piesātinājuma virziens attēla tveršanā"
+
+msgid "capturing sharpness"
+msgstr "tveršanā asumss"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Lietotais asuma virziens attēla tveršanā"
+
+msgid "capturing flash fired"
+msgstr "tveršanā zibsnis palaists"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Ja zibsnis palaists attēla tveršanā"
+
+msgid "capturing flash mode"
+msgstr "tveršanā zibšņa režīms"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Atlasītais zibšņa režīms priekš attēla tveršanas"
+
+msgid "capturing metering mode"
+msgstr "tveršanā mērīšanas režīms"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Mērīšanas režīms, lai noteiktu atsegumu attēla tveršanai"
+
+msgid "capturing source"
+msgstr "tveršanā avots"
+
+msgid "The source or type of device used for the capture"
+msgstr "Tveršanas avots vai iekārtas tips"
+
+msgid "image horizontal ppi"
+msgstr "attēla horizontālais ppi"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "Medija (attēls/video) domātā horizontālā pikseļu blīvums ppi"
+
+msgid "image vertical ppi"
+msgstr "attēla vertikālais ppi"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Medija (attēls/video) domātā vertikālā pikseļu blīvums ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Galvenais"
 
@@ -548,9 +552,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP plūsmas pagaidām nevar tikt atskaņotas."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nevarēja izveidot \"decodebin\" elementu."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/nb.gmo b/po/nb.gmo
index 6b74f77..fdd25d7 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 77311e5..96bdf92 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,23 +1,20 @@
 # Norwegian bokmaal translation of gst-utils.
 # This file is put in the public domain.
-#
 # Kjartan Maraas <kmaraas@gnome.org>, 2004-2010.
-# Johnny A. Solbu <johnny@solbu.net>, 2012,
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-12-21 21:43+0100\n"
-"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2010-10-24 21:44+0200\n"
+"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
-"Language: nb_NO\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.5.4\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Kunne ikke åpne enheten for avspilling i mono-modus."
@@ -25,16 +22,15 @@
 msgid "Could not open device for playback in stereo mode."
 msgstr "Kunne ikke åpne enheten for avspilling i stereo-modus."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Could not open device for playback in %d-channel mode."
-msgstr "Kunne ikke åpne enhet for avspilling i %d-kanalmodus."
+msgstr "Kunne ikke åpne CD-enheten for lesing."
 
+#, fuzzy
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
-msgstr ""
-"Kunne ikke åpne lydenheten for avspilling. Enheten brukes av et annet "
-"program."
+msgstr "Kunne ikke åpne CD-enheten for lesing."
 
 msgid "Could not open audio device for playback."
 msgstr "Kunne ikke åpne lydenheten for avspilling."
@@ -42,21 +38,23 @@
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
 
+#, fuzzy
 msgid "Could not open device for recording in mono mode."
-msgstr "Kunne ikke åpne enhet for opptak i monomodus."
+msgstr "Kunne ikke åpne CD-enheten for lesing."
 
+#, fuzzy
 msgid "Could not open device for recording in stereo mode."
-msgstr "Kunne ikke åpne enhet for opptak i stereomodus"
+msgstr "Kunne ikke åpne CD-enheten for lesing."
 
-#, c-format
+#, fuzzy, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "Kunne ikke åpne enhet for opptak i %d-kanalmodus."
+msgstr "Kunne ikke åpne CD-enheten for lesing."
 
+#, fuzzy
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
 "application."
-msgstr ""
-"Kunne ikke åpne lydenheten for opptak. Enheten brukes av et annet program."
+msgstr "Kunne ikke åpne CD-enheten for lesing."
 
 msgid "Could not open audio device for recording."
 msgstr "Kunne ikke åpne lydenheten for opptak."
@@ -77,6 +75,10 @@
 msgstr "Intern feil i datastrøm."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Et %s-tillegg kreves for å spille av denne strømmen, men det er ikke "
@@ -88,58 +90,57 @@
 msgid "This appears to be a text file"
 msgstr "Dette ser ut som en tekstfil"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Mangler elementet «%s» - kontroller GStreamer-installasjonen."
+msgid "Could not create \"uridecodebin\" element."
+msgstr ""
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
-msgstr "Både autobildesluk- og %s-elementer mangler."
+msgstr ""
 
 msgid "The autovideosink element is missing."
-msgstr "Autobildeslukelementet mangler."
+msgstr ""
 
 #, c-format
 msgid "Configured videosink %s is not working."
-msgstr "Konfigurert bildesluk %s fungerer ikke."
+msgstr ""
 
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
-msgstr "Både autobildesluk- og %s-elementer virker ikke."
+msgstr ""
 
 msgid "The autovideosink element is not working."
-msgstr "autobildeslukelementet fungerer ikke."
+msgstr ""
 
 msgid "Custom text sink element is not usable."
-msgstr "Tilpasset tekstslukelement er ikke brukbart."
+msgstr ""
 
 msgid "No volume control found"
 msgstr "Fant ikke volumkontroll"
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
-msgstr "Både autolydsluk- og %s-elementer mangler."
+msgstr ""
 
 msgid "The autoaudiosink element is missing."
-msgstr "Autolydslukelementet mangler"
+msgstr ""
 
 #, c-format
 msgid "Configured audiosink %s is not working."
-msgstr "Konfigurert lydsluk %s fungerer ikke."
+msgstr ""
 
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
-msgstr "Både autolydsluk- og %s-elementer virker ikke."
+msgstr ""
 
 msgid "The autoaudiosink element is not working."
-msgstr "Autolydslukelementet fungerer ikke."
+msgstr ""
 
 msgid "Can't play a text file without video or visualizations."
-msgstr "Kan ikke spille av en tekstfil uten film eller visualiseringer"
+msgstr ""
 
 #, c-format
 msgid "No decoder available for type '%s'."
-msgstr "Ingen dekoder tilgjengelig for type «%s»."
+msgstr ""
 
 msgid "No URI specified to play from."
 msgstr "Ingen URI for avspilling oppgitt."
@@ -149,336 +150,175 @@
 msgstr "Ugyldig URI «%s»."
 
 msgid "This stream type cannot be played yet."
-msgstr "Dennestrømtypen kan ikke spilles ennå."
+msgstr ""
 
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
-msgstr "Ingen URI-håndterer er implementert for «%s»."
+msgstr ""
 
 msgid "Source element is invalid."
 msgstr "Kildeelement er ugyldig."
 
 #, c-format
 msgid "Error while sending data to \"%s:%d\"."
-msgstr "Feil ved sending av data til «%s:%d»."
+msgstr ""
+
+msgid "Can't record audio fast enough"
+msgstr ""
 
 msgid "This CD has no audio tracks"
 msgstr "Denne CDen har ingen lydspor"
 
-msgid "Can't record audio fast enough"
-msgstr "Kan ikke ta opp lyd rask nok"
-
-msgid "Failed to read tag: not enough data"
-msgstr "Klarte ikke å lese merket: Ikke nok data"
-
-msgid "track ID"
-msgstr "spor-ID"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz spor-id"
-
-msgid "artist ID"
-msgstr "artist-ID"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz artist-id"
-
-msgid "album ID"
-msgstr "album-ID"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz album-id"
-
-msgid "album artist ID"
-msgstr "albumartist-id"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albumartist-id"
-
-msgid "track TRM ID"
-msgstr "spor TRM-id"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM-id"
-
-msgid "capturing shutter speed"
-msgstr "opptakslukkerhastighet"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Lukkehastighet som benyttes når du tar et bilde, i sekunder"
-
-msgid "capturing focal ratio"
-msgstr "opptaksbrennvidder"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Brennvidden (f-tall) som benyttes når du tar bildet"
-
-msgid "capturing focal length"
-msgstr "opptaksbrennvidde"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Brennvidden til objektivet som brukes når du tar bildet, i mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "fanger digitalt zoomforhold"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Digitalt zoomforhold som benyttes når du tar et bilde"
-
-msgid "capturing iso speed"
-msgstr "opptaks-ISO-hastighet"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "ISO-hastigheten som benyttes når du tar et bilde"
-
-msgid "capturing exposure program"
-msgstr "opptakseksponeringsprogram"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Eksponeringsprogrammet som benyttes når du tar et bilde"
-
-msgid "capturing exposure mode"
-msgstr "opptakseksponeringsmodus"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Eksponeringsmodusen som benyttes når du tar et bilde"
-
-msgid "capturing exposure compensation"
-msgstr "opptakseksponeringskompensasjon"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Eksponeringskompensasjonen som benyttes når du tar et bilde"
-
-msgid "capturing scene capture type"
-msgstr "opptaksscene opptakstype"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Sceneopptaksmodus som anvendes når du tar et bilde"
-
-msgid "capturing gain adjustment"
-msgstr "opptaksstyrkejustering"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Den samlede styrkejusteringen som anvendes på et bilde"
-
-msgid "capturing white balance"
-msgstr "opptakshvitbalanse"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Hvitbalanseinnstillingen når du tar et bilde"
-
-msgid "capturing contrast"
-msgstr "opptakskontrast"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Retningen av kontrastbehandling som anvendes når du tar et bilde"
-
-msgid "capturing saturation"
-msgstr "opptaksmetning"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Retningen av metningsbehandling som anvendes når du tar et bilde"
-
-msgid "capturing sharpness"
-msgstr "opptaksskarphet"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Retningen av skarphetsbehandling som anvendes når du tar et bilde"
-
-msgid "capturing flash fired"
-msgstr "opptaksblits avfyrt"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Om blitsen avfyres mens du tar et bilde"
-
-msgid "capturing flash mode"
-msgstr "opptaksblitsmodus"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Valgt blitsmodus mens du tar et bilde"
-
-msgid "capturing metering mode"
-msgstr "opptaksmålemodus"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-"Målemodus som brukes mens man bestemmer eksponeringen for å ta et bilde"
-
-msgid "capturing source"
-msgstr "opptakskilde"
-
-msgid "The source or type of device used for the capture"
-msgstr "Kilden eller type enhet som brukes for opptak"
-
-msgid "image horizontal ppi"
-msgstr "Bilde horisontalt (ppi)"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Media (bilde/video) beregnet horisontal pikseltetthet i ppi"
-
-msgid "image vertical ppi"
-msgstr "Bilde vertikalt (ppi)"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Media (bilde/video) beregnet vertikal piksel tetthet i ppi"
-
-msgid "ID3v2 frame"
-msgstr "ID3v2-ramme"
-
-msgid "unparsed id3v2 tag frame"
-msgstr "Utolket id3v2 merkeramme"
-
 msgid "ID3 tag"
-msgstr "ID3-merke"
+msgstr ""
 
 msgid "APE tag"
-msgstr "APE-merke"
+msgstr ""
 
 msgid "ICY internet radio"
-msgstr "ICY internettradio"
+msgstr ""
 
 msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgstr ""
 
 msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgstr ""
 
 msgid "Lossless True Audio (TTA)"
-msgstr "Tapsfri True Audio (TTA)"
+msgstr ""
 
 msgid "Windows Media Speech"
-msgstr "Windows Mediatale"
+msgstr ""
 
 msgid "CYUV Lossless"
-msgstr "CYUV tapsfritt"
+msgstr ""
 
 msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
+msgstr ""
 
 msgid "Lossless MSZH"
-msgstr "Tapsfritt MSZH"
+msgstr ""
 
 msgid "Run-length encoding"
-msgstr "Kjørelengde-koding"
+msgstr ""
 
 msgid "Subtitle"
-msgstr "Undertekst"
+msgstr ""
 
 msgid "MPL2 subtitle format"
-msgstr "MPL2 undertekstformat"
+msgstr ""
 
 msgid "DKS subtitle format"
-msgstr "DKS undertekstformat"
+msgstr ""
 
 msgid "QTtext subtitle format"
-msgstr "QTtext undertekstformat"
+msgstr ""
 
 msgid "Sami subtitle format"
-msgstr "Samisk undertekstformat"
+msgstr ""
 
 msgid "TMPlayer subtitle format"
-msgstr "TMPlayer undertekstformat"
+msgstr ""
 
 msgid "Kate subtitle format"
-msgstr "Kate undertekstformat"
+msgstr ""
 
 msgid "Uncompressed video"
-msgstr "Ukomprimert video"
+msgstr ""
 
 msgid "Uncompressed gray"
-msgstr "Ukomprimert grå"
+msgstr ""
 
 #, c-format
 msgid "Uncompressed %s YUV %s"
-msgstr "Ukomprimert %s YUV %s"
+msgstr ""
 
 #, c-format
 msgid "Uncompressed %s%d-bit %s"
-msgstr "Ukomprimert %s%d-bit %s"
+msgstr ""
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4-versjon %d"
+msgstr ""
 
 msgid "Uncompressed audio"
-msgstr "Ukomprimert lyd"
+msgstr ""
 
 #, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Rå %d-bit %s-lyd"
+msgstr ""
 
 msgid "Audio CD source"
-msgstr "Lyd-CD-kilde"
+msgstr ""
 
 msgid "DVD source"
-msgstr "DVD-kilde"
+msgstr ""
 
 msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Sanntidsdirekteavspillingsprotokoll (RTSP) kilde"
+msgstr ""
 
 msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protokollkilde"
+msgstr ""
 
 #, c-format
 msgid "%s protocol source"
-msgstr "%s protokollkilde"
+msgstr ""
 
 #, c-format
 msgid "%s video RTP depayloader"
-msgstr "%s bilde RTP-depayloader"
+msgstr ""
 
 #, c-format
 msgid "%s audio RTP depayloader"
-msgstr "%s lyd RTP-depayloader"
+msgstr ""
 
 #, c-format
 msgid "%s RTP depayloader"
-msgstr "%s RTP-depayloader"
+msgstr ""
 
 #, c-format
 msgid "%s demuxer"
-msgstr "%s demultiplekser"
+msgstr ""
 
 #, c-format
 msgid "%s decoder"
-msgstr "%s dekoder"
+msgstr ""
 
 #, c-format
 msgid "%s video RTP payloader"
-msgstr "%s bilde RTP-payloader"
+msgstr ""
 
 #, c-format
 msgid "%s audio RTP payloader"
-msgstr "%s lyd RTP-payloader"
+msgstr ""
 
 #, c-format
 msgid "%s RTP payloader"
-msgstr "%s RTP-payloader"
+msgstr ""
 
 #, c-format
 msgid "%s muxer"
-msgstr "%s multiplekser"
+msgstr ""
 
 #, c-format
 msgid "%s encoder"
-msgstr "%s koder"
+msgstr ""
 
 #, c-format
 msgid "GStreamer element %s"
-msgstr "GStreamer-element %s"
+msgstr ""
 
 msgid "Unknown source element"
-msgstr "Ukjent kildeelement"
+msgstr ""
 
 msgid "Unknown sink element"
-msgstr "Ukjent slukelement"
+msgstr ""
 
 msgid "Unknown element"
-msgstr "Ukjent element"
+msgstr ""
 
 msgid "Unknown decoder element"
-msgstr "Ukjent dekoderelement"
+msgstr ""
 
 msgid "Unknown encoder element"
 msgstr "Ukjent element for koding"
@@ -486,6 +326,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Tillegg eller element av ukjent type"
 
+msgid "Failed to read tag: not enough data"
+msgstr ""
+
+msgid "track ID"
+msgstr "spor-ID"
+
+msgid "MusicBrainz track ID"
+msgstr ""
+
+msgid "artist ID"
+msgstr "artist-ID"
+
+msgid "MusicBrainz artist ID"
+msgstr ""
+
+msgid "album ID"
+msgstr "album-ID"
+
+msgid "MusicBrainz album ID"
+msgstr ""
+
+msgid "album artist ID"
+msgstr ""
+
+msgid "MusicBrainz album artist ID"
+msgstr ""
+
+msgid "track TRM ID"
+msgstr ""
+
+msgid "MusicBrainz TRM ID"
+msgstr ""
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Hovedvolum"
 
@@ -537,92 +537,17 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP-strømmer kan ikke spilles av ennå."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Kunne ikke opprette elementet «decodebin»"
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Kun en undertekststrøm ble oppdaget. Enten laster du inn en undertekstfil "
-#~ "eller en annen type tekstfil, eller mediafilen ble ikke gjenkjent."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Du har ikke en dekoder installert for å håndtere denne filen. Du må "
-#~ "kanskje installere de nødvendige programtilleggene."
-
 #~ msgid "This is not a media file"
 #~ msgstr "Dette er ikke en mediefil"
 
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "En undertekststrøm ble oppdaget, men ingen videostrøm."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Både autobildesluk- og xvbildeslukelementene mangler."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Både autolydsluk- og alsaslukelementene mangler."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Feil ved sending av GDP overskriftsdata til «%s:%d»"
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Feil ved sending av GDP nyttelast data til «%s:%d»"
-
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Forbindelse til %s:%d ble avvist"
-
-#~ msgid "Uncompressed planar YUV 4:2:0"
-#~ msgstr "Ukomprimert pakket YUV 4:2:0"
-
-#~ msgid "Uncompressed planar YVU 4:2:0"
-#~ msgstr "Ukomprimert pakket YVU 4:2:0"
-
-#~ msgid "Uncompressed packed YUV 4:2:2"
-#~ msgstr "Ukomprimert pakket YUV 4:2:2"
-
-#~ msgid "Uncompressed packed YUV 4:1:0"
-#~ msgstr "Ukomprimert pakket YUV 4:1:0"
-
-#~ msgid "Uncompressed packed YVU 4:1:0"
-#~ msgstr "Ukomprimert pakket YVU 4:1:0"
-
-#~ msgid "Uncompressed packed YUV 4:1:1"
-#~ msgstr "Ukomprimert pakket YUV 4:1:1"
-
-#~ msgid "Uncompressed packed YUV 4:4:4"
-#~ msgstr "Ukomprimert pakket YUV 4:4:4"
-
-#~ msgid "Uncompressed planar YUV 4:2:2"
-#~ msgstr "Ukomprimert planar YUV 4:2:2"
-
-#~ msgid "Uncompressed planar YUV 4:1:1"
-#~ msgstr "Ukomprimert planar YUV 4:1:1"
-
-#~ msgid "Uncompressed black and white Y-plane"
-#~ msgstr "Ukomprimert svart og hvitt Y-flate"
-
-#~ msgid "Raw PCM audio"
-#~ msgstr "Rå PCM-lyd"
-
-#~ msgid "Raw %d-bit floating-point audio"
-#~ msgstr "Rå %d-bit flyttallslyd"
-
-#~ msgid "Raw floating-point audio"
-#~ msgstr "Rå flyttallslyd"
-
 #~ msgid "No device specified."
 #~ msgstr "Ingen enhet oppgitt."
 
 #~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Enheten «%s» eksisterer ikke."
+#~ msgstr "Enhet «%s» eksisterer ikke."
 
 #~ msgid "Device \"%s\" is already being used."
-#~ msgstr "Enheten «%s» er allerede i bruk."
+#~ msgstr "Enhet «%s» er allerede i bruk."
 
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Kunne ikke åpne enhet «%s» for lesing og skriving."
diff --git a/po/nl.gmo b/po/nl.gmo
index 3496ebf..2f5d5b8 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 3cde453..d283548 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,20 +1,20 @@
-# translation of gst-plugins-base-1.0.3.po to Dutch
+# translation of gst-plugins-base-0.10.32.2.po to Dutch
 # This file is put in the public domain.
 #
-# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011, 2012.
+# Freek de Kruijf <f.de.kruijf@gmail.com>, 2007, 2008, 2009, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-11-29 22:19+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-27 00:12+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 "Language: nl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.1\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 msgid "Could not open device for playback in mono mode."
@@ -76,6 +76,10 @@
 msgstr "Interne fout in gegevensstroom."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Ontbrekend element '%s' - controleer de instalatie van uw GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Een %s plugin is vereist voor het afspelen van deze gegevens, echter deze is "
@@ -87,9 +91,9 @@
 msgid "This appears to be a text file"
 msgstr "Dit lijkt een tekstbestand te zijn"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Ontbrekend element '%s' - controleer de instalatie van uw GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Kan \"decodebin\"-element niet aanmaken."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -161,11 +165,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Fout bij het zenden van gegevens naar \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Kan geluid niet snel genoeg opslaan"
+
 msgid "This CD has no audio tracks"
 msgstr "Deze CD heeft geen audiotracks"
 
-msgid "Can't record audio fast enough"
-msgstr "Kan geluid niet snel genoeg opslaan"
+msgid "ID3 tag"
+msgstr "ID3-tag"
+
+msgid "APE tag"
+msgstr "APE-tag"
+
+msgid "ICY internet radio"
+msgstr "ICY-internetradio"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Lossless"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Lossless MSZH"
+
+msgid "Run-length encoding"
+msgstr "Run-length encoding (RLE)"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "TMPlayer ondertitelformaat"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Sami ondertitelformaat"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Kate ondertitelformaat"
+
+msgid "Sami subtitle format"
+msgstr "Sami ondertitelformaat"
+
+msgid "TMPlayer subtitle format"
+msgstr "TMPlayer ondertitelformaat"
+
+msgid "Kate subtitle format"
+msgstr "Kate ondertitelformaat"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Niet-gecomprimeerde YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Niet-gecomprimeerde grijze afbeelding"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Niet-gecomprimeerde YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Niet-gecomprimeerde, gepaletteerde %d-bits %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 versie %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Niet-gecomprimeerde YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Raw %d-bits PCM-audio"
+
+msgid "Audio CD source"
+msgstr "Audio-CD-bron"
+
+msgid "DVD source"
+msgstr "DVD-bron"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Real Time Streaming Protocol (RTSP)-bron"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Microsoft Media Server (MMS) protocol-bron"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protocol-bron"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "%s video-RTP-depayloader"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "%s audio-RTP-depayloader"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "%s RTP-depayloader"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "%s demuxer"
+
+#, c-format
+msgid "%s decoder"
+msgstr "%s decoder"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "%s video-RTP-payloader"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "%s audio-RTP-payloader"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "%s RTP-payloader"
+
+#, c-format
+msgid "%s muxer"
+msgstr "%s muxer"
+
+#, c-format
+msgid "%s encoder"
+msgstr "%s encoder"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "GStreamer element %s"
+
+msgid "Unknown source element"
+msgstr "Onbekend bronelement"
+
+msgid "Unknown sink element"
+msgstr "Onbekend bestemmingselement"
+
+msgid "Unknown element"
+msgstr "Onbekend element"
+
+msgid "Unknown decoder element"
+msgstr "Onbekend decoder-element"
+
+msgid "Unknown encoder element"
+msgstr "Onbekend encoder-element"
+
+msgid "Plugin or element of unknown type"
+msgstr "Plugin of element van onbekend type"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Lezen van tag is mislukt: niet genoeg gegevens"
@@ -331,167 +498,10 @@
 "Voorgenomen verticale pixeldichtheid van medium (afbeelding/video) in ppi"
 
 msgid "ID3v2 frame"
-msgstr "ID3v2-frame"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "niet-ontleed id3v2-tagframe"
-
-msgid "ID3 tag"
-msgstr "ID3-tag"
-
-msgid "APE tag"
-msgstr "APE-tag"
-
-msgid "ICY internet radio"
-msgstr "ICY-internetradio"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
-
-msgid "Run-length encoding"
-msgstr "Run-length encoding (RLE)"
-
-msgid "Subtitle"
-msgstr "Ondertitel"
-
-msgid "MPL2 subtitle format"
-msgstr "MPl2 ondertitelformaat"
-
-msgid "DKS subtitle format"
-msgstr "DKS-ondertitelformaat"
-
-msgid "QTtext subtitle format"
-msgstr "QTtext-ondertitelformaat"
-
-msgid "Sami subtitle format"
-msgstr "Sami ondertitelformaat"
-
-msgid "TMPlayer subtitle format"
-msgstr "TMPlayer ondertitelformaat"
-
-msgid "Kate subtitle format"
-msgstr "Kate ondertitelformaat"
-
-msgid "Uncompressed video"
-msgstr "Niet-gecomprimeerde video"
-
-msgid "Uncompressed gray"
-msgstr "Niet-gecomprimeerd grijs"
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Niet-gecomprimeerd %s YUV %s"
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Niet-gecomprimeerd %s%d-bits %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 versie %d"
-
-msgid "Uncompressed audio"
-msgstr "Niet-gecomprimeerde audio"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Ruw %d-bits %s-audio"
-
-msgid "Audio CD source"
-msgstr "Audio-CD-bron"
-
-msgid "DVD source"
-msgstr "DVD-bron"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Real Time Streaming Protocol (RTSP)-bron"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Microsoft Media Server (MMS) protocol-bron"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "%s protocol-bron"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "%s video-RTP-depayloader"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "%s audio-RTP-depayloader"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s RTP-depayloader"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "%s demuxer"
-
-#, c-format
-msgid "%s decoder"
-msgstr "%s decoder"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "%s video-RTP-payloader"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "%s audio-RTP-payloader"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s RTP-payloader"
-
-#, c-format
-msgid "%s muxer"
-msgstr "%s muxer"
-
-#, c-format
-msgid "%s encoder"
-msgstr "%s encoder"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "GStreamer element %s"
-
-msgid "Unknown source element"
-msgstr "Onbekend bronelement"
-
-msgid "Unknown sink element"
-msgstr "Onbekend bestemmingselement"
-
-msgid "Unknown element"
-msgstr "Onbekend element"
-
-msgid "Unknown decoder element"
-msgstr "Onbekend decoder-element"
-
-msgid "Unknown encoder element"
-msgstr "Onbekend encoder-element"
-
-msgid "Plugin or element of unknown type"
-msgstr "Plugin of element van onbekend type"
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "Master"
@@ -526,61 +536,6 @@
 #~ msgid "Capture"
 #~ msgstr "Opnemen"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Kon het VFS-bestand \"%s\" niet openen om te schrijven: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Geen bestandsnaam opgegeven"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Kan het VFS-bestand \"%s\" niet sluiten."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Fout bij het schrijven naar bestand \"%s\"."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Ongeldige ondertitel-URI \"%s\"; ondertitels zijn uitgezet."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "RTSP-gegevensstromen zijn nog niet af te spelen."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Kan \"decodebin\"-element niet aanmaken."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Er is alleen een ondertitelgegevensstroom gedetecteerd. Ofwel bent u een "
-#~ "ondertitelbestand of een ander type tekstbestand aan het laden, of het "
-#~ "mediabestand is niet herkend."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "U hebt geen decoder geïnstalleerd voor dit bestand. U moet mogelijk de "
-#~ "noodzakelijke plugins installeren."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Dit is geen mediabestand."
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Een ondertitelstroom is gedetecteerd, maar geen videostroom."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "De elementen 'autovideosink' en 'xvimagesink' ontbreken beide."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "De elementen 'autoaudiosink' en 'alsasink' ontbreken beide."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Fout tijdens het zenden van gdp-headergegevens naar \"%s:%d\"."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Fout tijdens het zenden van gdp-gegevens naar \"%s:%d\"."
-
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "Verbinding naar %s:%d is geweigerd."
 
@@ -623,6 +578,52 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Raw drijvendekomma-audio"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Kon het VFS-bestand \"%s\" niet openen om te schrijven: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Geen bestandsnaam opgegeven"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Kan het VFS-bestand \"%s\" niet sluiten."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Fout bij het schrijven naar bestand \"%s\"."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Ongeldige ondertitel-URI \"%s\"; ondertitels zijn uitgezet."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "RTSP-gegevensstromen zijn nog niet af te spelen."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Er is alleen een ondertitelgegevensstroom gedetecteerd. Ofwel bent u een "
+#~ "ondertitelbestand of een ander type tekstbestand aan het laden, of het "
+#~ "mediabestand is niet herkend."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "U hebt geen decoder geïnstalleerd voor dit bestand. U moet mogelijk de "
+#~ "noodzakelijke plugins installeren."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Dit is geen mediabestand."
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Een ondertitelstroom is gedetecteerd, maar geen videostroom."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "De elementen 'autovideosink' en 'xvimagesink' ontbreken beide."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "De elementen 'autoaudiosink' en 'alsasink' ontbreken beide."
+
 #~ msgid "No device specified."
 #~ msgstr "Geen apparaat opgegeven."
 
@@ -634,3 +635,9 @@
 
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Kan apparaat \"%s\" niet openen voor lezen en schrijven."
+
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Fout tijdens het zenden van gdp-headergegevens naar \"%s:%d\"."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Fout tijdens het zenden van gdp-gegevens naar \"%s:%d\"."
diff --git a/po/or.gmo b/po/or.gmo
index ca68c27..6d85f58 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 82ec31c..e1d625d 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
@@ -81,6 +81,10 @@
 msgstr ""
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 
@@ -91,9 +95,9 @@
 msgid "This appears to be a text file"
 msgstr ""
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "\"%s\" ଫାଇଲ ଲେଖିହେଲା ନାହିଁ."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -165,10 +169,167 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "\"%s\" ଫାଇଲ ବନ୍ଦ କରିବାରେ ତ୍ରୁଟି."
 
+msgid "Can't record audio fast enough"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
-msgid "Can't record audio fast enough"
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr ""
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Subtitle"
+msgstr ""
+
+msgid "MPL2 subtitle format"
+msgstr ""
+
+msgid "DKS subtitle format"
+msgstr ""
+
+msgid "QTtext subtitle format"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed video"
+msgstr ""
+
+msgid "Uncompressed gray"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+msgid "Uncompressed audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr ""
+
+msgid "DVD source"
+msgstr ""
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr ""
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr ""
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
 msgstr ""
 
 msgid "Failed to read tag: not enough data"
@@ -331,163 +492,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr ""
-
-msgid "APE tag"
-msgstr ""
-
-msgid "ICY internet radio"
-msgstr ""
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-msgid "Windows Media Speech"
-msgstr ""
-
-msgid "CYUV Lossless"
-msgstr ""
-
-msgid "FFMpeg v1"
-msgstr ""
-
-msgid "Lossless MSZH"
-msgstr ""
-
-msgid "Run-length encoding"
-msgstr ""
-
-msgid "Subtitle"
-msgstr ""
-
-msgid "MPL2 subtitle format"
-msgstr ""
-
-msgid "DKS subtitle format"
-msgstr ""
-
-msgid "QTtext subtitle format"
-msgstr ""
-
-msgid "Sami subtitle format"
-msgstr ""
-
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-msgid "Kate subtitle format"
-msgstr ""
-
-msgid "Uncompressed video"
-msgstr ""
-
-msgid "Uncompressed gray"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr ""
-
-msgid "Uncompressed audio"
-msgstr ""
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-msgid "Audio CD source"
-msgstr ""
-
-msgid "DVD source"
-msgstr ""
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-msgid "Unknown source element"
-msgstr ""
-
-msgid "Unknown sink element"
-msgstr ""
-
-msgid "Unknown element"
-msgstr ""
-
-msgid "Unknown decoder element"
-msgstr ""
-
-msgid "Unknown encoder element"
-msgstr ""
-
-msgid "Plugin or element of unknown type"
-msgstr ""
-
 #~ msgid "Bass"
 #~ msgstr "ଅନୁଚ୍ଚ ସ୍ବର"
 
@@ -544,10 +548,6 @@
 #~ msgstr "\"%s\" ଯନ୍ତ୍ର ପଢ଼ିବା ଓ ଲେଖିବା ପାଇଁ ଖୋଲିହେଲା ନାହିଁ."
 
 #, fuzzy
-#~ msgid "Could not create \"typefind\" element."
-#~ msgstr "\"%s\" ଫାଇଲ ଲେଖିହେଲା ନାହିଁ."
-
-#, fuzzy
 #~ msgid "No Temp directory specified."
 #~ msgstr "କୌଣସି ଯନ୍ତ୍ର ଉଲ୍ଲେଖିତ କରାଯାଇ ନାହିଁ."
 
diff --git a/po/pl.gmo b/po/pl.gmo
index 5a41c8e..c69deb9 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 53c7658..d3567bc 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,13 +1,13 @@
 # Polish translation for gst-plugins-base.
 # This file is distributed under the same license as the gst-plugins-base package.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2012.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-11-28 19:21+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-26 18:01+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
@@ -82,6 +82,10 @@
 msgstr "Błąd wewnętrzny strumienia danych."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Brak elementu '%s' - proszę sprawdzić instalację GStreamera."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Wtyczka %s jest wymagana do otworzenia tego strumienia, ale nie jest "
@@ -93,9 +97,9 @@
 msgid "This appears to be a text file"
 msgstr "To wygląda na plik tekstowy"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Brak elementu '%s' - proszę sprawdzić instalację GStreamera."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nie udało się utworzyć elementu \"decodebin\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -167,11 +171,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Błąd podczas wysyłania danych do \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Nie można zapisywać danych dźwiękowych wystarczająco szybko"
+
 msgid "This CD has no audio tracks"
 msgstr "Ta płyta CD nie ma ścieżek dźwiękowych"
 
-msgid "Can't record audio fast enough"
-msgstr "Nie można zapisywać danych dźwiękowych wystarczająco szybko"
+msgid "ID3 tag"
+msgstr "Znacznik ID3"
+
+msgid "APE tag"
+msgstr "Znacznik APE"
+
+msgid "ICY internet radio"
+msgstr "Radio internetowe ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Lossless (bezstratne CYUV)"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Lossless MSZH"
+
+msgid "Run-length encoding"
+msgstr "Kodowanie RLE"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Format podpisów TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Format podpisów Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Format podpisów Kate"
+
+msgid "Sami subtitle format"
+msgstr "Format podpisów Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Format podpisów TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Format podpisów Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Nieskompresowany YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Nieskompresowany obraz w szarości"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Nieskompresowany YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Nieskompresowany %d-bitowy %s z paletą"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 w wersji %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Nieskompresowany YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Surowe %d-bitowy dźwięk PCM"
+
+msgid "Audio CD source"
+msgstr "Źródło Audio CD"
+
+msgid "DVD source"
+msgstr "Źródło DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Źródło RTSP (Real Time Streaming Protocol)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Źródło protokołu MMS (Microsoft Media Server)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Źródło protokołu %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "Depayloader obrazu RTP %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "Depayloader dźwięku RTP %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "Depayloader RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Demuxer %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Dekoder %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "Payloader obrazu RTP %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "Payloader dźwięku RTP %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "Payloader RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Muxer %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Koder %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Element GStreamera %s"
+
+msgid "Unknown source element"
+msgstr "Nieznany element źródłowy"
+
+msgid "Unknown sink element"
+msgstr "Nieznany element pochłaniający"
+
+msgid "Unknown element"
+msgstr "Nieznany element"
+
+msgid "Unknown decoder element"
+msgstr "Nieznany element dekodujący"
+
+msgid "Unknown encoder element"
+msgstr "Nieznany element kodujący"
+
+msgid "Plugin or element of unknown type"
+msgstr "Wtyczka lub element nieznanego typu"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Nie udało się odczytać znacznika: za mało danych"
@@ -328,164 +495,146 @@
 msgstr "Rozdzielczość pionowa nośnika w pikselach na cal"
 
 msgid "ID3v2 frame"
-msgstr "ramka ID3v2"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "ramka znacznika id3v2"
+msgstr ""
 
-msgid "ID3 tag"
-msgstr "Znacznik ID3"
+#~ msgid "Master"
+#~ msgstr "Główny"
 
-msgid "APE tag"
-msgstr "Znacznik APE"
+#~ msgid "Bass"
+#~ msgstr "Niskie"
 
-msgid "ICY internet radio"
-msgstr "Radio internetowe ICY"
+#~ msgid "Treble"
+#~ msgstr "Wysokie"
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+#~ msgid "PCM"
+#~ msgstr "PCM"
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+#~ msgid "Synth"
+#~ msgstr "Syntezator"
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+#~ msgid "Line-in"
+#~ msgstr "Wejście"
 
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+#~ msgid "CD"
+#~ msgstr "CD"
 
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless (bezstratne CYUV)"
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
+#~ msgid "PC Speaker"
+#~ msgstr "Głośnik PC"
 
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
+#~ msgid "Playback"
+#~ msgstr "Odtwarzanie"
 
-msgid "Run-length encoding"
-msgstr "Kodowanie RLE"
+#~ msgid "Capture"
+#~ msgstr "Nagrywanie"
 
-msgid "Subtitle"
-msgstr "Podpisy"
+#~ msgid "Connection to %s:%d refused."
+#~ msgstr "Połączenie z %s:%d odrzucone."
 
-msgid "MPL2 subtitle format"
-msgstr "Format podpisów MPL2"
+#~ msgid "Uncompressed planar YUV 4:2:0"
+#~ msgstr "Nieskompresowany planarny YUV 4:2:0"
 
-msgid "DKS subtitle format"
-msgstr "Format podpisów DKS"
+#~ msgid "Uncompressed planar YVU 4:2:0"
+#~ msgstr "Nieskompresowany planarny YUV 4:2:0"
 
-msgid "QTtext subtitle format"
-msgstr "Format podpisów QTtext"
+#~ msgid "Uncompressed packed YUV 4:2:2"
+#~ msgstr "Nieskompresowany spakowany YUV 4:2:2"
 
-msgid "Sami subtitle format"
-msgstr "Format podpisów Sami"
+#~ msgid "Uncompressed packed YUV 4:1:0"
+#~ msgstr "Nieskompresowany spakowany YUV 4:1:0"
 
-msgid "TMPlayer subtitle format"
-msgstr "Format podpisów TMPlayer"
+#~ msgid "Uncompressed packed YVU 4:1:0"
+#~ msgstr "Nieskompresowany spakowany YUV 4:1:0"
 
-msgid "Kate subtitle format"
-msgstr "Format podpisów Kate"
+#~ msgid "Uncompressed packed YUV 4:1:1"
+#~ msgstr "Nieskompresowany spakowany YUV 4:1:1"
 
-msgid "Uncompressed video"
-msgstr "Nieskompresowany obraz"
+#~ msgid "Uncompressed packed YUV 4:4:4"
+#~ msgstr "Nieskompresowany spakowany YUV 4:4:4"
 
-msgid "Uncompressed gray"
-msgstr "Nieskompresowane szarości"
+#~ msgid "Uncompressed planar YUV 4:2:2"
+#~ msgstr "Nieskompresowany planarny YUV 4:2:2"
 
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nieskompresowany %s YUV %s"
+#~ msgid "Uncompressed planar YUV 4:1:1"
+#~ msgstr "Nieskompresowany planarny YUV 4:1:1"
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nieskompresowany %s%d-bitowy %s"
+#~ msgid "Uncompressed black and white Y-plane"
+#~ msgstr "Nieskompresowany czarno-biały plan Y"
 
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 w wersji %d"
+#~ msgid "Raw PCM audio"
+#~ msgstr "Surowy dźwięk PCM"
 
-msgid "Uncompressed audio"
-msgstr "Nieskompresowany dźwięk"
+#~ msgid "Raw %d-bit floating-point audio"
+#~ msgstr "Surowy %d-bitowy dźwięk zmiennoprzecinkowy"
 
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Surowy %d-bitowy dźwięk %s"
+#~ msgid "Raw floating-point audio"
+#~ msgstr "Surowy dźwięk zmiennoprzecinkowy"
 
-msgid "Audio CD source"
-msgstr "Źródło Audio CD"
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Nie udało się otworzyć pliku vfs \"%s\" do zapisu: %s."
 
-msgid "DVD source"
-msgstr "Źródło DVD"
+#~ msgid "No filename given"
+#~ msgstr "Nie podano nazwy pliku"
 
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Źródło RTSP (Real Time Streaming Protocol)"
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Nie udało się zamknąć pliku vfs \"%s\"."
 
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Źródło protokołu MMS (Microsoft Media Server)"
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Błąd podczas zapisu do pliku \"%s\"."
 
-#, c-format
-msgid "%s protocol source"
-msgstr "Źródło protokołu %s"
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Niepoprawne URI podpisów \"%s\", podpisy wyłączone."
 
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "Depayloader obrazu RTP %s"
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Strumieni RTSP jeszcze nie można odtwarzać."
 
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "Depayloader dźwięku RTP %s"
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Wykryto tylko strumień podpisów. Albo żądano wczytania pliku podpisów lub "
+#~ "innego rodzaju pliku tekstowego, albo nie rozpoznano pliku "
+#~ "multimedialnego."
 
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "Depayloader RTP %s"
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Nie ma zainstalowanego dekodera do obsługi tego pliku. Być może trzeba "
+#~ "zainstalować potrzebne wtyczki."
 
-#, c-format
-msgid "%s demuxer"
-msgstr "Demuxer %s"
+#~ msgid "This is not a media file"
+#~ msgstr "To nie jest plik multimedialny"
 
-#, c-format
-msgid "%s decoder"
-msgstr "Dekoder %s"
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Wykryto strumień podpisów, ale brak strumienia obrazu."
 
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "Payloader obrazu RTP %s"
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Nie ma żadnego z elementów autovideosink i xvimagesink."
 
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "Payloader dźwięku RTP %s"
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Nie ma żadnego z elementów autoaudiosink i alsasink."
 
-#, c-format
-msgid "%s RTP payloader"
-msgstr "Payloader RTP %s"
+#~ msgid "No device specified."
+#~ msgstr "Nie określono urządzenia."
 
-#, c-format
-msgid "%s muxer"
-msgstr "Muxer %s"
+#~ msgid "Device \"%s\" does not exist."
+#~ msgstr "Urządzenie \"%s\" nie istnieje."
 
-#, c-format
-msgid "%s encoder"
-msgstr "Koder %s"
+#~ msgid "Device \"%s\" is already being used."
+#~ msgstr "Urządzenie \"%s\" jest już używane."
 
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Element GStreamera %s"
+#~ msgid "Could not open device \"%s\" for reading and writing."
+#~ msgstr "Nie udało się otworzyć urządzenia \"%s\" do odczytu i zapisu."
 
-msgid "Unknown source element"
-msgstr "Nieznany element źródłowy"
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Błąd podczas wysyłania danych nagłówka gdp do \"%s:%d\"."
 
-msgid "Unknown sink element"
-msgstr "Nieznany element pochłaniający"
-
-msgid "Unknown element"
-msgstr "Nieznany element"
-
-msgid "Unknown decoder element"
-msgstr "Nieznany element dekodujący"
-
-msgid "Unknown encoder element"
-msgstr "Nieznany element kodujący"
-
-msgid "Plugin or element of unknown type"
-msgstr "Wtyczka lub element nieznanego typu"
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Błąd podczas wysyłania danych gdp do \"%s:%d\"."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index e4a3c94..d33f874 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 44edfcc..e357f9f 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-01-08 01:02-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -78,6 +78,11 @@
 msgstr "Erro interno no fluxo de dados."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+"O elemento \"%s\" está faltando, verifique a instalação do seu GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "O plug-in %s é necessário para reproduzir este fluxo, mas não está instalado."
@@ -88,10 +93,9 @@
 msgid "This appears to be a text file"
 msgstr "Este parece ser um arquivo de texto"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
-"O elemento \"%s\" está faltando, verifique a instalação do seu GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Não foi possível criar o elemento \"decodebin\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -164,11 +168,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Erro ao enviar dados para \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Não é possível gravar o áudio rápido suficiente"
+
 msgid "This CD has no audio tracks"
 msgstr "Este CD não tem trilhas de áudio"
 
-msgid "Can't record audio fast enough"
-msgstr "Não é possível gravar o áudio rápido suficiente"
+msgid "ID3 tag"
+msgstr "Etiqueta ID3"
+
+msgid "APE tag"
+msgstr "Etiqueta APE"
+
+msgid "ICY internet radio"
+msgstr "Rádio on-line ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Áudio Sem Perdas da Apple (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Codec Livre de Áudio Sem Perdas (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Áudio Real Sem Perdas (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Mídia de Voz do Windows (WMS)"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Sem Perdas"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH Sem Perdas"
+
+msgid "Run-length encoding"
+msgstr "Codificação Run-length"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Formato de legendas TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Formato de legendas Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Formato de legendas Kate"
+
+msgid "Sami subtitle format"
+msgstr "Formato de legendas Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Formato de legendas TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Formato de legendas Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "YUV sem compressão"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Imagem Monocromática Sem Compressão"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "YUV sem compressão"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "%2$s de %1$d bits com paletas sem compressão"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Versão %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "YUV sem compressão"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Áudio PCM Raw de %d bits"
+
+msgid "Audio CD source"
+msgstr "Origem: CD de áudio"
+
+msgid "DVD source"
+msgstr "Origem: DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Origem: Protocolo de Fluxo Contínuo em Tempo Real (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Origem: protocolo do Servidor de Mídia da Microsoft (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Origem: protocolo %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "decodificador de vídeo RTP %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "decodificador de áudio RTP %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "decodificador RTP %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Demultiplexador %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Decodificador %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "codificador de vídeo RTP %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "codificador de áudio RTP %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "codificador RTP %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Multiplexador %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Codificador %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Elemento \"%s\" do GStreamer"
+
+msgid "Unknown source element"
+msgstr "Elemento de origem desconhecida"
+
+msgid "Unknown sink element"
+msgstr "Elemento consumidor desconhecido"
+
+msgid "Unknown element"
+msgstr "Elemento desconhecido"
+
+msgid "Unknown decoder element"
+msgstr "Elemento decodificador desconhecido"
+
+msgid "Unknown encoder element"
+msgstr "Elemento codificador desconhecido"
+
+msgid "Plugin or element of unknown type"
+msgstr "Elemento ou plug-in de tipo desconhecido"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Falha ao ler etiqueta: dados insuficientes"
@@ -339,169 +506,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "Etiqueta ID3"
-
-msgid "APE tag"
-msgstr "Etiqueta APE"
-
-msgid "ICY internet radio"
-msgstr "Rádio on-line ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Áudio Sem Perdas da Apple (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Codec Livre de Áudio Sem Perdas (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Áudio Real Sem Perdas (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Mídia de Voz do Windows (WMS)"
-
-msgid "CYUV Lossless"
-msgstr "CYUV Sem Perdas"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH Sem Perdas"
-
-msgid "Run-length encoding"
-msgstr "Codificação Run-length"
-
-msgid "Subtitle"
-msgstr ""
-
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "Formato de legendas TMPlayer"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Formato de legendas Sami"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Formato de legendas Kate"
-
-msgid "Sami subtitle format"
-msgstr "Formato de legendas Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Formato de legendas TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Formato de legendas Kate"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "YUV sem compressão"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Imagem Monocromática Sem Compressão"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "YUV sem compressão"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "%2$s de %1$d bits com paletas sem compressão"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Versão %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "YUV sem compressão"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Áudio PCM Raw de %d bits"
-
-msgid "Audio CD source"
-msgstr "Origem: CD de áudio"
-
-msgid "DVD source"
-msgstr "Origem: DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Origem: Protocolo de Fluxo Contínuo em Tempo Real (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Origem: protocolo do Servidor de Mídia da Microsoft (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Origem: protocolo %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "decodificador de vídeo RTP %s"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "decodificador de áudio RTP %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "decodificador RTP %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Demultiplexador %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Decodificador %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "codificador de vídeo RTP %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "codificador de áudio RTP %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "codificador RTP %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "Multiplexador %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "Codificador %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Elemento \"%s\" do GStreamer"
-
-msgid "Unknown source element"
-msgstr "Elemento de origem desconhecida"
-
-msgid "Unknown sink element"
-msgstr "Elemento consumidor desconhecido"
-
-msgid "Unknown element"
-msgstr "Elemento desconhecido"
-
-msgid "Unknown decoder element"
-msgstr "Elemento decodificador desconhecido"
-
-msgid "Unknown encoder element"
-msgstr "Elemento codificador desconhecido"
-
-msgid "Plugin or element of unknown type"
-msgstr "Elemento ou plug-in de tipo desconhecido"
-
 #~ msgid "Master"
 #~ msgstr "Principal"
 
@@ -595,9 +599,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Os fluxos RTSP ainda não podem ser reproduzidos."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Não foi possível criar o elemento \"decodebin\"."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/ro.gmo b/po/ro.gmo
index 75babeb..ccb3bf2 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 614552a..2f664a1 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-08-16 01:21+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -77,6 +77,10 @@
 msgstr "Eroare internă a fluxului de date."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Element %s lipsă - verificați instalarea GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Un modul de extensie %s este necesar pentru a reda acest flux, dar acesta nu "
@@ -88,9 +92,9 @@
 msgid "This appears to be a text file"
 msgstr "Acesta pare să fie un fișier text."
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Element %s lipsă - verificați instalarea GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nu se poate crea elementul „decodebin”."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,171 +166,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Eroare la trimiterea datelor către „%s:%d”."
 
-msgid "This CD has no audio tracks"
-msgstr "Acest CD nu conține piste audio"
-
 msgid "Can't record audio fast enough"
 msgstr "Nu se poate înregistra sunetul destul de repede"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Citirea etichetei a eșuat: date insuficiente"
-
-msgid "track ID"
-msgstr "ID pistă"
-
-msgid "MusicBrainz track ID"
-msgstr "ID pistă MusicBrainz"
-
-msgid "artist ID"
-msgstr "ID artist"
-
-msgid "MusicBrainz artist ID"
-msgstr "ID artist MusicBrainz"
-
-msgid "album ID"
-msgstr "ID album"
-
-msgid "MusicBrainz album ID"
-msgstr "ID album MusicBrainz"
-
-msgid "album artist ID"
-msgstr "ID artist album"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ID album artist MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "TRM ID pistă"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ID TRM MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr ""
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure compensation"
-msgstr ""
-
-msgid "The exposure compensation used when capturing an image"
-msgstr ""
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr ""
-
-msgid "The white balance mode set when capturing an image"
-msgstr ""
-
-msgid "capturing contrast"
-msgstr ""
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr ""
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr ""
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr ""
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Acest CD nu conține piste audio"
 
 msgid "ID3 tag"
 msgstr "etichetă ID3"
@@ -491,6 +335,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Modul de extensie sau element de tip necunoscut"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Citirea etichetei a eșuat: date insuficiente"
+
+msgid "track ID"
+msgstr "ID pistă"
+
+msgid "MusicBrainz track ID"
+msgstr "ID pistă MusicBrainz"
+
+msgid "artist ID"
+msgstr "ID artist"
+
+msgid "MusicBrainz artist ID"
+msgstr "ID artist MusicBrainz"
+
+msgid "album ID"
+msgstr "ID album"
+
+msgid "MusicBrainz album ID"
+msgstr "ID album MusicBrainz"
+
+msgid "album artist ID"
+msgstr "ID artist album"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ID album artist MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "TRM ID pistă"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ID TRM MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Principal"
 
@@ -584,9 +588,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "Fluxurile RTSP nu pot fi redate încă."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nu se poate crea elementul „decodebin”."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/ru.gmo b/po/ru.gmo
index a5beb89..d56618d 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index ea09f0f..ed83036 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -3,20 +3,20 @@
 #
 # Артём Попов <artfwo@gmail.com>, 2009.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
-# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011, 2012.
+# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-12-01 13:27+0400\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-26 20:30+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 1.0\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
@@ -80,6 +80,10 @@
 msgstr "Внутренняя ошибка потока данных."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Отсутствует элемент «%s» — проверьте правильность установки GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Для воспроизведения этого потока требуется модуль %s, но он не установлен."
@@ -90,9 +94,9 @@
 msgid "This appears to be a text file"
 msgstr "Этот файл является текстовым"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Отсутствует элемент «%s» — проверьте правильность установки GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Не удалось создать элемент «decodebin»."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -165,11 +169,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Ошибка отправки данных в «%s:%d»."
 
+msgid "Can't record audio fast enough"
+msgstr "Невозможна запись аудио с достаточной скоростью"
+
 msgid "This CD has no audio tracks"
 msgstr "На CD нет звуковых дорожек"
 
-msgid "Can't record audio fast enough"
-msgstr "Невозможна запись аудио с достаточной скоростью"
+msgid "ID3 tag"
+msgstr "ID3-тег"
+
+msgid "APE tag"
+msgstr "APE-тег"
+
+msgid "ICY internet radio"
+msgstr "Интернет-радио ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV Lossless"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Lossless MSZH"
+
+msgid "Run-length encoding"
+msgstr "RLE-сжатие"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Формат субтитров TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Формат субтитров Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Формат субтитров Kate"
+
+msgid "Sami subtitle format"
+msgstr "Формат субтитров Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Формат субтитров TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Формат субтитров Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Несжатый YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Несжатое полутоновое изображение"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Несжатый YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Несжатое %d-битное %s-изображение с палитрой"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 Версия %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Несжатый YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Несжатое %d-битное PCM-аудио"
+
+msgid "Audio CD source"
+msgstr "Источник аудио-CD"
+
+msgid "DVD source"
+msgstr "Источник DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Источник протокола Real Time Streaming Protocol (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Источник протокола Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Источник протокола %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "RTP-разгрузчик %s-видео"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "RTP-разгрузчик %s-аудио"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "RTP-разгрузчик %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Демуксер %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Декодер %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "RTP-нагрузчик %s-видео"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "RTP-нагрузчик %s-аудио"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "RTP-нагрузчик %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Муксер %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Кодировщик %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Элемент GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Неизвестный элемент-источник"
+
+msgid "Unknown sink element"
+msgstr "Неизвестный элемент-приёмник"
+
+msgid "Unknown element"
+msgstr "Неизвестный элемент"
+
+msgid "Unknown decoder element"
+msgstr "Неизвестный элемент-декодер"
+
+msgid "Unknown encoder element"
+msgstr "Неизвестный элемент-кодировщик"
+
+msgid "Plugin or element of unknown type"
+msgstr "Модуль или элемент неизвестного типа"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Не удалось прочитать тег: недостаточно данных"
@@ -316,179 +483,22 @@
 msgstr "Источник или тип устройства, использованный для съёмки"
 
 msgid "image horizontal ppi"
-msgstr "изображение по горизонтали в ppi"
+msgstr "изображение в ppi по горизонтали"
 
 msgid "Media (image/video) intended horizontal pixel density in ppi"
 msgstr "Горизонтальная плотность носителя (изображение/видео) в ppi"
 
 msgid "image vertical ppi"
-msgstr "изображение по вертикали в ppi"
+msgstr "изображение в ppi по вертикали"
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Вертикальная плотность носителя (изображение/видео) в ppi"
 
 msgid "ID3v2 frame"
-msgstr "кадр ID3v2"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "неразбираемый тег кадра id3v2"
-
-msgid "ID3 tag"
-msgstr "ID3-тег"
-
-msgid "APE tag"
-msgstr "APE-тег"
-
-msgid "ICY internet radio"
-msgstr "Интернет-радио ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV Lossless"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "Lossless MSZH"
-
-msgid "Run-length encoding"
-msgstr "RLE-сжатие"
-
-msgid "Subtitle"
-msgstr "Субтитры"
-
-msgid "MPL2 subtitle format"
-msgstr "Формат субтитров MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Формат субтитров DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Формат субтитров QTtext"
-
-msgid "Sami subtitle format"
-msgstr "Формат субтитров Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Формат субтитров TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Формат субтитров Kate"
-
-msgid "Uncompressed video"
-msgstr "Несжатое видео"
-
-msgid "Uncompressed gray"
-msgstr "Несжатый серый"
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Несжатый %s YUV %s"
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Несжатое %s%d-битное %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 Версия %d"
-
-msgid "Uncompressed audio"
-msgstr "Несжатое аудио"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Необработанное %d-битное аудио %s"
-
-msgid "Audio CD source"
-msgstr "Источник аудио-CD"
-
-msgid "DVD source"
-msgstr "Источник DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Источник протокола Real Time Streaming Protocol (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Источник протокола Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Источник протокола %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "RTP-разгрузчик %s-видео"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "RTP-разгрузчик %s-аудио"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "RTP-разгрузчик %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "Демуксер %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "Декодер %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "RTP-нагрузчик %s-видео"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "RTP-нагрузчик %s-аудио"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "RTP-нагрузчик %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "Муксер %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "Кодировщик %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Элемент GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Неизвестный элемент-источник"
-
-msgid "Unknown sink element"
-msgstr "Неизвестный элемент-приёмник"
-
-msgid "Unknown element"
-msgstr "Неизвестный элемент"
-
-msgid "Unknown decoder element"
-msgstr "Неизвестный элемент-декодер"
-
-msgid "Unknown encoder element"
-msgstr "Неизвестный элемент-кодировщик"
-
-msgid "Plugin or element of unknown type"
-msgstr "Модуль или элемент неизвестного типа"
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "Общий"
@@ -523,60 +533,6 @@
 #~ msgid "Capture"
 #~ msgstr "Съёмка"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Не удалось открыть vfs-файл «%s» для записи: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Не указано имя файла"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Не удалось закрыть vfs-файл «%s»."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Ошибка записи в файл «%s»."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Неверный URI субтитров «%s», субтитры выключены."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Воспроизведение RTSP-потоков в данный момент невозможно."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Не удалось создать элемент «decodebin»."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Обнаружен только поток субтитров. Либо вы загружаете файл субтитров или "
-#~ "иной текстовый файл, либо медиа-файл не распознан."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Не установлен требуемый декодер для обработки этого файла. Возможно, вам "
-#~ "следует поставить необходимые модули."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Файл не является медиа-файлом"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Обнаружен только поток субтитров, поток видео не обнаружен."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Отсутствуют элементы autovideosink и xvimagesink."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Отсутствуют элементы autoaudiosink и alsasink."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Ошибка отправки данных заголовка gdp в «%s:%d»."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Ошибка отправки данных gdp в «%s:%d»."
-
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "В соединении с %s:%d отказано."
 
@@ -619,6 +575,51 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Несжатое аудио с плавающей точкой"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Не удалось открыть vfs-файл «%s» для записи: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Не указано имя файла"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Не удалось закрыть vfs-файл «%s»."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Ошибка записи в файл «%s»."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Неверный URI субтитров «%s», субтитры выключены."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Воспроизведение RTSP-потоков в данный момент невозможно."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Обнаружен только поток субтитров. Либо вы загружаете файл субтитров или "
+#~ "иной текстовый файл, либо медиа-файл не распознан."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Не установлен требуемый декодер для обработки этого файла. Возможно, вам "
+#~ "следует поставить необходимые модули."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Файл не является медиа-файлом"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Обнаружен только поток субтитров, поток видео не обнаружен."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Отсутствуют элементы autovideosink и xvimagesink."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Отсутствуют элементы autoaudiosink и alsasink."
+
 #~ msgid "No device specified."
 #~ msgstr "Не указано устройство."
 
@@ -631,6 +632,12 @@
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Не удалось открыть устройство «%s» для чтения и записи."
 
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Ошибка отправки данных заголовка gdp в «%s:%d»."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Ошибка отправки данных gdp в «%s:%d»."
+
 #~ msgid "No file name specified."
 #~ msgstr "Не указано имя файла."
 
diff --git a/po/sk.gmo b/po/sk.gmo
index ea20e13..4bf52e0 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 7b6f618..44129db 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-11-08 15:34+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -79,6 +79,10 @@
 msgstr "Vnútorná chyba prúdu údajov."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Chýa prvok '%s' - skontrolujte svoju inštaláciu GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "Na prehratie tohto prúdu údajov je vyžadovaný zásuvný modul %s, ktorý nie je "
@@ -90,9 +94,9 @@
 msgid "This appears to be a text file"
 msgstr "Tento súbor je asi textový"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Chýa prvok '%s' - skontrolujte svoju inštaláciu GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Nepodarilo sa vytvoriť prvok \"decodebin\""
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -164,173 +168,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Chyba pri posielaní údajov do \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Toto CD nemá zvukové stopy"
-
 msgid "Can't record audio fast enough"
 msgstr "Zvuk sa nedá nahrávať dostatočne rýchlo"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Načítanie značky zlyhalo: málo údajov"
-
-msgid "track ID"
-msgstr "ID stopy"
-
-msgid "MusicBrainz track ID"
-msgstr "ID stopy MusicBrainz"
-
-msgid "artist ID"
-msgstr "ID umelca"
-
-msgid "MusicBrainz artist ID"
-msgstr "ID umelca MusicBrainz"
-
-msgid "album ID"
-msgstr "ID albumu"
-
-msgid "MusicBrainz album ID"
-msgstr "ID albumu MusicBrainz"
-
-msgid "album artist ID"
-msgstr "ID umelca albumu"
-
-msgid "MusicBrainz album artist ID"
-msgstr "ID umelca albumu MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "ID TRM stopy"
-
-msgid "MusicBrainz TRM ID"
-msgstr "ID TRM MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr "zachytávacia rýchlosť uzávierky"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Rýchlosť uzávierky použitá pri zachytávaní obrázku, v sekundách"
-
-msgid "capturing focal ratio"
-msgstr "zachytávacií pomer F"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Pomer (číslo F) použitý pri zachytávaní obrázku"
-
-msgid "capturing focal length"
-msgstr "zachytávacia ohnisková vzdialenosť"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Ohnisková vzdialenosť objektívu pri zachytávaní obrázku, v mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "zachytávací pomer digitálneho priblíženia"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Pomer digitálneho priblíženia použitý pri zachytávaní obrázku"
-
-msgid "capturing iso speed"
-msgstr "zachytávacia rýchlosť ISO"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Rýchlosť ISO použítá pri zachytávaní obrázku"
-
-msgid "capturing exposure program"
-msgstr "zachytávací program expozície"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Program expozície použitý pri zachytávaní obrázko"
-
-msgid "capturing exposure mode"
-msgstr "zachytávací režim expozície"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Režim expozície použitý pri zachytávaní obrázku"
-
-#, fuzzy
-msgid "capturing exposure compensation"
-msgstr "zachytávací režim expozície"
-
-#, fuzzy
-msgid "The exposure compensation used when capturing an image"
-msgstr "Režim expozície použitý pri zachytávaní obrázku"
-
-msgid "capturing scene capture type"
-msgstr "zachytávací typ zachytenia scény"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Režim zachytenia scény použitý pri zachytávaní obrázku"
-
-msgid "capturing gain adjustment"
-msgstr "zachytávacie nastavenie zisku"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Celkové nastavenie zisku aplikovaného na obrázok"
-
-msgid "capturing white balance"
-msgstr "zachytávacie vyváženie bielej"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Režim vyváženia bielej nastavený pri zachytávaní obrázku"
-
-msgid "capturing contrast"
-msgstr "zachytávací kontrast"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Smerovanie spracovania kontrastu použitého pri zachytávaní obrázku"
-
-msgid "capturing saturation"
-msgstr "zachytávacia sýtosť"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Smerovanie spracovania sýtosti použitého pri zachytávaní obrázku"
-
-msgid "capturing sharpness"
-msgstr "zachytávacia ostrosť"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Smerovanie spracovania ostrosti použitého pri zachytávaní obrázku"
-
-msgid "capturing flash fired"
-msgstr "zachytávací blesk"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Bol alebo nebol použitý blesk pri zachytávaní obrázku"
-
-msgid "capturing flash mode"
-msgstr "zachytávací režim blesku"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Vybraný režim blesku pri zachytávaní obrázku"
-
-msgid "capturing metering mode"
-msgstr "zachytávacie meranie blesku"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Režim merania blesku pri zisťovaní expozície pre zachytenie obrázku"
-
-msgid "capturing source"
-msgstr "zachytávací zdroj"
-
-msgid "The source or type of device used for the capture"
-msgstr "Zdroj alebo typ zariadenia použitý na zachytenie"
-
-msgid "image horizontal ppi"
-msgstr "vodorovné ppi obrázku"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Cieľová vodorovná hustota pixlov média (obrázku/videa) v ppi"
-
-msgid "image vertical ppi"
-msgstr "zvislé ppi obrázku"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Cieľová zvislá hustota pixlov média (obrázku/videa) v ppi"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Toto CD nemá zvukové stopy"
 
 msgid "ID3 tag"
 msgstr "ID3 značka"
@@ -495,6 +337,168 @@
 msgid "Plugin or element of unknown type"
 msgstr "Neznámy typ zásuvného modulu alebo prvku"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Načítanie značky zlyhalo: málo údajov"
+
+msgid "track ID"
+msgstr "ID stopy"
+
+msgid "MusicBrainz track ID"
+msgstr "ID stopy MusicBrainz"
+
+msgid "artist ID"
+msgstr "ID umelca"
+
+msgid "MusicBrainz artist ID"
+msgstr "ID umelca MusicBrainz"
+
+msgid "album ID"
+msgstr "ID albumu"
+
+msgid "MusicBrainz album ID"
+msgstr "ID albumu MusicBrainz"
+
+msgid "album artist ID"
+msgstr "ID umelca albumu"
+
+msgid "MusicBrainz album artist ID"
+msgstr "ID umelca albumu MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "ID TRM stopy"
+
+msgid "MusicBrainz TRM ID"
+msgstr "ID TRM MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr "zachytávacia rýchlosť uzávierky"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Rýchlosť uzávierky použitá pri zachytávaní obrázku, v sekundách"
+
+msgid "capturing focal ratio"
+msgstr "zachytávacií pomer F"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Pomer (číslo F) použitý pri zachytávaní obrázku"
+
+msgid "capturing focal length"
+msgstr "zachytávacia ohnisková vzdialenosť"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Ohnisková vzdialenosť objektívu pri zachytávaní obrázku, v mm"
+
+msgid "capturing digital zoom ratio"
+msgstr "zachytávací pomer digitálneho priblíženia"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Pomer digitálneho priblíženia použitý pri zachytávaní obrázku"
+
+msgid "capturing iso speed"
+msgstr "zachytávacia rýchlosť ISO"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Rýchlosť ISO použítá pri zachytávaní obrázku"
+
+msgid "capturing exposure program"
+msgstr "zachytávací program expozície"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Program expozície použitý pri zachytávaní obrázko"
+
+msgid "capturing exposure mode"
+msgstr "zachytávací režim expozície"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Režim expozície použitý pri zachytávaní obrázku"
+
+#, fuzzy
+msgid "capturing exposure compensation"
+msgstr "zachytávací režim expozície"
+
+#, fuzzy
+msgid "The exposure compensation used when capturing an image"
+msgstr "Režim expozície použitý pri zachytávaní obrázku"
+
+msgid "capturing scene capture type"
+msgstr "zachytávací typ zachytenia scény"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Režim zachytenia scény použitý pri zachytávaní obrázku"
+
+msgid "capturing gain adjustment"
+msgstr "zachytávacie nastavenie zisku"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Celkové nastavenie zisku aplikovaného na obrázok"
+
+msgid "capturing white balance"
+msgstr "zachytávacie vyváženie bielej"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Režim vyváženia bielej nastavený pri zachytávaní obrázku"
+
+msgid "capturing contrast"
+msgstr "zachytávací kontrast"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Smerovanie spracovania kontrastu použitého pri zachytávaní obrázku"
+
+msgid "capturing saturation"
+msgstr "zachytávacia sýtosť"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Smerovanie spracovania sýtosti použitého pri zachytávaní obrázku"
+
+msgid "capturing sharpness"
+msgstr "zachytávacia ostrosť"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Smerovanie spracovania ostrosti použitého pri zachytávaní obrázku"
+
+msgid "capturing flash fired"
+msgstr "zachytávací blesk"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Bol alebo nebol použitý blesk pri zachytávaní obrázku"
+
+msgid "capturing flash mode"
+msgstr "zachytávací režim blesku"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Vybraný režim blesku pri zachytávaní obrázku"
+
+msgid "capturing metering mode"
+msgstr "zachytávacie meranie blesku"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Režim merania blesku pri zisťovaní expozície pre zachytenie obrázku"
+
+msgid "capturing source"
+msgstr "zachytávací zdroj"
+
+msgid "The source or type of device used for the capture"
+msgstr "Zdroj alebo typ zariadenia použitý na zachytenie"
+
+msgid "image horizontal ppi"
+msgstr "vodorovné ppi obrázku"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "Cieľová vodorovná hustota pixlov média (obrázku/videa) v ppi"
+
+msgid "image vertical ppi"
+msgstr "zvislé ppi obrázku"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Cieľová zvislá hustota pixlov média (obrázku/videa) v ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Hlavný"
 
@@ -588,9 +592,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP prúdy sa teraz nedajú prehrávať."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Nepodarilo sa vytvoriť prvok \"decodebin\""
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/sl.gmo b/po/sl.gmo
index d451e7d..909bcc5 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index ccde340..d63de90 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,18 +1,16 @@
 # Slovenian translation for gst-plugins-base.
-# Copyright (C) 2005 - 2013 Free Software Foundation, Inc.
+# Copyright (C) 2005 - 2011 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
-#
 # Matej Urbančič <matej.urban@gmail.com>, 2010.
-# Martin Srebotnjak  <miles@filmsi.net>, 2011.
-# Klemen Košir <klemen913@gmail.com>, 2011 - 2013.
+# Klemen Košir <klemen.kosir@gmx.com>, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2013-01-05 10:10+0100\n"
-"Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-26 15:56+0100\n"
+"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
 "Language: sl\n"
 "MIME-Version: 1.0\n"
@@ -20,6 +18,9 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
 "%100==4 ? 3 : 0);\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Naprave ni mogoče odpreti za predvajanje v mono načinu."
@@ -79,6 +80,10 @@
 msgstr "Notranja napaka pretoka podatkov."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Predmet '%s' manjka - preverite namestitev paketa GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "Za predvajanje tega pretoka je potreben vstavek %s, ki pa ni nameščen."
 
@@ -88,9 +93,9 @@
 msgid "This appears to be a text file"
 msgstr "Datoteka je videti kot besedilna datoteka"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Predmet '%s' manjka - preverite namestitev paketa GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Predmeta \"decodebin\" ni mogoče ustvariti."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,11 +167,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Napaka med pošiljanjem podatkov na \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Ni mogoče dovolj hitro snemati zvoka"
+
 msgid "This CD has no audio tracks"
 msgstr "Ta CD nima zvočnih sledi"
 
-msgid "Can't record audio fast enough"
-msgstr "Ni mogoče dovolj hitro snemati zvoka"
+msgid "ID3 tag"
+msgstr "Oznaka ID3"
+
+msgid "APE tag"
+msgstr "Oznaka APE"
+
+msgid "ICY internet radio"
+msgstr "Internetni radio ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Apple Lossless Audio (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Free Lossless Audio Codec (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Govor Windows Media"
+
+msgid "CYUV Lossless"
+msgstr "Brezizgubni CYUV"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "Brezizgubni MSZH"
+
+msgid "Run-length encoding"
+msgstr "Kodiranje trajanja izvajanja"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Oblika podnapisov TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Oblika podnapisov Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Oblika podnapisov Kate"
+
+msgid "Sami subtitle format"
+msgstr "Oblika podnapisov Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Oblika podnapisov TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Oblika podnapisov Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Nestisnjen YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Nestisnjena sivinska slika"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Nestisnjen YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Nestisnjen paletni %d-bitni %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 različice %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Nestisnjen YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Surovi %d-bitni zvok PCM"
+
+msgid "Audio CD source"
+msgstr "Vir zvočnega CD-ja"
+
+msgid "DVD source"
+msgstr "Vir DVD-ja"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Vir protokola Real Time Streaming Protocol (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Vir protokola Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Vir protokola %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "Razlagalnik video vsebine %s RTP"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "Razlagalnik zvočne vsebine %s RTP"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "Razlagalnik vsebine %s RTP"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "Odvijalnik %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "Odkodirnik %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "Nalagalnik video vsebine %s RTP"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "Nalagalnik zvočne vsebine %s RTP"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "Nalagalnik vsebine %s RTP"
+
+#, c-format
+msgid "%s muxer"
+msgstr "Zvijalnik %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "Kodirnik %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Predmet GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Neznan predmet vira"
+
+msgid "Unknown sink element"
+msgstr "Neznan predmet ponora"
+
+msgid "Unknown element"
+msgstr "Neznan predmet"
+
+msgid "Unknown decoder element"
+msgstr "Neznan predmet odkodirnika"
+
+msgid "Unknown encoder element"
+msgstr "Neznan predmet kodirnika"
+
+msgid "Plugin or element of unknown type"
+msgstr "Vstavek ali predmet neznane vrste"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Oznake ni mogoče prebrati: ni dovolj podatkov"
@@ -324,164 +492,174 @@
 msgstr "Gostota navpičnih slikovnih točk (v ppi)"
 
 msgid "ID3v2 frame"
-msgstr "Polje ID3v2"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "nerazčlenjeno polje oznake id3v2"
+msgstr ""
 
-msgid "ID3 tag"
-msgstr "Oznaka ID3"
+#~ msgid "Master"
+#~ msgstr "Glavni"
 
-msgid "APE tag"
-msgstr "Oznaka APE"
+#~ msgid "Bass"
+#~ msgstr "Bas"
 
-msgid "ICY internet radio"
-msgstr "Internetni radio ICY"
+#~ msgid "Treble"
+#~ msgstr "Visoki toni"
 
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+#~ msgid "PCM"
+#~ msgstr "PCM"
 
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+#~ msgid "Synth"
+#~ msgstr "Sintetizator"
 
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+#~ msgid "Line-in"
+#~ msgstr "Analogni vhod"
 
-msgid "Windows Media Speech"
-msgstr "Govor Windows Media"
+#~ msgid "CD"
+#~ msgstr "CD"
 
-msgid "CYUV Lossless"
-msgstr "Brezizgubni CYUV"
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
 
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
+#~ msgid "PC Speaker"
+#~ msgstr "Računalniški zvočnik"
 
-msgid "Lossless MSZH"
-msgstr "Brezizgubni MSZH"
+#~ msgid "Playback"
+#~ msgstr "Predvajanje"
 
-msgid "Run-length encoding"
-msgstr "Kodiranje trajanja izvajanja"
+#~ msgid "Capture"
+#~ msgstr "Zajemanje"
 
-msgid "Subtitle"
-msgstr "Podnapisi"
+#~ msgid "Connection to %s:%d refused."
+#~ msgstr "Povezava s %s:%d zavrnjena."
 
-msgid "MPL2 subtitle format"
-msgstr "Oblika podnapisov MPL2"
+#~ msgid "Uncompressed planar YUV 4:2:0"
+#~ msgstr "Nestisnjen ploskovni YUV 4:2:0"
 
-msgid "DKS subtitle format"
-msgstr "Oblika podnapisov DKS"
+#~ msgid "Uncompressed planar YVU 4:2:0"
+#~ msgstr "Nestisnjen ploskovni YVU 4:2:0"
 
-msgid "QTtext subtitle format"
-msgstr "Oblika podnapisov QTtext"
+#~ msgid "Uncompressed packed YUV 4:2:2"
+#~ msgstr "Nestisnjen pakiran YUV 4:2:2"
 
-msgid "Sami subtitle format"
-msgstr "Oblika podnapisov Sami"
+#~ msgid "Uncompressed packed YUV 4:1:0"
+#~ msgstr "Nestisnjen pakiran YUV 4:1:0"
 
-msgid "TMPlayer subtitle format"
-msgstr "Oblika podnapisov TMPlayer"
+#~ msgid "Uncompressed packed YVU 4:1:0"
+#~ msgstr "Nestisnjen pakiran YVU 4:1:0"
 
-msgid "Kate subtitle format"
-msgstr "Oblika podnapisov Kate"
+#~ msgid "Uncompressed packed YUV 4:1:1"
+#~ msgstr "Nestisnjen pakiran YUV 4:1:1"
 
-msgid "Uncompressed video"
-msgstr "Nestisnjen video"
+#~ msgid "Uncompressed packed YUV 4:4:4"
+#~ msgstr "Nestisnjen pakiran YUV 4:4:4"
 
-msgid "Uncompressed gray"
-msgstr "Nestisnjen sivinski video"
+#~ msgid "Uncompressed planar YUV 4:2:2"
+#~ msgstr "Nestisnjen ploskovni YUV 4:2:2"
 
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Nestisnjen %s YUV %s"
+#~ msgid "Uncompressed planar YUV 4:1:1"
+#~ msgstr "Nestisnjen ploskovni YUV 4:1:1"
 
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Nestisnjen %s%d-bitni %s"
+#~ msgid "Uncompressed black and white Y-plane"
+#~ msgstr "Nestisnjena črno-bela slika Y-ravnine"
 
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 različice %d"
+#~ msgid "Raw PCM audio"
+#~ msgstr "Surovi zvok PCM"
 
-msgid "Uncompressed audio"
-msgstr "Nestisnjen zvok"
+#~ msgid "Raw %d-bit floating-point audio"
+#~ msgstr "Surovi %d-bitni zvok, določen s plavajočo vejico"
 
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Surov %d-bitni zvok %s"
+#~ msgid "Raw floating-point audio"
+#~ msgstr "Surovi zvok, določen s plavajočo vejico"
 
-msgid "Audio CD source"
-msgstr "Vir zvočnega CD-ja"
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "VFS datoteke \"%s\" ni mogoče odpreti za pisanje: %s"
 
-msgid "DVD source"
-msgstr "Vir DVD-ja"
+#~ msgid "No filename given"
+#~ msgstr "Ni podanega imena datoteke"
 
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Vir protokola Real Time Streaming Protocol (RTSP)"
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "VFS datoteke \"%s\" ni mogoče zapreti."
 
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Vir protokola Microsoft Media Server (MMS)"
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Napaka med pisanjem v datoteko \"%s\"."
 
-#, c-format
-msgid "%s protocol source"
-msgstr "Vir protokola %s"
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Neveljaven URI podnapisov \"%s\", zato bodo onemogočeni."
 
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "Razlagalnik video vsebine %s RTP"
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Pretokov RTSP še ni mogoče predvajati."
 
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "Razlagalnik zvočne vsebine %s RTP"
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Zaznan je bil le pretok podnapisov. Morda je bila naložena datoteka "
+#~ "podnapisov ali katera druga vrsta besedilne datoteke, ali pa "
+#~ "predstavnostne datoteke ni mogoče prepoznati."
 
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "Razlagalnik vsebine %s RTP"
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Za to vrsto datotek ni nameščenega ustreznega odkodirnika. Morda je "
+#~ "potrebno namestiti manjkajoče vstavke."
 
-#, c-format
-msgid "%s demuxer"
-msgstr "Odvijalnik %s"
+#~ msgid "This is not a media file"
+#~ msgstr "Datoteka ni predstavnostna datoteka"
 
-#, c-format
-msgid "%s decoder"
-msgstr "Odkodirnik %s"
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Zaznan je bil pretok podnapisov, ne pa tudi pretok videa."
 
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "Nalagalnik video vsebine %s RTP"
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Predmeta autovideosink in xvimagesink manjkata."
 
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "Nalagalnik zvočne vsebine %s RTP"
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Predmeta autovideosink in alsasink manjkata."
 
-#, c-format
-msgid "%s RTP payloader"
-msgstr "Nalagalnik vsebine %s RTP"
+#~ msgid "No device specified."
+#~ msgstr "Ni navedene naprave."
 
-#, c-format
-msgid "%s muxer"
-msgstr "Zvijalnik %s"
+#~ msgid "Device \"%s\" does not exist."
+#~ msgstr "Naprava \"%s\" ne obstaja."
 
-#, c-format
-msgid "%s encoder"
-msgstr "Kodirnik %s"
+#~ msgid "Device \"%s\" is already being used."
+#~ msgstr "Naprava \"%s\" je že v uporabi."
 
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Predmet GStreamer %s"
+#~ msgid "Could not open device \"%s\" for reading and writing."
+#~ msgstr "Naprave \"%s\" ni mogoče odpreti za branje in pisanje."
 
-msgid "Unknown source element"
-msgstr "Neznan predmet vira"
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Napaka med pošiljanjem podatkov glave GDP na \"%s:%d\"."
 
-msgid "Unknown sink element"
-msgstr "Neznan predmet ponora"
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Napaka med pošiljanjem podatkov vsebine GDP na \"%s:%d\"."
 
-msgid "Unknown element"
-msgstr "Neznan predmet"
+#, fuzzy
+#~ msgid "No Temp directory specified."
+#~ msgstr "Ni določenega izvornega pogona"
 
-msgid "Unknown decoder element"
-msgstr "Neznan predmet odkodirnika"
+#, fuzzy
+#~ msgid "Could not create temp file \"%s\"."
+#~ msgstr "Ni mogoče ustvariti datoteke predpomnilnika"
 
-msgid "Unknown encoder element"
-msgstr "Neznan predmet kodirnika"
+#, fuzzy
+#~ msgid "Could not open file \"%s\" for reading."
+#~ msgstr "Ni mogoče odpreti CD naprave za branje."
 
-msgid "Plugin or element of unknown type"
-msgstr "Vstavek ali predmet neznane vrste"
+#, fuzzy
+#~ msgid "Internal data flow error."
+#~ msgstr "Notranja napaka pretoka podatkov."
+
+#, fuzzy
+#~ msgid "Could not create \"decodebin2\" element."
+#~ msgstr "Elementa filesrc ni mogoče ustvariti"
+
+#, fuzzy
+#~ msgid "Could not create \"queue2\" element."
+#~ msgstr "Elementa filesrc ni mogoče ustvariti"
+
+#, fuzzy
+#~ msgid "Could not create \"typefind\" element."
+#~ msgstr "Elementa filesrc ni mogoče ustvariti"
diff --git a/po/sq.gmo b/po/sq.gmo
index f2c303b..cc25d80 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 26c3363..eda95d3 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -79,6 +79,10 @@
 msgstr ""
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 
@@ -89,9 +93,9 @@
 msgid "This appears to be a text file"
 msgstr ""
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "I pamundur shkrimi tek file \"%s\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -163,10 +167,167 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Gabim gjatë mbylljes së file \"%s\"."
 
+msgid "Can't record audio fast enough"
+msgstr ""
+
 msgid "This CD has no audio tracks"
 msgstr ""
 
-msgid "Can't record audio fast enough"
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr ""
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Subtitle"
+msgstr ""
+
+msgid "MPL2 subtitle format"
+msgstr ""
+
+msgid "DKS subtitle format"
+msgstr ""
+
+msgid "QTtext subtitle format"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed video"
+msgstr ""
+
+msgid "Uncompressed gray"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr ""
+
+msgid "Uncompressed audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit %s audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr ""
+
+msgid "DVD source"
+msgstr ""
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr ""
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr ""
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
 msgstr ""
 
 msgid "Failed to read tag: not enough data"
@@ -329,163 +490,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr ""
-
-msgid "APE tag"
-msgstr ""
-
-msgid "ICY internet radio"
-msgstr ""
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
-
-msgid "Lossless True Audio (TTA)"
-msgstr ""
-
-msgid "Windows Media Speech"
-msgstr ""
-
-msgid "CYUV Lossless"
-msgstr ""
-
-msgid "FFMpeg v1"
-msgstr ""
-
-msgid "Lossless MSZH"
-msgstr ""
-
-msgid "Run-length encoding"
-msgstr ""
-
-msgid "Subtitle"
-msgstr ""
-
-msgid "MPL2 subtitle format"
-msgstr ""
-
-msgid "DKS subtitle format"
-msgstr ""
-
-msgid "QTtext subtitle format"
-msgstr ""
-
-msgid "Sami subtitle format"
-msgstr ""
-
-msgid "TMPlayer subtitle format"
-msgstr ""
-
-msgid "Kate subtitle format"
-msgstr ""
-
-msgid "Uncompressed video"
-msgstr ""
-
-msgid "Uncompressed gray"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr ""
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr ""
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr ""
-
-msgid "Uncompressed audio"
-msgstr ""
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr ""
-
-msgid "Audio CD source"
-msgstr ""
-
-msgid "DVD source"
-msgstr ""
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s protocol source"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr ""
-
-#, c-format
-msgid "%s demuxer"
-msgstr ""
-
-#, c-format
-msgid "%s decoder"
-msgstr ""
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr ""
-
-#, c-format
-msgid "%s muxer"
-msgstr ""
-
-#, c-format
-msgid "%s encoder"
-msgstr ""
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr ""
-
-msgid "Unknown source element"
-msgstr ""
-
-msgid "Unknown sink element"
-msgstr ""
-
-msgid "Unknown element"
-msgstr ""
-
-msgid "Unknown decoder element"
-msgstr ""
-
-msgid "Unknown encoder element"
-msgstr ""
-
-msgid "Plugin or element of unknown type"
-msgstr ""
-
 #~ msgid "Bass"
 #~ msgstr "Bas"
 
@@ -543,10 +547,6 @@
 #~ msgstr "E pamundur hapja e dispozitivit \"%s\" për lexim dhe shkrim."
 
 #, fuzzy
-#~ msgid "Could not create \"typefind\" element."
-#~ msgstr "I pamundur shkrimi tek file \"%s\"."
-
-#, fuzzy
 #~ msgid "No Temp directory specified."
 #~ msgstr "Nuk është përcaktuar asnjë dispozitiv."
 
diff --git a/po/sr.gmo b/po/sr.gmo
index 4c6001d..049544d 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index c8155ed..e94da23 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -2,13 +2,13 @@
 # Copyright (C) 2004 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Danilo Segan <dsegan@gmx.net>, 2004.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011, 2012.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-03-25 03:32+0200\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-12-05 09:10+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
 "Language: sr\n"
@@ -17,7 +17,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Virtaal 0.7.1\n"
+"X-Generator: Virtaal 0.7.0\n"
 "X-Project-Style: gnome\n"
 
 msgid "Could not open device for playback in mono mode."
@@ -51,7 +51,7 @@
 
 #, c-format
 msgid "Could not open device for recording in %d-channel mode"
-msgstr "Не могу да отворим уређај ради снимања у %d-каналном режиму"
+msgstr "Не могу да отворим уређај ради снимања у %d-каналном режиму."
 
 msgid ""
 "Could not open audio device for recording. Device is being used by another "
@@ -79,6 +79,10 @@
 msgstr "Унутрашња грешка тока података."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Недостаје елемент „%s“ — проверите вашу инсталацију Гстримера."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "За пуштање овог тока потребан је прикључак „%s“, али није инсталиран."
 
@@ -88,9 +92,9 @@
 msgid "This appears to be a text file"
 msgstr "Изгледа да је ово текстуална датотека"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Недостаје елемент „%s“ — проверите вашу инсталацију Гстримера."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Не могу да направим „декодебин“ елемент."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -162,11 +166,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Грешка приликом слања података у „%s:%d“."
 
+msgid "Can't record audio fast enough"
+msgstr "Не могу да снимам звук довољно брзо"
+
 msgid "This CD has no audio tracks"
 msgstr "Овај ЦД нема звучних нумера"
 
-msgid "Can't record audio fast enough"
-msgstr "Не могу да снимам звук довољно брзо"
+msgid "ID3 tag"
+msgstr "ИБ3 ознака"
+
+msgid "APE tag"
+msgstr "АПЕ ознака"
+
+msgid "ICY internet radio"
+msgstr "ИЦИ Интернет радио"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Ејплов безгубитни звук (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Слободни кодек безгубитног звука (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Безгубитни истинитосни звук (ТТА)"
+
+msgid "Windows Media Speech"
+msgstr "Виндоуз говор медија"
+
+msgid "CYUV Lossless"
+msgstr "Безгубитни ЦИУВ"
+
+msgid "FFMpeg v1"
+msgstr "ФФмпег в1"
+
+msgid "Lossless MSZH"
+msgstr "Безгубитни МСЗХ"
+
+msgid "Run-length encoding"
+msgstr "Кодирање покретања дужине"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "ТМПлејер формат титла"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Сами формат титла"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Кејт формат титла"
+
+msgid "Sami subtitle format"
+msgstr "Сами формат титла"
+
+msgid "TMPlayer subtitle format"
+msgstr "ТМПлејер формат титла"
+
+msgid "Kate subtitle format"
+msgstr "Кејт формат титла"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Несажета YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Несажета сива слика"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Несажета YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Несажета YUV"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "ДивХ МПЕГ-4 издање %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Несажета YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Сирови %d-бита ПЦМ звук"
+
+msgid "Audio CD source"
+msgstr "Извор звучног ЦД-а"
+
+msgid "DVD source"
+msgstr "Извор ДВД-а"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Извор протокола тока стварног времена (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Извор протокола Мајкрософтовог сервера медија (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Извор „%s“ протокола"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr "„%s“ демултиплексер"
+
+#, c-format
+msgid "%s decoder"
+msgstr "„%s“ декодер"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr "„%s“ мултиплексер"
+
+#, c-format
+msgid "%s encoder"
+msgstr "„%s“ кодер"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "„%s“ елемент Гстримера"
+
+msgid "Unknown source element"
+msgstr "Непознати елемент извора"
+
+msgid "Unknown sink element"
+msgstr "Непознати елемент усаглашавања"
+
+msgid "Unknown element"
+msgstr "Непознати елемент"
+
+msgid "Unknown decoder element"
+msgstr "Непознати елемент декодера"
+
+msgid "Unknown encoder element"
+msgstr "Непознати елемент кодера"
+
+msgid "Plugin or element of unknown type"
+msgstr "Прикључак или елемент непознате врсте"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Нисам успео да прочитам ознаку: нема довољно података"
@@ -317,7 +484,7 @@
 msgstr "Очекивана густина водоравних тачака медија (слике/видеа) у тпи"
 
 msgid "image vertical ppi"
-msgstr "усправних тпи слике"
+msgstr "усправних тпи слике "
 
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr "Очекивана густина усправних тачака медија (слике/видеа) у тпи"
@@ -328,169 +495,6 @@
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-msgid "ID3 tag"
-msgstr "ИБ3 ознака"
-
-msgid "APE tag"
-msgstr "АПЕ ознака"
-
-msgid "ICY internet radio"
-msgstr "ИЦИ Интернет радио"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Ејплов безгубитни звук (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Слободни кодек безгубитног звука (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Безгубитни истинитосни звук (ТТА)"
-
-msgid "Windows Media Speech"
-msgstr "Виндоуз говор медија"
-
-msgid "CYUV Lossless"
-msgstr "Безгубитни ЦИУВ"
-
-msgid "FFMpeg v1"
-msgstr "ФФмпег в1"
-
-msgid "Lossless MSZH"
-msgstr "Безгубитни МСЗХ"
-
-msgid "Run-length encoding"
-msgstr "Кодирање покретања дужине"
-
-msgid "Subtitle"
-msgstr ""
-
-#, fuzzy
-msgid "MPL2 subtitle format"
-msgstr "ТМПлејер формат титла"
-
-#, fuzzy
-msgid "DKS subtitle format"
-msgstr "Сами формат титла"
-
-#, fuzzy
-msgid "QTtext subtitle format"
-msgstr "Кејт формат титла"
-
-msgid "Sami subtitle format"
-msgstr "Сами формат титла"
-
-msgid "TMPlayer subtitle format"
-msgstr "ТМПлејер формат титла"
-
-msgid "Kate subtitle format"
-msgstr "Кејт формат титла"
-
-#, fuzzy
-msgid "Uncompressed video"
-msgstr "Несажета YUV"
-
-#, fuzzy
-msgid "Uncompressed gray"
-msgstr "Несажета сива слика"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Несажета YUV"
-
-#, fuzzy, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Несажети палетизовани %d-битни %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "ДивХ МПЕГ-4 издање %d"
-
-#, fuzzy
-msgid "Uncompressed audio"
-msgstr "Несажета YUV"
-
-#, fuzzy, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Сирови %d-бита ПЦМ звук"
-
-msgid "Audio CD source"
-msgstr "Извор звучног ЦД-а"
-
-msgid "DVD source"
-msgstr "Извор ДВД-а"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Извор протокола тока стварног времена (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Извор протокола Мајкрософтовог сервера медија (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Извор „%s“ протокола"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "РТП истоваривач %s снимка"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "РТП истоваривач %s звука"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "%s РТП истоваривач"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "„%s“ демултиплексер"
-
-#, c-format
-msgid "%s decoder"
-msgstr "„%s“ декодер"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "РТП утоваривач %s снимка"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "РТП утоваривач %s звука"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "%s РТП утоваривач"
-
-#, c-format
-msgid "%s muxer"
-msgstr "„%s“ мултиплексер"
-
-#, c-format
-msgid "%s encoder"
-msgstr "„%s“ кодер"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "„%s“ елемент Гстримера"
-
-msgid "Unknown source element"
-msgstr "Непознати елемент извора"
-
-msgid "Unknown sink element"
-msgstr "Непознати елемент усаглашавања"
-
-msgid "Unknown element"
-msgstr "Непознати елемент"
-
-msgid "Unknown decoder element"
-msgstr "Непознати елемент декодера"
-
-msgid "Unknown encoder element"
-msgstr "Непознати елемент кодера"
-
-msgid "Plugin or element of unknown type"
-msgstr "Прикључак или елемент непознате врсте"
-
 #~ msgid "Master"
 #~ msgstr "Главни"
 
@@ -524,11 +528,14 @@
 #~ msgid "Capture"
 #~ msgstr "Снимање"
 
+#~ msgid "Connection to %s:%d refused."
+#~ msgstr "Повезивање са %s:%d је одбијено."
+
 #~ msgid "Could not open vfs file \"%s\" for writing: %s."
 #~ msgstr "Не могу да отворим всд датотеку „%s“ ради уписа: %s."
 
 #~ msgid "No filename given"
-#~ msgstr "Није дат назив датотеке"
+#~ msgstr "Није дат назив датотеке."
 
 #~ msgid "Could not close vfs file \"%s\"."
 #~ msgstr "Не могу да затворим всд датотеку „%s“."
@@ -542,9 +549,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "РТСП токови још увек не могу бити пуштени."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Не могу да направим „декодебин“ елемент."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
@@ -578,9 +582,6 @@
 #~ msgid "Error while sending gdp payload data to \"%s:%d\"."
 #~ msgstr "Грешка приликом слања података гдп носивости у „%s:%d“."
 
-#~ msgid "Connection to %s:%d refused."
-#~ msgstr "Повезивање са %s:%d је одбијено."
-
 #~ msgid "Uncompressed planar YUV 4:2:0"
 #~ msgstr "Несажета равна YUV 4:2:0"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index abce8b6..be605d2 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 0c242d3..0b46bde 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2010-06-07 18:17+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -76,6 +76,10 @@
 msgstr "Internt dataströmfel."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Saknar elementet \"%s\" - kontrollera din GStreamer-installation."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr ""
 "En %s-insticksmodul krävs för att spela upp den här strömmen men är inte "
@@ -87,9 +91,9 @@
 msgid "This appears to be a text file"
 msgstr "Den här ser ut att vara en textfil"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Saknar elementet \"%s\" - kontrollera din GStreamer-installation."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Kunde inte skapa \"decodebin\"-element."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -161,171 +165,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Fel vid sändning av data till \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Den här cd-skivan saknar ljudspår"
-
 msgid "Can't record audio fast enough"
 msgstr "Kan inte spela in ljud tillräckligt snabbt"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Misslyckades med att läsa tagg: inte tillräckligt mycket data"
-
-msgid "track ID"
-msgstr "spår-id"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz spår-id"
-
-msgid "artist ID"
-msgstr "artist-id"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz artist-id"
-
-msgid "album ID"
-msgstr "album-id"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz album-id"
-
-msgid "album artist ID"
-msgstr "albumartist-id"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albumartist-id"
-
-msgid "track TRM ID"
-msgstr "spår TRM-ID"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM-ID"
-
-msgid "capturing shutter speed"
-msgstr ""
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure compensation"
-msgstr ""
-
-msgid "The exposure compensation used when capturing an image"
-msgstr ""
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr ""
-
-msgid "The white balance mode set when capturing an image"
-msgstr ""
-
-msgid "capturing contrast"
-msgstr ""
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr ""
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr ""
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr ""
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Den här cd-skivan saknar ljudspår"
 
 msgid "ID3 tag"
 msgstr "ID3-tagg"
@@ -491,6 +335,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Insticksmodul eller element av okänd typ"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Misslyckades med att läsa tagg: inte tillräckligt mycket data"
+
+msgid "track ID"
+msgstr "spår-id"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz spår-id"
+
+msgid "artist ID"
+msgstr "artist-id"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz artist-id"
+
+msgid "album ID"
+msgstr "album-id"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz album-id"
+
+msgid "album artist ID"
+msgstr "albumartist-id"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz albumartist-id"
+
+msgid "track TRM ID"
+msgstr "spår TRM-ID"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM-ID"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Övergripande"
 
@@ -584,9 +588,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP-strömmar kan inte spelas upp än."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Kunde inte skapa \"decodebin\"-element."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/tr.gmo b/po/tr.gmo
index 4c0c88e..0fcb708 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index b8afde1..f668c4b 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2011-04-26 19:22+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -73,6 +73,10 @@
 msgstr "İç veri akışı hatası."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Kayıp öğe '%s' - GStreamer kurulumunu denetleyin."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "Bir %s eklenti bu akışı çalmak için gerekli, fakat kurulu değil."
 
@@ -82,9 +86,9 @@
 msgid "This appears to be a text file"
 msgstr "Bu bir metin dosyasına benziyor"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Kayıp öğe '%s' - GStreamer kurulumunu denetleyin."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "\"decodebin\" öğesi oluşturulamıyor."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -156,171 +160,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Dosyayı şuraya gönderirken hata \"%s:%d\"."
 
-msgid "This CD has no audio tracks"
-msgstr "Bu CD hiç ses izi içermiyor"
-
 msgid "Can't record audio fast enough"
 msgstr "Sesi yeterince hızlı kaydedemiyor"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Etiketi okunamadı: yetersiz veri"
-
-msgid "track ID"
-msgstr "iz BAŞLIĞI"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz iz BAŞLIĞI ID"
-
-msgid "artist ID"
-msgstr "sanatçı BAŞLIĞI"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz sanatçı BAŞLIĞI ID"
-
-msgid "album ID"
-msgstr "albüm BAŞLIĞI"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz albümü BAŞLIĞI"
-
-msgid "album artist ID"
-msgstr "albüm sanatçısı BAŞLIĞI"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz albüm sanatçısı BAŞLIĞI"
-
-msgid "track TRM ID"
-msgstr "iz TRM BAŞLIĞI"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM BAŞLIĞI"
-
-msgid "capturing shutter speed"
-msgstr "objektif hızını yakalıyor"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Saniye bazında, bir resim çekerken kullanılan objektif hızı"
-
-msgid "capturing focal ratio"
-msgstr "odaksal oranı yakalıyor"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Resim çekerken kullanılan odaksal oran (f-numarası)"
-
-msgid "capturing focal length"
-msgstr "odaksal uzunluğu yakalıyor"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Mm bazında, resim çekerken kullanılan odaksal uzunluk"
-
-msgid "capturing digital zoom ratio"
-msgstr "sayısal zum oranını yakalıyor"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Bir resim çekerken kullanılan sayısal yakınlaştırma oranı"
-
-msgid "capturing iso speed"
-msgstr "iso hızını yakalıyor"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Bir resim çekerken kulllanılan ISO hızı"
-
-msgid "capturing exposure program"
-msgstr "pozlandırma programını yakalıyor"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Bir resim çekerken kullanılan pozlandırma programı"
-
-msgid "capturing exposure mode"
-msgstr "pozlandırma kipini yakalıyor"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Bir resim çekerken kullanılan pozlandırma kipi"
-
-msgid "capturing exposure compensation"
-msgstr "pozlandırma kipini yakalanıyor"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Bir resim çekerken kullanılan pozlandırma kipi"
-
-msgid "capturing scene capture type"
-msgstr "manzara çekme türünü yakalıyor"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Bir resim çekerken kullanılan manzara yakalama kipi"
-
-msgid "capturing gain adjustment"
-msgstr "kazanç ayarı yakalanıyor"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Bir resime uygulanan kapsamlı kazanç ayarı"
-
-msgid "capturing white balance"
-msgstr "beyaz dengesi yakalanıyor"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Bir resim çekerken kullanılan beyaz dengesi kipi"
-
-msgid "capturing contrast"
-msgstr "zıtlık yakalanıyor"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Bir resim çekerken uygulanan zıtlık işleminin yönü"
-
-msgid "capturing saturation"
-msgstr "canlılık yakalanıyor"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Bir resim çekerken uygulanan doygunluk işleminin yönü"
-
-msgid "capturing sharpness"
-msgstr "keskinlik yakalanıyor"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Bir resim çekerken uygulanan keskinlik işleminin yönü"
-
-msgid "capturing flash fired"
-msgstr "flaşın yanışı yakalanıyor"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Bir resim çekerken eğer flaş patlamışsa"
-
-msgid "capturing flash mode"
-msgstr "flaş kipi yakalanıyor"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Bir resim çekerken kullanılan flaş kipi"
-
-msgid "capturing metering mode"
-msgstr "metreleme kipi yakalanıyor"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Bir resim çekmek için pozlandırmanın metreleme kipi"
-
-msgid "capturing source"
-msgstr "kaynak yakalanıyor"
-
-msgid "The source or type of device used for the capture"
-msgstr "Resim çekerken kullanılan aygıtın kaynak türü"
-
-msgid "image horizontal ppi"
-msgstr "yatay resim ppi değeri"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Medya (resim/vidyo)'nın ppi değerinden yatay piksel yoğunluğu"
-
-msgid "image vertical ppi"
-msgstr "resim dikey ppi değeri"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Medya (resim/vidyo)'nun ppi değerinden dikey piksel yoğunluğu"
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Bu CD hiç ses izi içermiyor"
 
 msgid "ID3 tag"
 msgstr "ID3 etiketi"
@@ -485,6 +329,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "Bilinmeyen türde eklenti veya öğe"
 
+msgid "Failed to read tag: not enough data"
+msgstr "Etiketi okunamadı: yetersiz veri"
+
+msgid "track ID"
+msgstr "iz BAŞLIĞI"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz iz BAŞLIĞI ID"
+
+msgid "artist ID"
+msgstr "sanatçı BAŞLIĞI"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz sanatçı BAŞLIĞI ID"
+
+msgid "album ID"
+msgstr "albüm BAŞLIĞI"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz albümü BAŞLIĞI"
+
+msgid "album artist ID"
+msgstr "albüm sanatçısı BAŞLIĞI"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz albüm sanatçısı BAŞLIĞI"
+
+msgid "track TRM ID"
+msgstr "iz TRM BAŞLIĞI"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM BAŞLIĞI"
+
+msgid "capturing shutter speed"
+msgstr "objektif hızını yakalıyor"
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr "Saniye bazında, bir resim çekerken kullanılan objektif hızı"
+
+msgid "capturing focal ratio"
+msgstr "odaksal oranı yakalıyor"
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr "Resim çekerken kullanılan odaksal oran (f-numarası)"
+
+msgid "capturing focal length"
+msgstr "odaksal uzunluğu yakalıyor"
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr "Mm bazında, resim çekerken kullanılan odaksal uzunluk"
+
+msgid "capturing digital zoom ratio"
+msgstr "sayısal zum oranını yakalıyor"
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr "Bir resim çekerken kullanılan sayısal yakınlaştırma oranı"
+
+msgid "capturing iso speed"
+msgstr "iso hızını yakalıyor"
+
+msgid "The ISO speed used when capturing an image"
+msgstr "Bir resim çekerken kulllanılan ISO hızı"
+
+msgid "capturing exposure program"
+msgstr "pozlandırma programını yakalıyor"
+
+msgid "The exposure program used when capturing an image"
+msgstr "Bir resim çekerken kullanılan pozlandırma programı"
+
+msgid "capturing exposure mode"
+msgstr "pozlandırma kipini yakalıyor"
+
+msgid "The exposure mode used when capturing an image"
+msgstr "Bir resim çekerken kullanılan pozlandırma kipi"
+
+msgid "capturing exposure compensation"
+msgstr "pozlandırma kipini yakalanıyor"
+
+msgid "The exposure compensation used when capturing an image"
+msgstr "Bir resim çekerken kullanılan pozlandırma kipi"
+
+msgid "capturing scene capture type"
+msgstr "manzara çekme türünü yakalıyor"
+
+msgid "The scene capture mode used when capturing an image"
+msgstr "Bir resim çekerken kullanılan manzara yakalama kipi"
+
+msgid "capturing gain adjustment"
+msgstr "kazanç ayarı yakalanıyor"
+
+msgid "The overall gain adjustment applied on an image"
+msgstr "Bir resime uygulanan kapsamlı kazanç ayarı"
+
+msgid "capturing white balance"
+msgstr "beyaz dengesi yakalanıyor"
+
+msgid "The white balance mode set when capturing an image"
+msgstr "Bir resim çekerken kullanılan beyaz dengesi kipi"
+
+msgid "capturing contrast"
+msgstr "zıtlık yakalanıyor"
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr "Bir resim çekerken uygulanan zıtlık işleminin yönü"
+
+msgid "capturing saturation"
+msgstr "canlılık yakalanıyor"
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr "Bir resim çekerken uygulanan doygunluk işleminin yönü"
+
+msgid "capturing sharpness"
+msgstr "keskinlik yakalanıyor"
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr "Bir resim çekerken uygulanan keskinlik işleminin yönü"
+
+msgid "capturing flash fired"
+msgstr "flaşın yanışı yakalanıyor"
+
+msgid "If the flash fired while capturing an image"
+msgstr "Bir resim çekerken eğer flaş patlamışsa"
+
+msgid "capturing flash mode"
+msgstr "flaş kipi yakalanıyor"
+
+msgid "The selected flash mode while capturing an image"
+msgstr "Bir resim çekerken kullanılan flaş kipi"
+
+msgid "capturing metering mode"
+msgstr "metreleme kipi yakalanıyor"
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr "Bir resim çekmek için pozlandırmanın metreleme kipi"
+
+msgid "capturing source"
+msgstr "kaynak yakalanıyor"
+
+msgid "The source or type of device used for the capture"
+msgstr "Resim çekerken kullanılan aygıtın kaynak türü"
+
+msgid "image horizontal ppi"
+msgstr "yatay resim ppi değeri"
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr "Medya (resim/vidyo)'nın ppi değerinden yatay piksel yoğunluğu"
+
+msgid "image vertical ppi"
+msgstr "resim dikey ppi değeri"
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Medya (resim/vidyo)'nun ppi değerinden dikey piksel yoğunluğu"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "Ana"
 
@@ -536,9 +540,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP akışları henüz çalınamıyor."
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "\"decodebin\" öğesi oluşturulamıyor."
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/po/uk.gmo b/po/uk.gmo
index d7f618d..acb5c39 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 1851464..bbcc921 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -3,13 +3,13 @@
 # This file is distributed under the same license as the gst-plugins-base package.
 #
 # Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2007.
-# Yuri Chornoivan <yurchor@ukr.net>, 2010, 2011, 2012.
+# Yuri Chornoivan <yurchor@ukr.net>, 2010, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-11-28 20:16+0200\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2011-04-27 17:49+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
 "Language: uk\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 1.1\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Не вдалося відкрити пристрій відтворення у режимі моно."
@@ -78,6 +78,11 @@
 msgstr "Помилка внутрішнього потоку даних."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+"Відсутній елемент «%s». Перевірте чи встановлено GStreamer належним чином."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "Для відтворення потоку потрібен модуль %s, але він не встановлений."
 
@@ -87,10 +92,9 @@
 msgid "This appears to be a text file"
 msgstr "Файл схожий на текстовий файл"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
-"Відсутній елемент «%s». Перевірте чи встановлено GStreamer належним чином."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Не вдалося створити елемент \"decodebin\"."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -163,11 +167,174 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "Помилка при надсиланні даних до \"%s:%d\"."
 
+msgid "Can't record audio fast enough"
+msgstr "Не вдалося запис аудіоданих з потрібною швидкістю"
+
 msgid "This CD has no audio tracks"
 msgstr "На цьому компакт-диску немає звукових доріжок"
 
-msgid "Can't record audio fast enough"
-msgstr "Не вдалося запис аудіоданих з потрібною швидкістю"
+msgid "ID3 tag"
+msgstr "Мітка ID3"
+
+msgid "APE tag"
+msgstr "Мітка APE"
+
+msgid "ICY internet radio"
+msgstr "Інтернет-радіо ICY"
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr "Аудіо без втрат від Apple (ALAC)"
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr "Вільний алгоритм аудіо без втрат (FLAC)"
+
+msgid "Lossless True Audio (TTA)"
+msgstr "Lossless True Audio (TTA)"
+
+msgid "Windows Media Speech"
+msgstr "Windows Media Speech"
+
+msgid "CYUV Lossless"
+msgstr "CYUV без втрат"
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr "MSZH без втрат"
+
+msgid "Run-length encoding"
+msgstr "Кодування Run-length"
+
+msgid "Subtitle"
+msgstr ""
+
+#, fuzzy
+msgid "MPL2 subtitle format"
+msgstr "Формат субтитрів TMPlayer"
+
+#, fuzzy
+msgid "DKS subtitle format"
+msgstr "Формат субтитрів Sami"
+
+#, fuzzy
+msgid "QTtext subtitle format"
+msgstr "Формат субтитрів Kate"
+
+msgid "Sami subtitle format"
+msgstr "Формат субтитрів Sami"
+
+msgid "TMPlayer subtitle format"
+msgstr "Формат субтитрів TMPlayer"
+
+msgid "Kate subtitle format"
+msgstr "Формат субтитрів Kate"
+
+#, fuzzy
+msgid "Uncompressed video"
+msgstr "Нестиснений YUV"
+
+#, fuzzy
+msgid "Uncompressed gray"
+msgstr "Нестиснене сіре зображення"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s YUV %s"
+msgstr "Нестиснений YUV"
+
+#, fuzzy, c-format
+msgid "Uncompressed %s%d-bit %s"
+msgstr "Нестиснений пакетний %d-бітовий %s"
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "DivX MPEG-4 версії %d"
+
+#, fuzzy
+msgid "Uncompressed audio"
+msgstr "Нестиснений YUV"
+
+#, fuzzy, c-format
+msgid "Raw %d-bit %s audio"
+msgstr "Необроблений %d-бітовий PCM-звук"
+
+msgid "Audio CD source"
+msgstr "Джерело аудіо-CD"
+
+msgid "DVD source"
+msgstr "Джерело DVD"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr "Джерело потокового протоколу реального часу (RTSP)"
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr "Джерело протоколу Microsoft Media Server (MMS)"
+
+#, c-format
+msgid "%s protocol source"
+msgstr "Джерело протоколу %s"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr "RTP модуль розпаковування відеоданих %s"
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr "RTP модуль розпаковування аудіоданих %s"
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr "RTP модуль розпаковування даних %s"
+
+#, c-format
+msgid "%s demuxer"
+msgstr "демультиплексор %s"
+
+#, c-format
+msgid "%s decoder"
+msgstr "декодер %s"
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr "RTP модуль запаковування відеоданих %s"
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr "RTP модуль запаковування аудіоданих %s"
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr "RTP модуль запаковування даних %s"
+
+#, c-format
+msgid "%s muxer"
+msgstr "мультиплексор %s"
+
+#, c-format
+msgid "%s encoder"
+msgstr "кодер %s"
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr "Елемент GStreamer %s"
+
+msgid "Unknown source element"
+msgstr "Невідомий елемент джерела"
+
+msgid "Unknown sink element"
+msgstr "Невідомий елемент приймача"
+
+msgid "Unknown element"
+msgstr "Невідомий елемент"
+
+msgid "Unknown decoder element"
+msgstr "Невідомий елемент декодера"
+
+msgid "Unknown encoder element"
+msgstr "Невідомий елемент кодера"
+
+msgid "Plugin or element of unknown type"
+msgstr "Модуль або елемент невідомого типу"
 
 msgid "Failed to read tag: not enough data"
 msgstr "Не вдалося прочитати мітку: недостатньо даних"
@@ -335,167 +502,10 @@
 "на дюйм"
 
 msgid "ID3v2 frame"
-msgstr "Блок ID3v2"
+msgstr ""
 
 msgid "unparsed id3v2 tag frame"
-msgstr "необроблений блок теґу id3v2"
-
-msgid "ID3 tag"
-msgstr "Мітка ID3"
-
-msgid "APE tag"
-msgstr "Мітка APE"
-
-msgid "ICY internet radio"
-msgstr "Інтернет-радіо ICY"
-
-msgid "Apple Lossless Audio (ALAC)"
-msgstr "Аудіо без втрат від Apple (ALAC)"
-
-msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Вільний алгоритм аудіо без втрат (FLAC)"
-
-msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
-
-msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
-
-msgid "CYUV Lossless"
-msgstr "CYUV без втрат"
-
-msgid "FFMpeg v1"
-msgstr "FFMpeg v1"
-
-msgid "Lossless MSZH"
-msgstr "MSZH без втрат"
-
-msgid "Run-length encoding"
-msgstr "Кодування Run-length"
-
-msgid "Subtitle"
-msgstr "Субтитри"
-
-msgid "MPL2 subtitle format"
-msgstr "Формат субтитрів MPL2"
-
-msgid "DKS subtitle format"
-msgstr "Формат субтитрів DKS"
-
-msgid "QTtext subtitle format"
-msgstr "Формат субтитрів QTtext"
-
-msgid "Sami subtitle format"
-msgstr "Формат субтитрів Sami"
-
-msgid "TMPlayer subtitle format"
-msgstr "Формат субтитрів TMPlayer"
-
-msgid "Kate subtitle format"
-msgstr "Формат субтитрів Kate"
-
-msgid "Uncompressed video"
-msgstr "Нестиснене відео"
-
-msgid "Uncompressed gray"
-msgstr "Нестиснене сіре зображення"
-
-#, c-format
-msgid "Uncompressed %s YUV %s"
-msgstr "Нестиснене %s, YUV %s"
-
-#, c-format
-msgid "Uncompressed %s%d-bit %s"
-msgstr "Нестиснене %s%d-бітове %s"
-
-#, c-format
-msgid "DivX MPEG-4 Version %d"
-msgstr "DivX MPEG-4 версії %d"
-
-msgid "Uncompressed audio"
-msgstr "Нестиснені звукові дані"
-
-#, c-format
-msgid "Raw %d-bit %s audio"
-msgstr "Необроблені %d-бітові звукові дані %s"
-
-msgid "Audio CD source"
-msgstr "Джерело аудіо-CD"
-
-msgid "DVD source"
-msgstr "Джерело DVD"
-
-msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Джерело потокового протоколу реального часу (RTSP)"
-
-msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Джерело протоколу Microsoft Media Server (MMS)"
-
-#, c-format
-msgid "%s protocol source"
-msgstr "Джерело протоколу %s"
-
-#, c-format
-msgid "%s video RTP depayloader"
-msgstr "RTP модуль розпаковування відеоданих %s"
-
-#, c-format
-msgid "%s audio RTP depayloader"
-msgstr "RTP модуль розпаковування аудіоданих %s"
-
-#, c-format
-msgid "%s RTP depayloader"
-msgstr "RTP модуль розпаковування даних %s"
-
-#, c-format
-msgid "%s demuxer"
-msgstr "демультиплексор %s"
-
-#, c-format
-msgid "%s decoder"
-msgstr "декодер %s"
-
-#, c-format
-msgid "%s video RTP payloader"
-msgstr "RTP модуль запаковування відеоданих %s"
-
-#, c-format
-msgid "%s audio RTP payloader"
-msgstr "RTP модуль запаковування аудіоданих %s"
-
-#, c-format
-msgid "%s RTP payloader"
-msgstr "RTP модуль запаковування даних %s"
-
-#, c-format
-msgid "%s muxer"
-msgstr "мультиплексор %s"
-
-#, c-format
-msgid "%s encoder"
-msgstr "кодер %s"
-
-#, c-format
-msgid "GStreamer element %s"
-msgstr "Елемент GStreamer %s"
-
-msgid "Unknown source element"
-msgstr "Невідомий елемент джерела"
-
-msgid "Unknown sink element"
-msgstr "Невідомий елемент приймача"
-
-msgid "Unknown element"
-msgstr "Невідомий елемент"
-
-msgid "Unknown decoder element"
-msgstr "Невідомий елемент декодера"
-
-msgid "Unknown encoder element"
-msgstr "Невідомий елемент кодера"
-
-msgid "Plugin or element of unknown type"
-msgstr "Модуль або елемент невідомого типу"
+msgstr ""
 
 #~ msgid "Master"
 #~ msgstr "Головний"
@@ -530,61 +540,6 @@
 #~ msgid "Capture"
 #~ msgstr "Запис"
 
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr ""
-#~ "Не вдалося відкрити файл віртуальної файлової системи «%s» для запису: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Не вказано файл"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Не вдалося закрити файл віртуальної файлової системи «%s»."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Помилка при записі у файл «%s»."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "Неправильний URI субтитру «%s», субтитри вимкнено."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Відтворення потоків RTSP поки-що не підтримується."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Не вдалося створити елемент \"decodebin\"."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Виявлено лише потік субтитрів. Або ви завантажили файл субтитрів чи інший "
-#~ "текстовий файл, або носій не розпізнано."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Не встановлено декодер для обробки цього файлу. Можливо потрібно "
-#~ "встановити додаткові модулі."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Файл не є мультимедійним"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Виявлено потік субтитрів, але не відеопотік."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Відсутні елементи autovideosink та xvimagesink."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Відсутні елементи autoaudiosink та alsasink."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Помилка при надсиланні заголовку gdp даних до \"%s:%d\"."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Помилка при надсиланні даних gdp до «%s:%d»."
-
 #~ msgid "Connection to %s:%d refused."
 #~ msgstr "У з'єднанні з %s:%d відмовлено."
 
@@ -627,6 +582,52 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Необроблений звук (дані з плаваючою комою)"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr ""
+#~ "Не вдалося відкрити файл віртуальної файлової системи «%s» для запису: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Не вказано файл"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Не вдалося закрити файл віртуальної файлової системи «%s»."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Помилка при записі у файл «%s»."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "Неправильний URI субтитру «%s», субтитри вимкнено."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Відтворення потоків RTSP поки-що не підтримується."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Виявлено лише потік субтитрів. Або ви завантажили файл субтитрів чи інший "
+#~ "текстовий файл, або носій не розпізнано."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Не встановлено декодер для обробки цього файлу. Можливо потрібно "
+#~ "встановити додаткові модулі."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Файл не є мультимедійним"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Виявлено потік субтитрів, але не відеопотік."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Відсутні елементи autovideosink та xvimagesink."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Відсутні елементи autoaudiosink та alsasink."
+
 #~ msgid "No device specified."
 #~ msgstr "Пристрій не вказано."
 
@@ -639,6 +640,12 @@
 #~ msgid "Could not open device \"%s\" for reading and writing."
 #~ msgstr "Не вдалося відкрити пристрій «%s» для читання чи запису."
 
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Помилка при надсиланні заголовку gdp даних до \"%s:%d\"."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Помилка при надсиланні даних gdp до «%s:%d»."
+
 #~ msgid "No file name specified."
 #~ msgstr "Не вказано назву файлу."
 
diff --git a/po/vi.gmo b/po/vi.gmo
index 5781287..7140e99 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index cab75eb..7f79c24 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,25 +1,21 @@
 # Vietnamese Translation for GST Plugins Base.
-# Copyright © 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-base package.
 # Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.0.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
-"PO-Revision-Date: 2012-12-02 08:03+0700\n"
-"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
+"PO-Revision-Date: 2010-04-27 22:51+0930\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Team-Website: <http://translationproject.org/team/vi.html>\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
-"X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Không thể mở thiết bị để phát lại trong chế độ đơn nguồn."
@@ -69,7 +65,7 @@
 msgstr "Không thể mở thiết bị đĩa CD để đọc."
 
 msgid "Could not seek CD."
-msgstr "Không thể di chuyển vị trí đọc trên đĩa CD."
+msgstr "Không thể tìm trên đĩa CD."
 
 msgid "Could not read CD."
 msgstr "Không thể đọc đĩa CD."
@@ -78,6 +74,10 @@
 msgstr "Lỗi luồng dữ liệu nội bộ."
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "Thiếu phần tử « %s » — hãy kiểm tra lại cài đặt GStreamer."
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "Cần phần bổ sung %s để phát luồng này nhưng chưa cài đặt."
 
@@ -87,9 +87,9 @@
 msgid "This appears to be a text file"
 msgstr "Hình như đây là tập tin văn bản"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "Thiếu phần tử “%s” — hãy kiểm tra lại cài đặt GStreamer."
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "Không thể tạo phần tử « decodebin »."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -139,196 +139,34 @@
 
 #, c-format
 msgid "No decoder available for type '%s'."
-msgstr "Không có bộ giải mã sẵn sàng cho kiểu “%s”."
+msgstr "Không có bộ giải mã sẵn sàng cho kiểu « %s »."
 
 msgid "No URI specified to play from."
 msgstr "Chưa ghi rõ URI từ đó cần phát."
 
 #, c-format
 msgid "Invalid URI \"%s\"."
-msgstr "URI không hợp lệ “%s”."
+msgstr "URI không hợp lệ « %s »."
 
 msgid "This stream type cannot be played yet."
 msgstr "Chưa có khả năng phát kiểu luồng này."
 
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
-msgstr "Không có bộ quản lý địa chỉ URI được thực hiện cho “%s”."
+msgstr "Không có bộ quản lý địa chỉ URI được thực hiện cho « %s »."
 
 msgid "Source element is invalid."
 msgstr "Phần tử nguồn không phải hợp lệ."
 
 #, c-format
 msgid "Error while sending data to \"%s:%d\"."
-msgstr "Lỗi khi gởi dữ liệu cho “%s:%d”."
-
-msgid "This CD has no audio tracks"
-msgstr "Đĩa CD này không có rãnh âm thanh nào"
+msgstr "Lỗi khi gởi dữ liệu cho « %s:%d »."
 
 msgid "Can't record audio fast enough"
 msgstr "Không thể thu âm thanh một cách đủ nhanh"
 
-msgid "Failed to read tag: not enough data"
-msgstr "Lỗi đọc thẻ: không đủ dữ liệu"
-
-msgid "track ID"
-msgstr "mã rãnh"
-
-msgid "MusicBrainz track ID"
-msgstr "mã rãnh MusicBrainz"
-
-msgid "artist ID"
-msgstr "mã nghệ sĩ"
-
-msgid "MusicBrainz artist ID"
-msgstr "mã nghệ sĩ MusicBrainz"
-
-msgid "album ID"
-msgstr "mã tập nhạc"
-
-msgid "MusicBrainz album ID"
-msgstr "mã tập nhạc MusicBrainz"
-
-msgid "album artist ID"
-msgstr "mã nghệ sĩ tập nhạc"
-
-msgid "MusicBrainz album artist ID"
-msgstr "mã nghệ sĩ tập nhạc MusicBrainz"
-
-msgid "track TRM ID"
-msgstr "mã TRM rãnh"
-
-msgid "MusicBrainz TRM ID"
-msgstr "mã TRM rãnh MusicBrainz"
-
-msgid "capturing shutter speed"
-msgstr "tốc độ màn chập khi chụp"
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr "Tốc độ màn chập sử dụng khi chụp ảnh, tính bằng giây"
-
-msgid "capturing focal ratio"
-msgstr "tỷ lệ tiêu điểm khi chụp"
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr "Độ mở ống kính (số-f) được sử dụng khi chụp ảnh"
-
-msgid "capturing focal length"
-msgstr "độ dài tiêu cự khi chụp"
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr "Chiều dài tiêu cự ống kính được sử dụng khi chụp một ảnh, tính bằng mm"
-
-msgid "capturing digital zoom ratio"
-msgstr "tỷ lệ phóng to kỹ thuật số khi chụp"
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr "Tỷ lệ phóng to kỹ thuật số được sử dụng khi chụp một ảnh"
-
-msgid "capturing iso speed"
-msgstr "tốc độ ISO khi chụp"
-
-msgid "The ISO speed used when capturing an image"
-msgstr "Tốc độ ISO sử dụng để chụp ảnh"
-
-msgid "capturing exposure program"
-msgstr "chương trình phơi sáng khi chụp"
-
-msgid "The exposure program used when capturing an image"
-msgstr "Chương trình phơi sáng được sử dụng khi chụp một ảnh"
-
-msgid "capturing exposure mode"
-msgstr "chế độ độ phơi sáng khi chụp"
-
-msgid "The exposure mode used when capturing an image"
-msgstr "Chế độ phơi sáng được sử dụng khi chụp một ảnh"
-
-msgid "capturing exposure compensation"
-msgstr "bù phơi sáng khi chụp"
-
-msgid "The exposure compensation used when capturing an image"
-msgstr "Bù phơi sáng được sử dụng khi chụp một ảnh"
-
-msgid "capturing scene capture type"
-msgstr "kiểu chụp phông nền khi chụp"
-
-msgid "The scene capture mode used when capturing an image"
-msgstr "Chế độ chụp phông nền được sử dụng khi chụp một ảnh"
-
-msgid "capturing gain adjustment"
-msgstr "điều chỉnh hệ số khuếch đại khi chụp"
-
-msgid "The overall gain adjustment applied on an image"
-msgstr "Điều chỉnh hệ số khuếch đại toàn bộ được áp dụng trên một ảnh"
-
-msgid "capturing white balance"
-msgstr "cân trắng trắng khi chụp"
-
-msgid "The white balance mode set when capturing an image"
-msgstr "Đặt chế độ cân bằng trắng khi chụp một ảnh"
-
-msgid "capturing contrast"
-msgstr "độ tương phản khi chụp"
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr "Hướng xử lý tương phản được áp dụng khi chụp một ảnh"
-
-msgid "capturing saturation"
-msgstr "độ bão hòa khi chụp"
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr "Hướng xử lý bão hòa được áp dụng khi chụp một ảnh"
-
-msgid "capturing sharpness"
-msgstr "độ sắc nét khi chụp"
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr "Hướng xử lý độ sắc nét được áp dụng khi chụp một ảnh"
-
-msgid "capturing flash fired"
-msgstr "chế độ đèn chớp khi chụp"
-
-msgid "If the flash fired while capturing an image"
-msgstr "Nều đèn chớp lóe lên trong không chụp một ảnh"
-
-msgid "capturing flash mode"
-msgstr "chế độ đèn chớp khi chụp"
-
-msgid "The selected flash mode while capturing an image"
-msgstr "Lựa chọn chế độ đèn chớp trong khi chụp một ảnh"
-
-msgid "capturing metering mode"
-msgstr "chế độ đo khi chụp"
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr "Chế độ đo được sử dụng khi định đoạt độ phơi sáng khi chụp một ảnh"
-
-msgid "capturing source"
-msgstr "nguồn chụp"
-
-msgid "The source or type of device used for the capture"
-msgstr "Nguồn hay kiểu của thiết bị được sử dụng khi chụp"
-
-msgid "image horizontal ppi"
-msgstr "ppi (điểm ảnh mỗi inch) chiều ngang ảnh"
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-"Mật độ điểm ảnh (pixel) theo chiều ngang cho media (ảnh/phim) tính bằng ppi"
-
-msgid "image vertical ppi"
-msgstr "ppi chiều dọc ảnh"
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-"Mật độ điểm ảnh (pixel) theo chiều dọc cho media (ảnh/phim) tính bằng ppi"
-
-msgid "ID3v2 frame"
-msgstr "Khung ID3v2"
-
-msgid "unparsed id3v2 tag frame"
-msgstr "khung thẻ id3v2 chưa phân tích"
+msgid "This CD has no audio tracks"
+msgstr "Đĩa CD này không có rãnh âm thanh nào"
 
 msgid "ID3 tag"
 msgstr "Thẻ ID3"
@@ -354,7 +192,7 @@
 msgstr "Tiếng nói của nhạc/ảnh Windows (Windows Media Speech)"
 
 msgid "CYUV Lossless"
-msgstr "CYUV không mất dữ liệu (CYUV Lossless)"
+msgstr "CYUV không mất gì (CYUV Lossless)"
 
 msgid "FFMpeg v1"
 msgstr "FFMpeg v1"
@@ -366,16 +204,19 @@
 msgstr "Mã hoá độ dài chạy (Run-Length Encoding: RLE)"
 
 msgid "Subtitle"
-msgstr "Phụ đề"
+msgstr ""
 
+#, fuzzy
 msgid "MPL2 subtitle format"
-msgstr "Định dạng phụ MPL2"
+msgstr "Định dạng phụ đề TMPlayer"
 
+#, fuzzy
 msgid "DKS subtitle format"
-msgstr "Định dạng phụ đề DKS"
+msgstr "Định dạng phụ đề Sami"
 
+#, fuzzy
 msgid "QTtext subtitle format"
-msgstr "Định dạng phụ đề QTtext"
+msgstr "Định dạng phụ đề Kate"
 
 msgid "Sami subtitle format"
 msgstr "Định dạng phụ đề Sami"
@@ -386,30 +227,33 @@
 msgid "Kate subtitle format"
 msgstr "Định dạng phụ đề Kate"
 
+#, fuzzy
 msgid "Uncompressed video"
-msgstr "Video không nén"
+msgstr "YUV không nén"
 
+#, fuzzy
 msgid "Uncompressed gray"
-msgstr "Màu xám không nén"
+msgstr "Ảnh màu xám không nén"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Uncompressed %s YUV %s"
-msgstr "%s YUV %s không nén"
+msgstr "YUV không nén"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Uncompressed %s%d-bit %s"
-msgstr "%s %d-bit %s không nén"
+msgstr "%d-bit %s có bảng chọn không nén"
 
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr "DivX MPEG-4 Phiên bản %d"
 
+#, fuzzy
 msgid "Uncompressed audio"
-msgstr "Âm thanh không nén"
+msgstr "YUV không nén"
 
-#, c-format
+#, fuzzy, c-format
 msgid "Raw %d-bit %s audio"
-msgstr "Âm thanh %d-bit %s thô"
+msgstr "Âm thanh PCM %d-bit thô"
 
 msgid "Audio CD source"
 msgstr "Nguồn đĩa CD âm thanh"
@@ -490,10 +334,170 @@
 msgstr "Không rõ phần tử mã hoá"
 
 msgid "Plugin or element of unknown type"
-msgstr "Không rõ kiểu của phần bổ sung hay phần tử"
+msgstr "Không rõ kiểu phần bổ sung hay phần tử"
+
+msgid "Failed to read tag: not enough data"
+msgstr "Lỗi đọc thẻ: không đủ dữ liệu"
+
+msgid "track ID"
+msgstr "mã rãnh"
+
+msgid "MusicBrainz track ID"
+msgstr "mã rãnh MusicBrainz"
+
+msgid "artist ID"
+msgstr "mã nghệ sĩ"
+
+msgid "MusicBrainz artist ID"
+msgstr "mã nghệ sĩ MusicBrainz"
+
+msgid "album ID"
+msgstr "mã tập nhạc"
+
+msgid "MusicBrainz album ID"
+msgstr "mã tập nhạc MusicBrainz"
+
+msgid "album artist ID"
+msgstr "mã nghệ sĩ tập nhạc"
+
+msgid "MusicBrainz album artist ID"
+msgstr "mã nghệ sĩ tập nhạc MusicBrainz"
+
+msgid "track TRM ID"
+msgstr "mã TRM rãnh"
+
+msgid "MusicBrainz TRM ID"
+msgstr "mã TRM rãnh MusicBrainz"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
 
 #~ msgid "Master"
-#~ msgstr "Chính"
+#~ msgstr "Chủ"
 
 #~ msgid "Bass"
 #~ msgstr "Trầm"
@@ -514,7 +518,7 @@
 #~ msgstr "CD"
 
 #~ msgid "Microphone"
-#~ msgstr "Micrô"
+#~ msgstr "Máy vi âm"
 
 #~ msgid "PC Speaker"
 #~ msgstr "Loa PC"
@@ -523,64 +527,10 @@
 #~ msgstr "Phát lại"
 
 #~ msgid "Capture"
-#~ msgstr "Chụp"
-
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Không thể mở tập tin VFS “%s” để ghi: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "Chưa nhập tên tập tin"
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Không thể đóng tập tin VFS “%s”."
-
-#~ msgid "Error while writing to file \"%s\"."
-#~ msgstr "Lỗi khi ghi vào tập tin “%s”."
-
-#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-#~ msgstr "URI phụ đề không hợp lệ “%s” nên tắt khả năng phụ đề."
-
-#~ msgid "RTSP streams cannot be played yet."
-#~ msgstr "Chưa có khả năng phát luồng RTSP."
-
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "Không thể tạo phần tử “decodebin”."
-
-#~ msgid ""
-#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
-#~ "file or some other type of text file, or the media file was not "
-#~ "recognized."
-#~ msgstr ""
-#~ "Chỉ phát hiện luồng phụ đề. Hoặc bạn đang nạp tập tin phụ đề hay tập tin "
-#~ "văn bản kiểu khác, hoặc không nhận diện tập tin nhạc/ảnh."
-
-#~ msgid ""
-#~ "You do not have a decoder installed to handle this file. You might need "
-#~ "to install the necessary plugins."
-#~ msgstr ""
-#~ "Chưa cài đặt bộ giải mã có khả năng quản lý tập tin này. Có thể cần phải "
-#~ "cài đặt các phần bổ sung thích hợp."
-
-#~ msgid "This is not a media file"
-#~ msgstr "Đây không phải tập tin nhạc/ảnh"
-
-#~ msgid "A subtitle stream was detected, but no video stream."
-#~ msgstr "Phát hiện luồng phụ đề, không có luồng ảnh động."
-
-#~ msgid "Both autovideosink and xvimagesink elements are missing."
-#~ msgstr "Thiếu phần tử autovideosink, cũng thiếu phần tử xvimagesink."
-
-#~ msgid "Both autoaudiosink and alsasink elements are missing."
-#~ msgstr "Thiếu phần tử autoaudiosink, cũng thiếu phần tử alsasink."
-
-#~ msgid "Error while sending gdp header data to \"%s:%d\"."
-#~ msgstr "Lỗi khi gởi dữ liệu phần đầu GDP cho “%s:%d”."
-
-#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
-#~ msgstr "Lỗi khi gởi dữ liệu trọng tải GDP cho “%s:%d”."
+#~ msgstr "Bắt"
 
 #~ msgid "Connection to %s:%d refused."
-#~ msgstr "Kết nối tới “%s:%d” bị từ chối."
+#~ msgstr "Kết nối tới « %s:%d » bị từ chối."
 
 #~ msgid "Uncompressed planar YUV 4:2:0"
 #~ msgstr "YUV 4:2:0 phẳng không nén"
@@ -621,14 +571,65 @@
 #~ msgid "Raw floating-point audio"
 #~ msgstr "Âm thanh dấu phẩy động thô"
 
+#~ msgid "Could not open vfs file \"%s\" for writing: %s."
+#~ msgstr "Không thể mở tập tin VFS « %s » để ghi: %s."
+
+#~ msgid "No filename given"
+#~ msgstr "Chưa nhập tên tập tin"
+
+#~ msgid "Could not close vfs file \"%s\"."
+#~ msgstr "Không thể đóng tập tin VFS « %s »."
+
+#~ msgid "Error while writing to file \"%s\"."
+#~ msgstr "Lỗi khi ghi vào tập tin « %s »."
+
+#~ msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+#~ msgstr "URI phụ đề không hợp lệ « %s » nên tắt khả năng phụ đề."
+
+#~ msgid "RTSP streams cannot be played yet."
+#~ msgstr "Chưa có khả năng phát luồng RTSP."
+
+#~ msgid ""
+#~ "Only a subtitle stream was detected. Either you are loading a subtitle "
+#~ "file or some other type of text file, or the media file was not "
+#~ "recognized."
+#~ msgstr ""
+#~ "Chỉ phát hiện luồng phụ đề. Hoặc bạn đang nạp tập tin phụ đề hay tập tin "
+#~ "văn bản kiểu khác, hoặc không nhận diện tập tin nhạc/ảnh."
+
+#~ msgid ""
+#~ "You do not have a decoder installed to handle this file. You might need "
+#~ "to install the necessary plugins."
+#~ msgstr ""
+#~ "Chưa cài đặt bộ giải mã có khả năng quản lý tập tin này. Có thể cần phải "
+#~ "cài đặt các phần bổ sung thích hợp."
+
+#~ msgid "This is not a media file"
+#~ msgstr "Đây không phải tập tin nhạc/ảnh"
+
+#~ msgid "A subtitle stream was detected, but no video stream."
+#~ msgstr "Phát hiện luồng phụ đề, không có luồng ảnh động."
+
+#~ msgid "Both autovideosink and xvimagesink elements are missing."
+#~ msgstr "Thiếu phần tử autovideosink, cũng thiếu phần tử xvimagesink."
+
+#~ msgid "Both autoaudiosink and alsasink elements are missing."
+#~ msgstr "Thiếu phần tử autoaudiosink, cũng thiếu phần tử alsasink."
+
 #~ msgid "No device specified."
 #~ msgstr "Chưa ghi rõ thiết bị nào"
 
 #~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Không có thiết bị “%s”."
+#~ msgstr "Không có thiết bị « %s »."
 
 #~ msgid "Device \"%s\" is already being used."
-#~ msgstr "Thiết bị “%s” đang được dùng."
+#~ msgstr "Thiết bị « %s » đang được dùng."
 
 #~ msgid "Could not open device \"%s\" for reading and writing."
-#~ msgstr "Không thể mở thiết bị “%s” để đọc và ghi."
+#~ msgstr "Không thể mở thiết bị « %s » để đọc và ghi."
+
+#~ msgid "Error while sending gdp header data to \"%s:%d\"."
+#~ msgstr "Lỗi khi gởi dữ liệu phần đầu GDP cho « %s:%d »."
+
+#~ msgid "Error while sending gdp payload data to \"%s:%d\"."
+#~ msgstr "Lỗi khi gởi dữ liệu trọng tải GDP cho « %s:%d »."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index db767db..ba744b2 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 3650eed..e63bdba 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.21.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-07-11 19:48+0100\n"
+"POT-Creation-Date: 2013-07-11 15:27+0200\n"
 "PO-Revision-Date: 2009-01-14 12:41+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -70,6 +70,10 @@
 msgstr "内部数据流错误。"
 
 #, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr "未找到组件‘%s’-请检查您的 GStreamer 安装情况。"
+
+#, c-format
 msgid "A %s plugin is required to play this stream, but not installed."
 msgstr "播放此数据流需要 %s 插件,但它未安装。"
 
@@ -80,9 +84,9 @@
 msgid "This appears to be a text file"
 msgstr "此文件是个文本文件"
 
-#, c-format
-msgid "Missing element '%s' - check your GStreamer installation."
-msgstr "未找到组件‘%s’-请检查您的 GStreamer 安装情况。"
+#, fuzzy
+msgid "Could not create \"uridecodebin\" element."
+msgstr "无法创建“decodebin”组件。"
 
 #, fuzzy, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -159,171 +163,11 @@
 msgid "Error while sending data to \"%s:%d\"."
 msgstr "发送数据至“%s:%d”时出错。"
 
-msgid "This CD has no audio tracks"
-msgstr "此 CD 无音轨"
-
 msgid "Can't record audio fast enough"
 msgstr "无法足够快的录音"
 
-msgid "Failed to read tag: not enough data"
-msgstr "无法读取标签: 数据不足"
-
-msgid "track ID"
-msgstr "音轨 ID"
-
-msgid "MusicBrainz track ID"
-msgstr "MusicBrainz 音轨 ID"
-
-msgid "artist ID"
-msgstr "艺人 ID"
-
-msgid "MusicBrainz artist ID"
-msgstr "MusicBrainz 艺人 ID"
-
-msgid "album ID"
-msgstr "专辑 ID"
-
-msgid "MusicBrainz album ID"
-msgstr "MusicBrainz 专辑 ID"
-
-msgid "album artist ID"
-msgstr "音轨艺人 ID"
-
-msgid "MusicBrainz album artist ID"
-msgstr "MusicBrainz 专辑艺人 ID"
-
-msgid "track TRM ID"
-msgstr "音轨 TRM ID"
-
-msgid "MusicBrainz TRM ID"
-msgstr "MusicBrainz TRM ID"
-
-msgid "capturing shutter speed"
-msgstr ""
-
-msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
-
-msgid "capturing focal ratio"
-msgstr ""
-
-msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
-
-msgid "capturing focal length"
-msgstr ""
-
-msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
-
-msgid "capturing digital zoom ratio"
-msgstr ""
-
-msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
-
-msgid "capturing iso speed"
-msgstr ""
-
-msgid "The ISO speed used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure program"
-msgstr ""
-
-msgid "The exposure program used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure mode"
-msgstr ""
-
-msgid "The exposure mode used when capturing an image"
-msgstr ""
-
-msgid "capturing exposure compensation"
-msgstr ""
-
-msgid "The exposure compensation used when capturing an image"
-msgstr ""
-
-msgid "capturing scene capture type"
-msgstr ""
-
-msgid "The scene capture mode used when capturing an image"
-msgstr ""
-
-msgid "capturing gain adjustment"
-msgstr ""
-
-msgid "The overall gain adjustment applied on an image"
-msgstr ""
-
-msgid "capturing white balance"
-msgstr ""
-
-msgid "The white balance mode set when capturing an image"
-msgstr ""
-
-msgid "capturing contrast"
-msgstr ""
-
-msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing saturation"
-msgstr ""
-
-msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing sharpness"
-msgstr ""
-
-msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
-
-msgid "capturing flash fired"
-msgstr ""
-
-msgid "If the flash fired while capturing an image"
-msgstr ""
-
-msgid "capturing flash mode"
-msgstr ""
-
-msgid "The selected flash mode while capturing an image"
-msgstr ""
-
-msgid "capturing metering mode"
-msgstr ""
-
-msgid ""
-"The metering mode used while determining exposure for capturing an image"
-msgstr ""
-
-msgid "capturing source"
-msgstr ""
-
-msgid "The source or type of device used for the capture"
-msgstr ""
-
-msgid "image horizontal ppi"
-msgstr ""
-
-msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
-
-msgid "image vertical ppi"
-msgstr ""
-
-msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr ""
-
-msgid "ID3v2 frame"
-msgstr ""
-
-msgid "unparsed id3v2 tag frame"
-msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "此 CD 无音轨"
 
 msgid "ID3 tag"
 msgstr "ID3 标识"
@@ -488,6 +332,166 @@
 msgid "Plugin or element of unknown type"
 msgstr "未知类型的插件或组件"
 
+msgid "Failed to read tag: not enough data"
+msgstr "无法读取标签: 数据不足"
+
+msgid "track ID"
+msgstr "音轨 ID"
+
+msgid "MusicBrainz track ID"
+msgstr "MusicBrainz 音轨 ID"
+
+msgid "artist ID"
+msgstr "艺人 ID"
+
+msgid "MusicBrainz artist ID"
+msgstr "MusicBrainz 艺人 ID"
+
+msgid "album ID"
+msgstr "专辑 ID"
+
+msgid "MusicBrainz album ID"
+msgstr "MusicBrainz 专辑 ID"
+
+msgid "album artist ID"
+msgstr "音轨艺人 ID"
+
+msgid "MusicBrainz album artist ID"
+msgstr "MusicBrainz 专辑艺人 ID"
+
+msgid "track TRM ID"
+msgstr "音轨 TRM ID"
+
+msgid "MusicBrainz TRM ID"
+msgstr "MusicBrainz TRM ID"
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
 #~ msgid "Master"
 #~ msgstr "主音量"
 
@@ -539,9 +543,6 @@
 #~ msgid "RTSP streams cannot be played yet."
 #~ msgstr "RTSP 流尚不能播放。"
 
-#~ msgid "Could not create \"decodebin\" element."
-#~ msgstr "无法创建“decodebin”组件。"
-
 #~ msgid ""
 #~ "Only a subtitle stream was detected. Either you are loading a subtitle "
 #~ "file or some other type of text file, or the media file was not "
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 812ce4d..71384ed 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = sys
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -103,21 +129,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -125,9 +158,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -500,22 +553,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -530,57 +586,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -596,12 +607,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -613,15 +619,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -630,6 +632,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -790,22 +807,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index f2da427..49cceea 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/ximage
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -137,10 +163,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstximagesink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstximagesink_la_CFLAGS) $(CFLAGS) \
 	$(libgstximagesink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +192,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstximagesink_la_SOURCES)
 DIST_SOURCES = $(libgstximagesink_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +210,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -514,6 +566,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -540,12 +593,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstximagesink.la: $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_DEPENDENCIES) $(EXTRA_libgstximagesink_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstximagesink_la_LINK) -rpath $(plugindir) $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_LIBADD) $(LIBS)
 
@@ -607,26 +663,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -638,15 +683,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -655,6 +696,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -799,19 +855,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/ximage/ximage.c b/sys/ximage/ximage.c
index ec4cdbc..0f4044c 100644
--- a/sys/ximage/ximage.c
+++ b/sys/ximage/ximage.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c
index 02faf01..6cc2cfa 100644
--- a/sys/ximage/ximagepool.c
+++ b/sys/ximage/ximagepool.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -46,39 +46,6 @@
   gboolean need_alignment;
 };
 
-static void gst_ximage_meta_free (GstXImageMeta * meta, GstBuffer * buffer);
-
-/* ximage metadata */
-GType
-gst_ximage_meta_api_get_type (void)
-{
-  static volatile GType type;
-  static const gchar *tags[] =
-      { "memory", "size", "colorspace", "orientation", NULL };
-
-  if (g_once_init_enter (&type)) {
-    GType _type = gst_meta_api_type_register ("GstXImageMetaAPI", tags);
-    g_once_init_leave (&type, _type);
-  }
-  return type;
-}
-
-const GstMetaInfo *
-gst_ximage_meta_get_info (void)
-{
-  static const GstMetaInfo *ximage_meta_info = NULL;
-
-  if (g_once_init_enter (&ximage_meta_info)) {
-    const GstMetaInfo *meta =
-        gst_meta_register (GST_XIMAGE_META_API_TYPE, "GstXImageMeta",
-        sizeof (GstXImageMeta), (GstMetaInitFunction) NULL,
-        (GstMetaFreeFunction) gst_ximage_meta_free,
-        (GstMetaTransformFunction) NULL);
-    g_once_init_leave (&ximage_meta_info, meta);
-  }
-  return ximage_meta_info;
-}
-
 /* X11 stuff */
 static gboolean error_caught = FALSE;
 
@@ -93,16 +60,173 @@
   return 0;
 }
 
-static GstXImageMeta *
-gst_buffer_add_ximage_meta (GstBuffer * buffer, GstXImageBufferPool * xpool)
+static GstMemory *
+gst_ximage_memory_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
+{
+  return NULL;
+}
+
+static void
+gst_ximage_memory_free (GstAllocator * allocator, GstMemory * gmem)
+{
+  GstXImageMemory *mem = (GstXImageMemory *) gmem;
+  GstXImageSink *ximagesink;
+
+  if (gmem->parent)
+    goto sub_mem;
+
+  ximagesink = mem->sink;
+
+  GST_DEBUG_OBJECT (ximagesink, "free memory %p", mem);
+
+  /* Hold the object lock to ensure the XContext doesn't disappear */
+  GST_OBJECT_LOCK (ximagesink);
+  /* We might have some buffers destroyed after changing state to NULL */
+  if (ximagesink->xcontext == NULL) {
+    GST_DEBUG_OBJECT (ximagesink, "Destroying XImage after XContext");
+#ifdef HAVE_XSHM
+    /* Need to free the shared memory segment even if the x context
+     * was already cleaned up */
+    if (mem->SHMInfo.shmaddr != ((void *) -1)) {
+      shmdt (mem->SHMInfo.shmaddr);
+    }
+#endif
+    goto beach;
+  }
+
+  g_mutex_lock (&ximagesink->x_lock);
+
+#ifdef HAVE_XSHM
+  if (ximagesink->xcontext->use_xshm) {
+    if (mem->SHMInfo.shmaddr != ((void *) -1)) {
+      GST_DEBUG_OBJECT (ximagesink, "XServer ShmDetaching from 0x%x id 0x%lx",
+          mem->SHMInfo.shmid, mem->SHMInfo.shmseg);
+      XShmDetach (ximagesink->xcontext->disp, &mem->SHMInfo);
+      XSync (ximagesink->xcontext->disp, FALSE);
+      shmdt (mem->SHMInfo.shmaddr);
+      mem->SHMInfo.shmaddr = (void *) -1;
+    }
+    if (mem->ximage)
+      XDestroyImage (mem->ximage);
+  } else
+#endif /* HAVE_XSHM */
+  {
+    if (mem->ximage) {
+      XDestroyImage (mem->ximage);
+    }
+  }
+
+  XSync (ximagesink->xcontext->disp, FALSE);
+
+  g_mutex_unlock (&ximagesink->x_lock);
+
+beach:
+  GST_OBJECT_UNLOCK (ximagesink);
+
+  gst_object_unref (mem->sink);
+
+sub_mem:
+  g_slice_free (GstXImageMemory, mem);
+}
+
+static gpointer
+ximage_memory_map (GstXImageMemory * mem, gsize maxsize, GstMapFlags flags)
+{
+  return mem->ximage->data + mem->parent.offset;
+}
+
+static gboolean
+ximage_memory_unmap (GstXImageMemory * mem)
+{
+  return TRUE;
+}
+
+static GstXImageMemory *
+ximage_memory_share (GstXImageMemory * mem, gssize offset, gsize size)
+{
+  GstXImageMemory *sub;
+  GstMemory *parent;
+
+  /* We can only share the complete memory */
+  if (offset != 0)
+    return NULL;
+  if (size != -1 && size != mem->size)
+    return NULL;
+
+  /* find the real parent */
+  if ((parent = mem->parent.parent) == NULL)
+    parent = (GstMemory *) mem;
+
+  if (size == -1)
+    size = mem->parent.size - offset;
+
+  /* the shared memory is always readonly */
+  sub = g_slice_new (GstXImageMemory);
+
+  gst_memory_init (GST_MEMORY_CAST (sub), GST_MINI_OBJECT_FLAGS (parent) |
+      GST_MINI_OBJECT_FLAG_LOCK_READONLY, mem->parent.allocator,
+      &mem->parent, mem->parent.maxsize, mem->parent.align,
+      mem->parent.offset + offset, size);
+  sub->sink = mem->sink;
+  sub->ximage = mem->ximage;
+#ifdef HAVE_XSHM
+  sub->SHMInfo = mem->SHMInfo;
+#endif
+  sub->x = mem->x;
+  sub->y = mem->y;
+  sub->width = mem->width;
+  sub->height = mem->height;
+
+  return sub;
+}
+
+typedef GstAllocator GstXImageMemoryAllocator;
+typedef GstAllocatorClass GstXImageMemoryAllocatorClass;
+
+GType ximage_memory_allocator_get_type (void);
+G_DEFINE_TYPE (GstXImageMemoryAllocator, ximage_memory_allocator,
+    GST_TYPE_ALLOCATOR);
+
+#define GST_XIMAGE_ALLOCATOR_NAME "ximage"
+#define GST_TYPE_XIMAGE_MEMORY_ALLOCATOR   (ximage_memory_allocator_get_type())
+#define GST_IS_XIMAGE_MEMORY_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XIMAGE_MEMORY_ALLOCATOR))
+
+static void
+ximage_memory_allocator_class_init (GstXImageMemoryAllocatorClass * klass)
+{
+  GstAllocatorClass *allocator_class;
+
+  allocator_class = (GstAllocatorClass *) klass;
+
+  allocator_class->alloc = gst_ximage_memory_alloc;
+  allocator_class->free = gst_ximage_memory_free;
+}
+
+static void
+ximage_memory_allocator_init (GstXImageMemoryAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  alloc->mem_type = GST_XIMAGE_ALLOCATOR_NAME;
+  alloc->mem_map = (GstMemoryMapFunction) ximage_memory_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) ximage_memory_unmap;
+  alloc->mem_share = (GstMemoryShareFunction) ximage_memory_share;
+  /* fallback copy and is_span */
+
+  GST_OBJECT_FLAG_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
+}
+
+static GstMemory *
+ximage_memory_alloc (GstXImageBufferPool * xpool)
 {
   GstXImageSink *ximagesink;
   int (*handler) (Display *, XErrorEvent *);
   gboolean success = FALSE;
   GstXContext *xcontext;
-  GstXImageMeta *meta;
   gint width, height, align = 15, offset;
   GstXImageBufferPoolPrivate *priv;
+  GstXImageMemory *mem;
 
   priv = xpool->priv;
   ximagesink = xpool->sink;
@@ -111,20 +235,19 @@
   width = priv->padded_width;
   height = priv->padded_height;
 
-  meta =
-      (GstXImageMeta *) gst_buffer_add_meta (buffer, GST_XIMAGE_META_INFO,
-      NULL);
-#ifdef HAVE_XSHM
-  meta->SHMInfo.shmaddr = ((void *) -1);
-  meta->SHMInfo.shmid = -1;
-#endif
-  meta->x = priv->align.padding_left;
-  meta->y = priv->align.padding_top;
-  meta->width = GST_VIDEO_INFO_WIDTH (&priv->info);
-  meta->height = GST_VIDEO_INFO_HEIGHT (&priv->info);
-  meta->sink = gst_object_ref (ximagesink);
+  mem = g_slice_new (GstXImageMemory);
 
-  GST_DEBUG_OBJECT (ximagesink, "creating image %p (%dx%d)", buffer,
+#ifdef HAVE_XSHM
+  mem->SHMInfo.shmaddr = ((void *) -1);
+  mem->SHMInfo.shmid = -1;
+#endif
+  mem->x = priv->align.padding_left;
+  mem->y = priv->align.padding_top;
+  mem->width = GST_VIDEO_INFO_WIDTH (&priv->info);
+  mem->height = GST_VIDEO_INFO_HEIGHT (&priv->info);
+  mem->sink = gst_object_ref (ximagesink);
+
+  GST_DEBUG_OBJECT (ximagesink, "creating image %p (%dx%d)", mem,
       width, height);
 
   g_mutex_lock (&ximagesink->x_lock);
@@ -135,10 +258,10 @@
 
 #ifdef HAVE_XSHM
   if (xcontext->use_xshm) {
-    meta->ximage = XShmCreateImage (xcontext->disp,
+    mem->ximage = XShmCreateImage (xcontext->disp,
         xcontext->visual,
-        xcontext->depth, ZPixmap, NULL, &meta->SHMInfo, width, height);
-    if (!meta->ximage || error_caught) {
+        xcontext->depth, ZPixmap, NULL, &mem->SHMInfo, width, height);
+    if (!mem->ximage || error_caught) {
       g_mutex_unlock (&ximagesink->x_lock);
 
       /* Reset error flag */
@@ -160,27 +283,27 @@
     }
 
     /* we have to use the returned bytes_per_line for our shm size */
-    meta->size = meta->ximage->bytes_per_line * meta->ximage->height;
+    mem->size = mem->ximage->bytes_per_line * mem->ximage->height;
     GST_LOG_OBJECT (ximagesink,
         "XShm image size is %" G_GSIZE_FORMAT ", width %d, stride %d",
-        meta->size, width, meta->ximage->bytes_per_line);
+        mem->size, width, mem->ximage->bytes_per_line);
 
     /* get shared memory */
-    meta->SHMInfo.shmid =
-        shmget (IPC_PRIVATE, meta->size + align, IPC_CREAT | 0777);
-    if (meta->SHMInfo.shmid == -1)
+    mem->SHMInfo.shmid =
+        shmget (IPC_PRIVATE, mem->size + align, IPC_CREAT | 0777);
+    if (mem->SHMInfo.shmid == -1)
       goto shmget_failed;
 
     /* attach */
-    meta->SHMInfo.shmaddr = shmat (meta->SHMInfo.shmid, NULL, 0);
-    if (meta->SHMInfo.shmaddr == ((void *) -1))
+    mem->SHMInfo.shmaddr = shmat (mem->SHMInfo.shmid, NULL, 0);
+    if (mem->SHMInfo.shmaddr == ((void *) -1))
       goto shmat_failed;
 
     /* now we can set up the image data */
-    meta->ximage->data = meta->SHMInfo.shmaddr;
-    meta->SHMInfo.readOnly = FALSE;
+    mem->ximage->data = mem->SHMInfo.shmaddr;
+    mem->SHMInfo.readOnly = FALSE;
 
-    if (XShmAttach (xcontext->disp, &meta->SHMInfo) == 0)
+    if (XShmAttach (xcontext->disp, &mem->SHMInfo) == 0)
       goto xattach_failed;
 
     XSync (xcontext->disp, FALSE);
@@ -188,70 +311,70 @@
     /* Now that everyone has attached, we can delete the shared memory segment.
      * This way, it will be deleted as soon as we detach later, and not
      * leaked if we crash. */
-    shmctl (meta->SHMInfo.shmid, IPC_RMID, NULL);
+    shmctl (mem->SHMInfo.shmid, IPC_RMID, NULL);
 
     GST_DEBUG_OBJECT (ximagesink, "XServer ShmAttached to 0x%x, id 0x%lx",
-        meta->SHMInfo.shmid, meta->SHMInfo.shmseg);
+        mem->SHMInfo.shmid, mem->SHMInfo.shmseg);
   } else
   no_xshm:
 #endif /* HAVE_XSHM */
   {
     guint allocsize;
 
-    meta->ximage = XCreateImage (xcontext->disp,
+    mem->ximage = XCreateImage (xcontext->disp,
         xcontext->visual,
         xcontext->depth, ZPixmap, 0, NULL, width, height, xcontext->bpp, 0);
-    if (!meta->ximage || error_caught)
+    if (!mem->ximage || error_caught)
       goto create_failed;
 
     /* upstream will assume that rowstrides are multiples of 4, but this
      * doesn't always seem to be the case with XCreateImage() */
-    if ((meta->ximage->bytes_per_line % 4) != 0) {
+    if ((mem->ximage->bytes_per_line % 4) != 0) {
       GST_WARNING_OBJECT (ximagesink, "returned stride not a multiple of 4 as "
           "usually assumed");
     }
 
     /* we have to use the returned bytes_per_line for our image size */
-    meta->size = meta->ximage->bytes_per_line * meta->ximage->height;
+    mem->size = mem->ximage->bytes_per_line * mem->ximage->height;
 
     /* alloc a bit more for unexpected strides to avoid crashes upstream.
      * FIXME: if we get an unrounded stride, the image will be displayed
      * distorted, since all upstream elements assume a rounded stride */
     allocsize =
-        GST_ROUND_UP_4 (meta->ximage->bytes_per_line) * meta->ximage->height;
+        GST_ROUND_UP_4 (mem->ximage->bytes_per_line) * mem->ximage->height;
 
-    meta->ximage->data = g_malloc (allocsize + align);
+    mem->ximage->data = g_malloc (allocsize + align);
     GST_LOG_OBJECT (ximagesink,
         "non-XShm image size is %" G_GSIZE_FORMAT " (alloced: %u), width %d, "
-        "stride %d", meta->size, allocsize, width,
-        meta->ximage->bytes_per_line);
+        "stride %d", mem->size, allocsize, width, mem->ximage->bytes_per_line);
 
     XSync (xcontext->disp, FALSE);
   }
 
-  if ((offset = ((guintptr) meta->ximage->data & align)))
+  if ((offset = ((guintptr) mem->ximage->data & align)))
     offset = (align + 1) - offset;
 
   GST_DEBUG_OBJECT (ximagesink, "memory %p, align %d, offset %d",
-      meta->ximage->data, align, offset);
+      mem->ximage->data, align, offset);
 
   /* Reset error handler */
   error_caught = FALSE;
   XSetErrorHandler (handler);
 
-  gst_buffer_append_memory (buffer,
-      gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, meta->ximage->data,
-          meta->size + align, offset, meta->size, NULL, NULL));
+  gst_memory_init (GST_MEMORY_CAST (mem), GST_MEMORY_FLAG_NO_SHARE,
+      xpool->allocator, NULL, mem->size + align, align, offset, mem->size);
 
   g_mutex_unlock (&ximagesink->x_lock);
 
   success = TRUE;
 
 beach:
-  if (!success)
-    meta = NULL;
+  if (!success) {
+    g_slice_free (GstXImageMemory, mem);
+    mem = NULL;
+  }
 
-  return meta;
+  return GST_MEMORY_CAST (mem);
 
   /* ERRORS */
 create_failed:
@@ -275,7 +398,7 @@
         ("Failed to create output image buffer of %dx%d pixels",
             width, height),
         ("could not get shared memory of %" G_GSIZE_FORMAT " bytes",
-            meta->size));
+            mem->size));
     goto beach;
   }
 shmat_failed:
@@ -285,13 +408,13 @@
         ("Failed to create output image buffer of %dx%d pixels",
             width, height), ("Failed to shmat: %s", g_strerror (errno)));
     /* Clean up the shared memory segment */
-    shmctl (meta->SHMInfo.shmid, IPC_RMID, NULL);
+    shmctl (mem->SHMInfo.shmid, IPC_RMID, NULL);
     goto beach;
   }
 xattach_failed:
   {
     /* Clean up the shared memory segment */
-    shmctl (meta->SHMInfo.shmid, IPC_RMID, NULL);
+    shmctl (mem->SHMInfo.shmid, IPC_RMID, NULL);
     g_mutex_unlock (&ximagesink->x_lock);
 
     GST_ELEMENT_ERROR (ximagesink, RESOURCE, WRITE,
@@ -302,62 +425,6 @@
 #endif
 }
 
-static void
-gst_ximage_meta_free (GstXImageMeta * meta, GstBuffer * buffer)
-{
-  GstXImageSink *ximagesink;
-
-  ximagesink = meta->sink;
-
-  GST_DEBUG_OBJECT (ximagesink, "free meta on buffer %p", buffer);
-
-  /* Hold the object lock to ensure the XContext doesn't disappear */
-  GST_OBJECT_LOCK (ximagesink);
-  /* We might have some buffers destroyed after changing state to NULL */
-  if (ximagesink->xcontext == NULL) {
-    GST_DEBUG_OBJECT (ximagesink, "Destroying XImage after XContext");
-#ifdef HAVE_XSHM
-    /* Need to free the shared memory segment even if the x context
-     * was already cleaned up */
-    if (meta->SHMInfo.shmaddr != ((void *) -1)) {
-      shmdt (meta->SHMInfo.shmaddr);
-    }
-#endif
-    goto beach;
-  }
-
-  g_mutex_lock (&ximagesink->x_lock);
-
-#ifdef HAVE_XSHM
-  if (ximagesink->xcontext->use_xshm) {
-    if (meta->SHMInfo.shmaddr != ((void *) -1)) {
-      GST_DEBUG_OBJECT (ximagesink, "XServer ShmDetaching from 0x%x id 0x%lx",
-          meta->SHMInfo.shmid, meta->SHMInfo.shmseg);
-      XShmDetach (ximagesink->xcontext->disp, &meta->SHMInfo);
-      XSync (ximagesink->xcontext->disp, FALSE);
-      shmdt (meta->SHMInfo.shmaddr);
-      meta->SHMInfo.shmaddr = (void *) -1;
-    }
-    if (meta->ximage)
-      XDestroyImage (meta->ximage);
-  } else
-#endif /* HAVE_XSHM */
-  {
-    if (meta->ximage) {
-      XDestroyImage (meta->ximage);
-    }
-  }
-
-  XSync (ximagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&ximagesink->x_lock);
-
-beach:
-  GST_OBJECT_UNLOCK (ximagesink);
-
-  gst_object_unref (meta->sink);
-}
-
 #ifdef HAVE_XSHM
 /* This function checks that it is actually really possible to create an image
    using XShm */
@@ -576,16 +643,18 @@
   GstXImageBufferPoolPrivate *priv = xpool->priv;
   GstVideoInfo *info;
   GstBuffer *ximage;
-  GstXImageMeta *meta;
+  GstMemory *mem;
 
   info = &priv->info;
 
   ximage = gst_buffer_new ();
-  meta = gst_buffer_add_ximage_meta (ximage, xpool);
-  if (meta == NULL) {
+  mem = ximage_memory_alloc (xpool);
+  if (mem == NULL) {
     gst_buffer_unref (ximage);
     goto no_buffer;
   }
+  gst_buffer_append_memory (ximage, mem);
+
   if (priv->add_metavideo) {
     GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
     /* these are just the defaults for now */
@@ -615,6 +684,7 @@
 
   pool = g_object_new (GST_TYPE_XIMAGE_BUFFER_POOL, NULL);
   pool->sink = gst_object_ref (ximagesink);
+  pool->allocator = g_object_new (GST_TYPE_XIMAGE_MEMORY_ALLOCATOR, NULL);
 
   GST_LOG_OBJECT (pool, "new XImage buffer pool %p", pool);
 
@@ -653,6 +723,7 @@
   if (priv->caps)
     gst_caps_unref (priv->caps);
   gst_object_unref (pool->sink);
+  gst_object_unref (pool->allocator);
 
   G_OBJECT_CLASS (gst_ximage_buffer_pool_parent_class)->finalize (object);
 }
diff --git a/sys/ximage/ximagepool.h b/sys/ximage/ximagepool.h
index 22b359f..8dfccf6 100644
--- a/sys/ximage/ximagepool.h
+++ b/sys/ximage/ximagepool.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_XIMAGEPOOL_H__
@@ -39,33 +39,27 @@
 
 G_BEGIN_DECLS
 
-typedef struct _GstXImageMeta GstXImageMeta;
+typedef struct _GstXImageMemory GstXImageMemory;
 
 typedef struct _GstXImageBufferPool GstXImageBufferPool;
 typedef struct _GstXImageBufferPoolClass GstXImageBufferPoolClass;
 typedef struct _GstXImageBufferPoolPrivate GstXImageBufferPoolPrivate;
 
 #include "ximagesink.h"
-GType gst_ximage_meta_api_get_type (void);
-#define GST_XIMAGE_META_API_TYPE  (gst_ximage_meta_api_get_type())
-const GstMetaInfo * gst_ximage_meta_get_info (void);
-#define GST_XIMAGE_META_INFO  (gst_ximage_meta_get_info())
-
-#define gst_buffer_get_ximage_meta(b) ((GstXImageMeta*)gst_buffer_get_meta((b),GST_XIMAGE_META_API_TYPE))
 
 /**
- * GstXImageMeta:
- * @simagesink: a reference to the our #GstXImageSink
+ * GstXImageMemory:
+ * @sink: a reference to the our #GstXImageSink
  * @ximage: the XImage of this buffer
  * @width: the width in pixels of XImage @ximage
  * @height: the height in pixels of XImage @ximage
  * @size: the size in bytes of XImage @ximage
  *
- * Subclass of #GstMeta containing additional information about an XImage.
+ * Subclass of #GstMemory containing additional information about an XImage.
  */
-struct _GstXImageMeta
+struct _GstXImageMemory
 {
-  GstMeta meta;
+  GstMemory parent;
 
   /* Reference to the ximagesink we belong to */
   GstXImageSink *sink;
@@ -92,6 +86,7 @@
   GstBufferPool bufferpool;
 
   GstXImageSink *sink;
+  GstAllocator *allocator;
 
   GstXImageBufferPoolPrivate *priv;
 };
diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c
index 71ea53b..93fe19d 100644
--- a/sys/ximage/ximagesink.c
+++ b/sys/ximage/ximagesink.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -228,7 +228,7 @@
 static gboolean
 gst_ximagesink_ximage_put (GstXImageSink * ximagesink, GstBuffer * ximage)
 {
-  GstXImageMeta *meta;
+  GstXImageMemory *mem;
   GstVideoCropMeta *crop;
   GstVideoRectangle src, dst, result;
   gboolean draw_border = FALSE;
@@ -269,21 +269,21 @@
     }
   }
 
-  meta = gst_buffer_get_ximage_meta (ximage);
+  mem = (GstXImageMemory *) gst_buffer_peek_memory (ximage, 0);
   crop = gst_buffer_get_video_crop_meta (ximage);
 
   if (crop) {
-    src.x = crop->x + meta->x;
-    src.y = crop->y + meta->y;
+    src.x = crop->x + mem->x;
+    src.y = crop->y + mem->y;
     src.w = crop->width;
     src.h = crop->height;
     GST_LOG_OBJECT (ximagesink,
         "crop %dx%d-%dx%d", crop->x, crop->y, crop->width, crop->height);
   } else {
-    src.x = meta->x;
-    src.y = meta->y;
-    src.w = meta->width;
-    src.h = meta->height;
+    src.x = mem->x;
+    src.y = mem->y;
+    src.w = mem->width;
+    src.h = mem->height;
   }
   dst.w = ximagesink->xwindow->width;
   dst.h = ximagesink->xwindow->height;
@@ -304,7 +304,7 @@
         ximage, 0, 0, result.x, result.y, result.w, result.h,
         ximagesink->xwindow->width, ximagesink->xwindow->height);
     XShmPutImage (ximagesink->xcontext->disp, ximagesink->xwindow->win,
-        ximagesink->xwindow->gc, meta->ximage, src.x, src.y, result.x, result.y,
+        ximagesink->xwindow->gc, mem->ximage, src.x, src.y, result.x, result.y,
         result.w, result.h, FALSE);
   } else
 #endif /* HAVE_XSHM */
@@ -314,7 +314,7 @@
         ximage, 0, 0, result.x, result.y, result.w, result.h,
         ximagesink->xwindow->width, ximagesink->xwindow->height);
     XPutImage (ximagesink->xcontext->disp, ximagesink->xwindow->win,
-        ximagesink->xwindow->gc, meta->ximage, src.x, src.y, result.x, result.y,
+        ximagesink->xwindow->gc, mem->ximage, src.x, src.y, result.x, result.y,
         result.w, result.h);
   }
 
@@ -832,6 +832,7 @@
   gint nb_formats = 0, i;
   gint endianness;
   GstVideoFormat vformat;
+  guint32 alpha_mask;
 
   g_return_val_if_fail (GST_IS_XIMAGESINK (ximagesink), NULL);
 
@@ -904,9 +905,15 @@
     GST_DEBUG ("ximagesink is not using XShm extension");
   }
 
-  vformat = gst_video_format_from_masks (xcontext->depth, xcontext->bpp,
-      endianness, xcontext->visual->red_mask, xcontext->visual->green_mask,
-      xcontext->visual->blue_mask, 0);
+  /* extrapolate alpha mask */
+  alpha_mask = ~(xcontext->visual->red_mask
+      | xcontext->visual->green_mask | xcontext->visual->blue_mask);
+  alpha_mask &= 0xffffffff;
+
+  vformat =
+      gst_video_format_from_masks (xcontext->depth, xcontext->bpp, endianness,
+      xcontext->visual->red_mask, xcontext->visual->green_mask,
+      xcontext->visual->blue_mask, alpha_mask);
 
   if (vformat == GST_VIDEO_FORMAT_UNKNOWN)
     goto unknown_format;
@@ -1300,14 +1307,15 @@
 {
   GstFlowReturn res;
   GstXImageSink *ximagesink;
-  GstXImageMeta *meta;
+  GstXImageMemory *mem;
   GstBuffer *to_put = NULL;
 
   ximagesink = GST_XIMAGESINK (vsink);
 
-  meta = gst_buffer_get_ximage_meta (buf);
-
-  if (meta && meta->sink == ximagesink) {
+  if (gst_buffer_n_memory (buf) == 1
+      && (mem = (GstXImageMemory *) gst_buffer_peek_memory (buf, 0))
+      && g_strcmp0 (mem->parent.allocator->mem_type, "ximage") == 0
+      && mem->sink == ximagesink) {
     /* If this buffer has been allocated using our buffer management we simply
        put the ximage which is in the PRIVATE pointer */
     GST_LOG_OBJECT (ximagesink, "buffer from our pool, writing directly");
diff --git a/sys/ximage/ximagesink.h b/sys/ximage/ximagesink.h
index a01cf01..8ca6fe9 100644
--- a/sys/ximage/ximagesink.h
+++ b/sys/ximage/ximagesink.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_XIMAGESINK_H__
diff --git a/sys/xvimage/Makefile.am b/sys/xvimage/Makefile.am
index 9dd9bef..4cf454a 100644
--- a/sys/xvimage/Makefile.am
+++ b/sys/xvimage/Makefile.am
@@ -1,6 +1,6 @@
 plugin_LTLIBRARIES = libgstxvimagesink.la
 
-libgstxvimagesink_la_SOURCES =  xvimagesink.c xvimage.c xvimagepool.c 
+libgstxvimagesink_la_SOURCES =  xvimagesink.c xvimage.c xvimagepool.c xvimageallocator.c xvcontext.c
 libgstxvimagesink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS)
 libgstxvimagesink_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
@@ -11,4 +11,4 @@
 libgstxvimagesink_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la
 libgstxvimagesink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
-noinst_HEADERS = xvimagesink.h xvimagepool.h
+noinst_HEADERS = xvimagesink.h xvimagepool.h xvimageallocator.h xvcontext.h
diff --git a/sys/xvimage/Makefile.in b/sys/xvimage/Makefile.in
index b7d24d4..01ca92f 100644
--- a/sys/xvimage/Makefile.in
+++ b/sys/xvimage/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,14 +81,13 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/xvimage
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -132,15 +158,30 @@
 am__DEPENDENCIES_1 =
 am_libgstxvimagesink_la_OBJECTS = libgstxvimagesink_la-xvimagesink.lo \
 	libgstxvimagesink_la-xvimage.lo \
-	libgstxvimagesink_la-xvimagepool.lo
+	libgstxvimagesink_la-xvimagepool.lo \
+	libgstxvimagesink_la-xvimageallocator.lo \
+	libgstxvimagesink_la-xvcontext.lo
 libgstxvimagesink_la_OBJECTS = $(am_libgstxvimagesink_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgstxvimagesink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) \
 	$(libgstxvimagesink_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -153,20 +194,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgstxvimagesink_la_SOURCES)
 DIST_SOURCES = $(libgstxvimagesink_la_SOURCES)
 am__can_run_installinfo = \
@@ -175,6 +212,23 @@
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -469,7 +523,7 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstxvimagesink.la
-libgstxvimagesink_la_SOURCES = xvimagesink.c xvimage.c xvimagepool.c 
+libgstxvimagesink_la_SOURCES = xvimagesink.c xvimage.c xvimagepool.c xvimageallocator.c xvcontext.c
 libgstxvimagesink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS)
 libgstxvimagesink_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
@@ -480,7 +534,7 @@
 libgstxvimagesink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstxvimagesink_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la
 libgstxvimagesink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = xvimagesink.h xvimagepool.h
+noinst_HEADERS = xvimagesink.h xvimagepool.h xvimageallocator.h xvcontext.h
 all: all-am
 
 .SUFFIXES:
@@ -515,6 +569,7 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
@@ -541,12 +596,15 @@
 
 clean-pluginLTLIBRARIES:
 	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(plugin_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libgstxvimagesink.la: $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_DEPENDENCIES) $(EXTRA_libgstxvimagesink_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstxvimagesink_la_LINK) -rpath $(plugindir) $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_LIBADD) $(LIBS)
 
@@ -556,7 +614,9 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstxvimagesink_la-xvcontext.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstxvimagesink_la-xvimage.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstxvimagesink_la-xvimageallocator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstxvimagesink_la-xvimagepool.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstxvimagesink_la-xvimagesink.Plo@am__quote@
 
@@ -602,32 +662,35 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvimagepool.lo `test -f 'xvimagepool.c' || echo '$(srcdir)/'`xvimagepool.c
 
+libgstxvimagesink_la-xvimageallocator.lo: xvimageallocator.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -MT libgstxvimagesink_la-xvimageallocator.lo -MD -MP -MF $(DEPDIR)/libgstxvimagesink_la-xvimageallocator.Tpo -c -o libgstxvimagesink_la-xvimageallocator.lo `test -f 'xvimageallocator.c' || echo '$(srcdir)/'`xvimageallocator.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvimagesink_la-xvimageallocator.Tpo $(DEPDIR)/libgstxvimagesink_la-xvimageallocator.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xvimageallocator.c' object='libgstxvimagesink_la-xvimageallocator.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvimageallocator.lo `test -f 'xvimageallocator.c' || echo '$(srcdir)/'`xvimageallocator.c
+
+libgstxvimagesink_la-xvcontext.lo: xvcontext.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -MT libgstxvimagesink_la-xvcontext.lo -MD -MP -MF $(DEPDIR)/libgstxvimagesink_la-xvcontext.Tpo -c -o libgstxvimagesink_la-xvcontext.lo `test -f 'xvcontext.c' || echo '$(srcdir)/'`xvcontext.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvimagesink_la-xvcontext.Tpo $(DEPDIR)/libgstxvimagesink_la-xvcontext.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xvcontext.c' object='libgstxvimagesink_la-xvcontext.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvcontext.lo `test -f 'xvcontext.c' || echo '$(srcdir)/'`xvcontext.c
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -639,15 +702,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -656,6 +715,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -800,19 +874,20 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-pluginLTLIBRARIES install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pluginLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/sys/xvimage/xvcontext.c b/sys/xvimage/xvcontext.c
new file mode 100644
index 0000000..d89ea48
--- /dev/null
+++ b/sys/xvimage/xvcontext.c
@@ -0,0 +1,1147 @@
+/* GStreamer
+ * Copyright (C) <2005> Julien Moutte <julien@moutte.net>
+ *               <2009>,<2010> Stefan Kost <stefan.kost@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/* for developers: there are two useful tools : xvinfo and xvattr */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* Object header */
+#include "xvcontext.h"
+
+/* Debugging category */
+#include <gst/gstinfo.h>
+
+/* for XkbKeycodeToKeysym */
+#include <X11/XKBlib.h>
+
+GST_DEBUG_CATEGORY_EXTERN (gst_debug_xvcontext);
+GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE);
+#define GST_CAT_DEFAULT gst_debug_xvcontext
+
+void
+gst_xvcontext_config_clear (GstXvContextConfig * config)
+{
+  if (config->display_name) {
+    g_free (config->display_name);
+    config->display_name = NULL;
+  }
+  config->adaptor_nr = -1;
+}
+
+GST_DEFINE_MINI_OBJECT_TYPE (GstXvContext, gst_xvcontext);
+
+typedef struct
+{
+  unsigned long flags;
+  unsigned long functions;
+  unsigned long decorations;
+  long input_mode;
+  unsigned long status;
+}
+MotifWmHints, MwmHints;
+
+#define MWM_HINTS_DECORATIONS   (1L << 1)
+
+
+static void
+gst_lookup_xv_port_from_adaptor (GstXvContext * context,
+    XvAdaptorInfo * adaptors, guint adaptor_nr)
+{
+  gint j;
+  gint res;
+
+  /* Do we support XvImageMask ? */
+  if (!(adaptors[adaptor_nr].type & XvImageMask)) {
+    GST_DEBUG ("XV Adaptor %s has no support for XvImageMask",
+        adaptors[adaptor_nr].name);
+    return;
+  }
+
+  /* We found such an adaptor, looking for an available port */
+  for (j = 0; j < adaptors[adaptor_nr].num_ports && !context->xv_port_id; j++) {
+    /* We try to grab the port */
+    res = XvGrabPort (context->disp, adaptors[adaptor_nr].base_id + j, 0);
+    if (Success == res) {
+      context->xv_port_id = adaptors[adaptor_nr].base_id + j;
+      GST_DEBUG ("XV Adaptor %s with %ld ports", adaptors[adaptor_nr].name,
+          adaptors[adaptor_nr].num_ports);
+    } else {
+      GST_DEBUG ("GrabPort %d for XV Adaptor %s failed: %d", j,
+          adaptors[adaptor_nr].name, res);
+    }
+  }
+}
+
+/* This function generates a caps with all supported format by the first
+   Xv grabable port we find. We store each one of the supported formats in a
+   format list and append the format to a newly created caps that we return
+   If this function does not return NULL because of an error, it also grabs
+   the port via XvGrabPort */
+static GstCaps *
+gst_xvcontext_get_xv_support (GstXvContext * context,
+    const GstXvContextConfig * config, GError ** error)
+{
+  gint i;
+  XvAdaptorInfo *adaptors;
+  gint nb_formats;
+  XvImageFormatValues *formats = NULL;
+  guint nb_encodings;
+  XvEncodingInfo *encodings = NULL;
+  gulong max_w = G_MAXINT, max_h = G_MAXINT;
+  GstCaps *caps = NULL;
+  GstCaps *rgb_caps = NULL;
+
+  g_return_val_if_fail (context != NULL, NULL);
+
+  /* First let's check that XVideo extension is available */
+  if (!XQueryExtension (context->disp, "XVideo", &i, &i, &i))
+    goto no_xv;
+
+  /* Then we get adaptors list */
+  if (Success != XvQueryAdaptors (context->disp, context->root,
+          &context->nb_adaptors, &adaptors))
+    goto no_adaptors;
+
+  context->xv_port_id = 0;
+
+  GST_DEBUG ("Found %u XV adaptor(s)", context->nb_adaptors);
+
+  context->adaptors =
+      (gchar **) g_malloc0 (context->nb_adaptors * sizeof (gchar *));
+
+  /* Now fill up our adaptor name array */
+  for (i = 0; i < context->nb_adaptors; i++) {
+    context->adaptors[i] = g_strdup (adaptors[i].name);
+  }
+
+  if (config->adaptor_nr != -1 && config->adaptor_nr < context->nb_adaptors) {
+    /* Find xv port from user defined adaptor */
+    gst_lookup_xv_port_from_adaptor (context, adaptors, config->adaptor_nr);
+  }
+
+  if (!context->xv_port_id) {
+    /* Now search for an adaptor that supports XvImageMask */
+    for (i = 0; i < context->nb_adaptors && !context->xv_port_id; i++) {
+      gst_lookup_xv_port_from_adaptor (context, adaptors, i);
+      context->adaptor_nr = i;
+    }
+  }
+
+  XvFreeAdaptorInfo (adaptors);
+
+  if (!context->xv_port_id)
+    goto no_ports;
+
+  /* Set XV_AUTOPAINT_COLORKEY and XV_DOUBLE_BUFFER and XV_COLORKEY */
+  {
+    int count, todo = 3;
+    XvAttribute *const attr = XvQueryPortAttributes (context->disp,
+        context->xv_port_id, &count);
+    static const char autopaint[] = "XV_AUTOPAINT_COLORKEY";
+    static const char dbl_buffer[] = "XV_DOUBLE_BUFFER";
+    static const char colorkey[] = "XV_COLORKEY";
+
+    GST_DEBUG ("Checking %d Xv port attributes", count);
+
+    context->have_autopaint_colorkey = FALSE;
+    context->have_double_buffer = FALSE;
+    context->have_colorkey = FALSE;
+
+    for (i = 0; ((i < count) && todo); i++) {
+      GST_DEBUG ("Got attribute %s", attr[i].name);
+
+      if (!strcmp (attr[i].name, autopaint)) {
+        const Atom atom = XInternAtom (context->disp, autopaint, False);
+
+        /* turn on autopaint colorkey */
+        XvSetPortAttribute (context->disp, context->xv_port_id, atom,
+            (config->autopaint_colorkey ? 1 : 0));
+        todo--;
+        context->have_autopaint_colorkey = TRUE;
+      } else if (!strcmp (attr[i].name, dbl_buffer)) {
+        const Atom atom = XInternAtom (context->disp, dbl_buffer, False);
+
+        XvSetPortAttribute (context->disp, context->xv_port_id, atom,
+            (config->double_buffer ? 1 : 0));
+        todo--;
+        context->have_double_buffer = TRUE;
+      } else if (!strcmp (attr[i].name, colorkey)) {
+        /* Set the colorkey, default is something that is dark but hopefully
+         * won't randomly appear on the screen elsewhere (ie not black or greys)
+         * can be overridden by setting "colorkey" property
+         */
+        const Atom atom = XInternAtom (context->disp, colorkey, False);
+        guint32 ckey = 0;
+        gboolean set_attr = TRUE;
+        guint cr, cg, cb;
+
+        /* set a colorkey in the right format RGB565/RGB888
+         * We only handle these 2 cases, because they're the only types of
+         * devices we've encountered. If we don't recognise it, leave it alone
+         */
+        cr = (config->colorkey >> 16);
+        cg = (config->colorkey >> 8) & 0xFF;
+        cb = (config->colorkey) & 0xFF;
+        switch (context->depth) {
+          case 16:             /* RGB 565 */
+            cr >>= 3;
+            cg >>= 2;
+            cb >>= 3;
+            ckey = (cr << 11) | (cg << 5) | cb;
+            break;
+          case 24:
+          case 32:             /* RGB 888 / ARGB 8888 */
+            ckey = (cr << 16) | (cg << 8) | cb;
+            break;
+          default:
+            GST_DEBUG ("Unknown bit depth %d for Xv Colorkey - not adjusting",
+                context->depth);
+            set_attr = FALSE;
+            break;
+        }
+
+        if (set_attr) {
+          ckey = CLAMP (ckey, (guint32) attr[i].min_value,
+              (guint32) attr[i].max_value);
+          GST_LOG ("Setting color key for display depth %d to 0x%x",
+              context->depth, ckey);
+
+          XvSetPortAttribute (context->disp, context->xv_port_id, atom,
+              (gint) ckey);
+        }
+        todo--;
+        context->have_colorkey = TRUE;
+      }
+    }
+
+    XFree (attr);
+  }
+
+  /* Get the list of encodings supported by the adapter and look for the
+   * XV_IMAGE encoding so we can determine the maximum width and height
+   * supported */
+  XvQueryEncodings (context->disp, context->xv_port_id, &nb_encodings,
+      &encodings);
+
+  for (i = 0; i < nb_encodings; i++) {
+    GST_LOG ("Encoding %d, name %s, max wxh %lux%lu rate %d/%d",
+        i, encodings[i].name, encodings[i].width, encodings[i].height,
+        encodings[i].rate.numerator, encodings[i].rate.denominator);
+    if (strcmp (encodings[i].name, "XV_IMAGE") == 0) {
+      max_w = encodings[i].width;
+      max_h = encodings[i].height;
+    }
+  }
+
+  XvFreeEncodingInfo (encodings);
+
+  /* We get all image formats supported by our port */
+  formats = XvListImageFormats (context->disp,
+      context->xv_port_id, &nb_formats);
+  caps = gst_caps_new_empty ();
+  for (i = 0; i < nb_formats; i++) {
+    GstCaps *format_caps = NULL;
+    gboolean is_rgb_format = FALSE;
+    GstVideoFormat vformat;
+
+    /* We set the image format of the context to an existing one. This
+       is just some valid image format for making our xshm calls check before
+       caps negotiation really happens. */
+    context->im_format = formats[i].id;
+
+    switch (formats[i].type) {
+      case XvRGB:
+      {
+        XvImageFormatValues *fmt = &(formats[i]);
+        gint endianness;
+
+        endianness =
+            (fmt->byte_order == LSBFirst ? G_LITTLE_ENDIAN : G_BIG_ENDIAN);
+
+        vformat = gst_video_format_from_masks (fmt->depth, fmt->bits_per_pixel,
+            endianness, fmt->red_mask, fmt->green_mask, fmt->blue_mask, 0);
+        if (vformat == GST_VIDEO_FORMAT_UNKNOWN)
+          break;
+
+        format_caps = gst_caps_new_simple ("video/x-raw",
+            "format", G_TYPE_STRING, gst_video_format_to_string (vformat),
+            "width", GST_TYPE_INT_RANGE, 1, max_w,
+            "height", GST_TYPE_INT_RANGE, 1, max_h,
+            "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
+
+        is_rgb_format = TRUE;
+        break;
+      }
+      case XvYUV:
+      {
+        vformat = gst_video_format_from_fourcc (formats[i].id);
+        if (vformat == GST_VIDEO_FORMAT_UNKNOWN)
+          break;
+
+        format_caps = gst_caps_new_simple ("video/x-raw",
+            "format", G_TYPE_STRING, gst_video_format_to_string (vformat),
+            "width", GST_TYPE_INT_RANGE, 1, max_w,
+            "height", GST_TYPE_INT_RANGE, 1, max_h,
+            "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
+        break;
+      }
+      default:
+        vformat = GST_VIDEO_FORMAT_UNKNOWN;
+        g_assert_not_reached ();
+        break;
+    }
+
+    if (format_caps) {
+      GstXvImageFormat *format = NULL;
+
+      format = g_new0 (GstXvImageFormat, 1);
+      if (format) {
+        format->format = formats[i].id;
+        format->vformat = vformat;
+        format->caps = gst_caps_copy (format_caps);
+        context->formats_list = g_list_append (context->formats_list, format);
+      }
+
+      if (is_rgb_format) {
+        if (rgb_caps == NULL)
+          rgb_caps = format_caps;
+        else
+          gst_caps_append (rgb_caps, format_caps);
+      } else
+        gst_caps_append (caps, format_caps);
+    }
+  }
+
+  /* Collected all caps into either the caps or rgb_caps structures.
+   * Append rgb_caps on the end of YUV, so that YUV is always preferred */
+  if (rgb_caps)
+    gst_caps_append (caps, rgb_caps);
+
+  if (formats)
+    XFree (formats);
+
+  GST_DEBUG ("Generated the following caps: %" GST_PTR_FORMAT, caps);
+
+  if (gst_caps_is_empty (caps))
+    goto no_caps;
+
+  return caps;
+
+  /* ERRORS */
+no_xv:
+  {
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_SETTINGS,
+        ("XVideo extension is not available"));
+    return NULL;
+  }
+no_adaptors:
+  {
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_SETTINGS,
+        ("Failed getting XV adaptors list"));
+    return NULL;
+  }
+no_ports:
+  {
+    context->adaptor_nr = -1;
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_BUSY,
+        ("No Xv Port available"));
+    return NULL;
+  }
+no_caps:
+  {
+    gst_caps_unref (caps);
+    g_set_error (error, GST_STREAM_ERROR, GST_STREAM_ERROR_WRONG_TYPE,
+        ("No supported format found"));
+    return NULL;
+  }
+}
+
+/* This function calculates the pixel aspect ratio based on the properties
+ * in the context structure and stores it there. */
+static void
+gst_xvcontext_calculate_pixel_aspect_ratio (GstXvContext * context)
+{
+  static const gint par[][2] = {
+    {1, 1},                     /* regular screen */
+    {16, 15},                   /* PAL TV */
+    {11, 10},                   /* 525 line Rec.601 video */
+    {54, 59},                   /* 625 line Rec.601 video */
+    {64, 45},                   /* 1280x1024 on 16:9 display */
+    {5, 3},                     /* 1280x1024 on 4:3 display */
+    {4, 3}                      /*  800x600 on 16:9 display */
+  };
+  gint i;
+  gint index;
+  gdouble ratio;
+  gdouble delta;
+
+#define DELTA(idx) (ABS (ratio - ((gdouble) par[idx][0] / par[idx][1])))
+
+  /* first calculate the "real" ratio based on the X values;
+   * which is the "physical" w/h divided by the w/h in pixels of the display */
+  ratio = (gdouble) (context->widthmm * context->height)
+      / (context->heightmm * context->width);
+
+  /* DirectFB's X in 720x576 reports the physical dimensions wrong, so
+   * override here */
+  if (context->width == 720 && context->height == 576) {
+    ratio = 4.0 * 576 / (3.0 * 720);
+  }
+  GST_DEBUG ("calculated pixel aspect ratio: %f", ratio);
+
+  /* now find the one from par[][2] with the lowest delta to the real one */
+  delta = DELTA (0);
+  index = 0;
+
+  for (i = 1; i < sizeof (par) / (sizeof (gint) * 2); ++i) {
+    gdouble this_delta = DELTA (i);
+
+    if (this_delta < delta) {
+      index = i;
+      delta = this_delta;
+    }
+  }
+
+  GST_DEBUG ("Decided on index %d (%d/%d)", index,
+      par[index][0], par[index][1]);
+
+  g_free (context->par);
+  context->par = g_new0 (GValue, 1);
+  g_value_init (context->par, GST_TYPE_FRACTION);
+  gst_value_set_fraction (context->par, par[index][0], par[index][1]);
+  GST_DEBUG ("set context PAR to %d/%d",
+      gst_value_get_fraction_numerator (context->par),
+      gst_value_get_fraction_denominator (context->par));
+}
+
+#ifdef HAVE_XSHM
+/* X11 stuff */
+static gboolean error_caught = FALSE;
+
+static int
+gst_xvimage_handle_xerror (Display * display, XErrorEvent * xevent)
+{
+  char error_msg[1024];
+
+  XGetErrorText (display, xevent->error_code, error_msg, 1024);
+  GST_DEBUG ("xvimage triggered an XError. error: %s", error_msg);
+  error_caught = TRUE;
+  return 0;
+}
+
+/* This function checks that it is actually really possible to create an image
+   using XShm */
+static gboolean
+gst_xvcontext_check_xshm_calls (GstXvContext * context)
+{
+  XvImage *xvimage;
+  XShmSegmentInfo SHMInfo;
+  size_t size;
+  int (*handler) (Display *, XErrorEvent *);
+  gboolean result = FALSE;
+  gboolean did_attach = FALSE;
+
+  g_return_val_if_fail (context != NULL, FALSE);
+
+  /* Sync to ensure any older errors are already processed */
+  XSync (context->disp, FALSE);
+
+  /* Set defaults so we don't free these later unnecessarily */
+  SHMInfo.shmaddr = ((void *) -1);
+  SHMInfo.shmid = -1;
+
+  /* Setting an error handler to catch failure */
+  error_caught = FALSE;
+  handler = XSetErrorHandler (gst_xvimage_handle_xerror);
+
+  /* Trying to create a 1x1 picture */
+  GST_DEBUG ("XvShmCreateImage of 1x1");
+  xvimage = XvShmCreateImage (context->disp, context->xv_port_id,
+      context->im_format, NULL, 1, 1, &SHMInfo);
+
+  /* Might cause an error, sync to ensure it is noticed */
+  XSync (context->disp, FALSE);
+  if (!xvimage || error_caught) {
+    GST_WARNING ("could not XvShmCreateImage a 1x1 image");
+    goto beach;
+  }
+  size = xvimage->data_size;
+  SHMInfo.shmid = shmget (IPC_PRIVATE, size, IPC_CREAT | 0777);
+  if (SHMInfo.shmid == -1) {
+    GST_WARNING ("could not get shared memory of %" G_GSIZE_FORMAT " bytes",
+        size);
+    goto beach;
+  }
+
+  SHMInfo.shmaddr = shmat (SHMInfo.shmid, NULL, 0);
+  if (SHMInfo.shmaddr == ((void *) -1)) {
+    GST_WARNING ("Failed to shmat: %s", g_strerror (errno));
+    /* Clean up the shared memory segment */
+    shmctl (SHMInfo.shmid, IPC_RMID, NULL);
+    goto beach;
+  }
+
+  xvimage->data = SHMInfo.shmaddr;
+  SHMInfo.readOnly = FALSE;
+
+  if (XShmAttach (context->disp, &SHMInfo) == 0) {
+    GST_WARNING ("Failed to XShmAttach");
+    /* Clean up the shared memory segment */
+    shmctl (SHMInfo.shmid, IPC_RMID, NULL);
+    goto beach;
+  }
+
+  /* Sync to ensure we see any errors we caused */
+  XSync (context->disp, FALSE);
+
+  /* Delete the shared memory segment as soon as everyone is attached.
+   * This way, it will be deleted as soon as we detach later, and not
+   * leaked if we crash. */
+  shmctl (SHMInfo.shmid, IPC_RMID, NULL);
+
+  if (!error_caught) {
+    GST_DEBUG ("XServer ShmAttached to 0x%x, id 0x%lx", SHMInfo.shmid,
+        SHMInfo.shmseg);
+
+    did_attach = TRUE;
+    /* store whether we succeeded in result */
+    result = TRUE;
+  } else {
+    GST_WARNING ("MIT-SHM extension check failed at XShmAttach. "
+        "Not using shared memory.");
+  }
+
+beach:
+  /* Sync to ensure we swallow any errors we caused and reset error_caught */
+  XSync (context->disp, FALSE);
+
+  error_caught = FALSE;
+  XSetErrorHandler (handler);
+
+  if (did_attach) {
+    GST_DEBUG ("XServer ShmDetaching from 0x%x id 0x%lx",
+        SHMInfo.shmid, SHMInfo.shmseg);
+    XShmDetach (context->disp, &SHMInfo);
+    XSync (context->disp, FALSE);
+  }
+  if (SHMInfo.shmaddr != ((void *) -1))
+    shmdt (SHMInfo.shmaddr);
+  if (xvimage)
+    XFree (xvimage);
+  return result;
+}
+#endif /* HAVE_XSHM */
+
+static GstXvContext *
+gst_xvcontext_copy (GstXvContext * context)
+{
+  return NULL;
+}
+
+static void
+gst_xvcontext_free (GstXvContext * context)
+{
+  GList *formats_list, *channels_list;
+  gint i = 0;
+
+  GST_LOG ("free %p", context);
+
+  formats_list = context->formats_list;
+
+  while (formats_list) {
+    GstXvImageFormat *format = formats_list->data;
+
+    gst_caps_unref (format->caps);
+    g_free (format);
+    formats_list = g_list_next (formats_list);
+  }
+
+  if (context->formats_list)
+    g_list_free (context->formats_list);
+
+  channels_list = context->channels_list;
+
+  while (channels_list) {
+    GstColorBalanceChannel *channel = channels_list->data;
+
+    g_object_unref (channel);
+    channels_list = g_list_next (channels_list);
+  }
+
+  if (context->channels_list)
+    g_list_free (context->channels_list);
+
+  if (context->caps)
+    gst_caps_unref (context->caps);
+  if (context->last_caps)
+    gst_caps_unref (context->last_caps);
+
+  for (i = 0; i < context->nb_adaptors; i++) {
+    g_free (context->adaptors[i]);
+  }
+
+  g_free (context->adaptors);
+
+  g_free (context->par);
+
+  GST_DEBUG ("Closing display and freeing X Context");
+
+  if (context->xv_port_id)
+    XvUngrabPort (context->disp, context->xv_port_id, 0);
+
+  if (context->disp)
+    XCloseDisplay (context->disp);
+
+  g_mutex_clear (&context->lock);
+
+  g_slice_free1 (sizeof (GstXvContext), context);
+}
+
+
+/* This function gets the X Display and global info about it. Everything is
+   stored in our object and will be cleaned when the object is disposed. Note
+   here that caps for supported format are generated without any window or
+   image creation */
+GstXvContext *
+gst_xvcontext_new (GstXvContextConfig * config, GError ** error)
+{
+  GstXvContext *context = NULL;
+  XPixmapFormatValues *px_formats = NULL;
+  gint nb_formats = 0, i, j, N_attr;
+  XvAttribute *xv_attr;
+  Atom prop_atom;
+  const char *channels[4] = { "XV_HUE", "XV_SATURATION",
+    "XV_BRIGHTNESS", "XV_CONTRAST"
+  };
+
+  g_return_val_if_fail (config != NULL, NULL);
+
+  context = g_slice_new0 (GstXvContext);
+
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (context), 0,
+      gst_xvcontext_get_type (),
+      (GstMiniObjectCopyFunction) gst_xvcontext_copy,
+      (GstMiniObjectDisposeFunction) NULL,
+      (GstMiniObjectFreeFunction) gst_xvcontext_free);
+
+  g_mutex_init (&context->lock);
+  context->im_format = 0;
+  context->adaptor_nr = -1;
+
+  if (!(context->disp = XOpenDisplay (config->display_name)))
+    goto no_display;
+
+  context->screen = DefaultScreenOfDisplay (context->disp);
+  context->screen_num = DefaultScreen (context->disp);
+  context->visual = DefaultVisual (context->disp, context->screen_num);
+  context->root = DefaultRootWindow (context->disp);
+  context->white = XWhitePixel (context->disp, context->screen_num);
+  context->black = XBlackPixel (context->disp, context->screen_num);
+  context->depth = DefaultDepthOfScreen (context->screen);
+
+  context->width = DisplayWidth (context->disp, context->screen_num);
+  context->height = DisplayHeight (context->disp, context->screen_num);
+  context->widthmm = DisplayWidthMM (context->disp, context->screen_num);
+  context->heightmm = DisplayHeightMM (context->disp, context->screen_num);
+
+  GST_DEBUG ("X reports %dx%d pixels and %d mm x %d mm",
+      context->width, context->height, context->widthmm, context->heightmm);
+
+  gst_xvcontext_calculate_pixel_aspect_ratio (context);
+  /* We get supported pixmap formats at supported depth */
+  px_formats = XListPixmapFormats (context->disp, &nb_formats);
+
+  if (!px_formats)
+    goto no_pixel_formats;
+
+  /* We get bpp value corresponding to our running depth */
+  for (i = 0; i < nb_formats; i++) {
+    if (px_formats[i].depth == context->depth)
+      context->bpp = px_formats[i].bits_per_pixel;
+  }
+
+  XFree (px_formats);
+
+  context->endianness =
+      (ImageByteOrder (context->disp) ==
+      LSBFirst) ? G_LITTLE_ENDIAN : G_BIG_ENDIAN;
+
+  /* our caps system handles 24/32bpp RGB as big-endian. */
+  if ((context->bpp == 24 || context->bpp == 32) &&
+      context->endianness == G_LITTLE_ENDIAN) {
+    context->endianness = G_BIG_ENDIAN;
+    context->visual->red_mask = GUINT32_TO_BE (context->visual->red_mask);
+    context->visual->green_mask = GUINT32_TO_BE (context->visual->green_mask);
+    context->visual->blue_mask = GUINT32_TO_BE (context->visual->blue_mask);
+    if (context->bpp == 24) {
+      context->visual->red_mask >>= 8;
+      context->visual->green_mask >>= 8;
+      context->visual->blue_mask >>= 8;
+    }
+  }
+
+  if (!(context->caps = gst_xvcontext_get_xv_support (context, config, error)))
+    goto no_caps;
+
+  /* Search for XShm extension support */
+#ifdef HAVE_XSHM
+  if (XShmQueryExtension (context->disp) &&
+      gst_xvcontext_check_xshm_calls (context)) {
+    context->use_xshm = TRUE;
+    GST_DEBUG ("xvimagesink is using XShm extension");
+  } else
+#endif /* HAVE_XSHM */
+  {
+    context->use_xshm = FALSE;
+    GST_DEBUG ("xvimagesink is not using XShm extension");
+  }
+
+  xv_attr = XvQueryPortAttributes (context->disp, context->xv_port_id, &N_attr);
+
+  /* Generate the channels list */
+  for (i = 0; i < (sizeof (channels) / sizeof (char *)); i++) {
+    XvAttribute *matching_attr = NULL;
+
+    /* Retrieve the property atom if it exists. If it doesn't exist,
+     * the attribute itself must not either, so we can skip */
+    prop_atom = XInternAtom (context->disp, channels[i], True);
+    if (prop_atom == None)
+      continue;
+
+    if (xv_attr != NULL) {
+      for (j = 0; j < N_attr && matching_attr == NULL; ++j)
+        if (!g_ascii_strcasecmp (channels[i], xv_attr[j].name))
+          matching_attr = xv_attr + j;
+    }
+
+    if (matching_attr) {
+      GstColorBalanceChannel *channel;
+
+      channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL);
+      channel->label = g_strdup (channels[i]);
+      channel->min_value = matching_attr ? matching_attr->min_value : -1000;
+      channel->max_value = matching_attr ? matching_attr->max_value : 1000;
+
+      context->channels_list = g_list_append (context->channels_list, channel);
+
+      /* If the colorbalance settings have not been touched we get Xv values
+         as defaults and update our internal variables */
+      if (!config->cb_changed) {
+        gint val;
+
+        XvGetPortAttribute (context->disp, context->xv_port_id,
+            prop_atom, &val);
+        /* Normalize val to [-1000, 1000] */
+        val = floor (0.5 + -1000 + 2000 * (val - channel->min_value) /
+            (double) (channel->max_value - channel->min_value));
+
+        if (!g_ascii_strcasecmp (channels[i], "XV_HUE"))
+          config->hue = val;
+        else if (!g_ascii_strcasecmp (channels[i], "XV_SATURATION"))
+          config->saturation = val;
+        else if (!g_ascii_strcasecmp (channels[i], "XV_BRIGHTNESS"))
+          config->brightness = val;
+        else if (!g_ascii_strcasecmp (channels[i], "XV_CONTRAST"))
+          config->contrast = val;
+      }
+    }
+  }
+
+  if (xv_attr)
+    XFree (xv_attr);
+
+  return context;
+
+  /* ERRORS */
+no_display:
+  {
+    gst_xvcontext_unref (context);
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_WRITE,
+        "Could not open display %s", config->display_name);
+    return NULL;
+  }
+no_pixel_formats:
+  {
+    gst_xvcontext_unref (context);
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_SETTINGS,
+        ("Could not get pixel formats"));
+    return NULL;
+  }
+no_caps:
+  {
+    gst_xvcontext_unref (context);
+    return NULL;
+  }
+}
+
+void
+gst_xvcontext_set_synchronous (GstXvContext * context, gboolean synchronous)
+{
+  /* call XSynchronize with the current value of synchronous */
+  GST_DEBUG ("XSynchronize called with %s", synchronous ? "TRUE" : "FALSE");
+  g_mutex_lock (&context->lock);
+  XSynchronize (context->disp, synchronous);
+  g_mutex_unlock (&context->lock);
+}
+
+void
+gst_xvcontext_update_colorbalance (GstXvContext * context,
+    GstXvContextConfig * config)
+{
+  GList *channels = NULL;
+
+  /* Don't set the attributes if they haven't been changed, to avoid
+   * rounding errors changing the values */
+  if (!config->cb_changed)
+    return;
+
+  /* For each channel of the colorbalance we calculate the correct value
+     doing range conversion and then set the Xv port attribute to match our
+     values. */
+  channels = context->channels_list;
+
+  while (channels) {
+    if (channels->data && GST_IS_COLOR_BALANCE_CHANNEL (channels->data)) {
+      GstColorBalanceChannel *channel = NULL;
+      Atom prop_atom;
+      gint value = 0;
+      gdouble convert_coef;
+
+      channel = GST_COLOR_BALANCE_CHANNEL (channels->data);
+      g_object_ref (channel);
+
+      /* Our range conversion coef */
+      convert_coef = (channel->max_value - channel->min_value) / 2000.0;
+
+      if (g_ascii_strcasecmp (channel->label, "XV_HUE") == 0) {
+        value = config->hue;
+      } else if (g_ascii_strcasecmp (channel->label, "XV_SATURATION") == 0) {
+        value = config->saturation;
+      } else if (g_ascii_strcasecmp (channel->label, "XV_CONTRAST") == 0) {
+        value = config->contrast;
+      } else if (g_ascii_strcasecmp (channel->label, "XV_BRIGHTNESS") == 0) {
+        value = config->brightness;
+      } else {
+        g_warning ("got an unknown channel %s", channel->label);
+        g_object_unref (channel);
+        return;
+      }
+
+      /* Committing to Xv port */
+      g_mutex_lock (&context->lock);
+      prop_atom = XInternAtom (context->disp, channel->label, True);
+      if (prop_atom != None) {
+        int xv_value;
+        xv_value =
+            floor (0.5 + (value + 1000) * convert_coef + channel->min_value);
+        XvSetPortAttribute (context->disp,
+            context->xv_port_id, prop_atom, xv_value);
+      }
+      g_mutex_unlock (&context->lock);
+
+      g_object_unref (channel);
+    }
+    channels = g_list_next (channels);
+  }
+}
+
+/* This function tries to get a format matching with a given caps in the
+   supported list of formats we generated in gst_xvimagesink_get_xv_support */
+gint
+gst_xvcontext_get_format_from_info (GstXvContext * context, GstVideoInfo * info)
+{
+  GList *list = NULL;
+
+  list = context->formats_list;
+
+  while (list) {
+    GstXvImageFormat *format = list->data;
+
+    if (format && format->vformat == GST_VIDEO_INFO_FORMAT (info))
+      return format->format;
+
+    list = g_list_next (list);
+  }
+  return -1;
+}
+
+void
+gst_xvcontext_set_colorimetry (GstXvContext * context,
+    GstVideoColorimetry * colorimetry)
+{
+  Atom prop_atom;
+  int xv_value;
+
+  switch (colorimetry->matrix) {
+    case GST_VIDEO_COLOR_MATRIX_SMPTE240M:
+    case GST_VIDEO_COLOR_MATRIX_BT709:
+      xv_value = 1;
+      break;
+    default:
+      xv_value = 0;
+      break;
+  }
+
+  g_mutex_lock (&context->lock);
+  prop_atom = XInternAtom (context->disp, "XV_ITURBT_709", True);
+  if (prop_atom != None) {
+    XvSetPortAttribute (context->disp,
+        context->xv_port_id, prop_atom, xv_value);
+  }
+  g_mutex_unlock (&context->lock);
+}
+
+GstXWindow *
+gst_xvcontext_create_xwindow (GstXvContext * context, gint width, gint height)
+{
+  GstXWindow *window;
+  Atom wm_delete;
+  Atom hints_atom = None;
+
+  g_return_val_if_fail (GST_IS_XVCONTEXT (context), NULL);
+
+  window = g_slice_new0 (GstXWindow);
+
+  window->context = gst_xvcontext_ref (context);
+  window->render_rect.x = window->render_rect.y = 0;
+  window->render_rect.w = width;
+  window->render_rect.h = height;
+  window->have_render_rect = FALSE;
+
+  window->width = width;
+  window->height = height;
+  window->internal = TRUE;
+
+  g_mutex_lock (&context->lock);
+
+  window->win = XCreateSimpleWindow (context->disp,
+      context->root, 0, 0, width, height, 0, 0, context->black);
+
+  /* We have to do that to prevent X from redrawing the background on
+   * ConfigureNotify. This takes away flickering of video when resizing. */
+  XSetWindowBackgroundPixmap (context->disp, window->win, None);
+
+  /* Tell the window manager we'd like delete client messages instead of
+   * being killed */
+  wm_delete = XInternAtom (context->disp, "WM_DELETE_WINDOW", True);
+  if (wm_delete != None) {
+    (void) XSetWMProtocols (context->disp, window->win, &wm_delete, 1);
+  }
+
+  hints_atom = XInternAtom (context->disp, "_MOTIF_WM_HINTS", True);
+  if (hints_atom != None) {
+    MotifWmHints *hints;
+
+    hints = g_malloc0 (sizeof (MotifWmHints));
+
+    hints->flags |= MWM_HINTS_DECORATIONS;
+    hints->decorations = 1 << 0;
+
+    XChangeProperty (context->disp, window->win,
+        hints_atom, hints_atom, 32, PropModeReplace,
+        (guchar *) hints, sizeof (MotifWmHints) / sizeof (long));
+
+    XSync (context->disp, FALSE);
+
+    g_free (hints);
+  }
+
+  window->gc = XCreateGC (context->disp, window->win, 0, NULL);
+
+  XMapRaised (context->disp, window->win);
+
+  XSync (context->disp, FALSE);
+
+  g_mutex_unlock (&context->lock);
+
+  return window;
+}
+
+GstXWindow *
+gst_xvcontext_create_xwindow_from_xid (GstXvContext * context, XID xid)
+{
+  GstXWindow *window;
+  XWindowAttributes attr;
+
+  window = g_slice_new0 (GstXWindow);
+  window->win = xid;
+  window->context = gst_xvcontext_ref (context);
+
+  /* Set the event we want to receive and create a GC */
+  g_mutex_lock (&context->lock);
+
+  XGetWindowAttributes (context->disp, window->win, &attr);
+
+  window->width = attr.width;
+  window->height = attr.height;
+  window->internal = FALSE;
+
+  window->have_render_rect = FALSE;
+  window->render_rect.x = window->render_rect.y = 0;
+  window->render_rect.w = attr.width;
+  window->render_rect.h = attr.height;
+
+  window->gc = XCreateGC (context->disp, window->win, 0, NULL);
+  g_mutex_unlock (&context->lock);
+
+  return window;
+}
+
+void
+gst_xwindow_destroy (GstXWindow * window)
+{
+  GstXvContext *context;
+
+  g_return_if_fail (window != NULL);
+
+  context = window->context;
+
+  g_mutex_lock (&context->lock);
+
+  /* If we did not create that window we just free the GC and let it live */
+  if (window->internal)
+    XDestroyWindow (context->disp, window->win);
+  else
+    XSelectInput (context->disp, window->win, 0);
+
+  XFreeGC (context->disp, window->gc);
+
+  XSync (context->disp, FALSE);
+
+  g_mutex_unlock (&context->lock);
+
+  gst_xvcontext_unref (context);
+
+  g_slice_free1 (sizeof (GstXWindow), window);
+}
+
+void
+gst_xwindow_set_event_handling (GstXWindow * window, gboolean handle_events)
+{
+  GstXvContext *context;
+
+  g_return_if_fail (window != NULL);
+
+  context = window->context;
+
+  g_mutex_lock (&context->lock);
+  if (handle_events) {
+    if (window->internal) {
+      XSelectInput (context->disp, window->win,
+          ExposureMask | StructureNotifyMask | PointerMotionMask |
+          KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask);
+    } else {
+      XSelectInput (context->disp, window->win,
+          ExposureMask | StructureNotifyMask | PointerMotionMask |
+          KeyPressMask | KeyReleaseMask);
+    }
+  } else {
+    XSelectInput (context->disp, window->win, 0);
+  }
+  g_mutex_unlock (&context->lock);
+}
+
+void
+gst_xwindow_set_title (GstXWindow * window, const gchar * title)
+{
+  GstXvContext *context;
+
+  g_return_if_fail (window != NULL);
+
+  context = window->context;
+
+  /* we have a window */
+  if (window->internal && title) {
+    XTextProperty xproperty;
+
+    if ((XStringListToTextProperty (((char **) &title), 1, &xproperty)) != 0) {
+      XSetWMName (context->disp, window->win, &xproperty);
+      XFree (xproperty.value);
+    }
+  }
+}
+
+void
+gst_xwindow_update_geometry (GstXWindow * window)
+{
+  XWindowAttributes attr;
+  GstXvContext *context;
+
+  g_return_if_fail (window != NULL);
+
+  context = window->context;
+
+  /* Update the window geometry */
+  g_mutex_lock (&context->lock);
+  XGetWindowAttributes (context->disp, window->win, &attr);
+
+  window->width = attr.width;
+  window->height = attr.height;
+
+  if (!window->have_render_rect) {
+    window->render_rect.x = window->render_rect.y = 0;
+    window->render_rect.w = attr.width;
+    window->render_rect.h = attr.height;
+  }
+
+  g_mutex_unlock (&context->lock);
+}
+
+
+void
+gst_xwindow_clear (GstXWindow * window)
+{
+  GstXvContext *context;
+
+  g_return_if_fail (window != NULL);
+
+  context = window->context;
+
+  g_mutex_lock (&context->lock);
+
+  XvStopVideo (context->disp, context->xv_port_id, window->win);
+
+  XSync (context->disp, FALSE);
+
+  g_mutex_unlock (&context->lock);
+}
+
+void
+gst_xwindow_set_render_rectangle (GstXWindow * window,
+    gint x, gint y, gint width, gint height)
+{
+  g_return_if_fail (window != NULL);
+
+  if (width >= 0 && height >= 0) {
+    window->render_rect.x = x;
+    window->render_rect.y = y;
+    window->render_rect.w = width;
+    window->render_rect.h = height;
+    window->have_render_rect = TRUE;
+  } else {
+    window->render_rect.x = 0;
+    window->render_rect.y = 0;
+    window->render_rect.w = window->width;
+    window->render_rect.h = window->height;
+    window->have_render_rect = FALSE;
+  }
+}
diff --git a/sys/xvimage/xvcontext.h b/sys/xvimage/xvcontext.h
new file mode 100644
index 0000000..1bd0d97
--- /dev/null
+++ b/sys/xvimage/xvcontext.h
@@ -0,0 +1,249 @@
+/* GStreamer
+ * Copyright (C) <2005> Julien Moutte <julien@moutte.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_XVCONTEXT_H__
+#define __GST_XVCONTEXT_H__
+
+#ifdef HAVE_XSHM
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#endif /* HAVE_XSHM */
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#ifdef HAVE_XSHM
+#include <X11/extensions/XShm.h>
+#endif /* HAVE_XSHM */
+
+#include <X11/extensions/Xv.h>
+#include <X11/extensions/Xvlib.h>
+
+#include <string.h>
+#include <math.h>
+#include <stdlib.h>
+
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstXvContextConfig GstXvContextConfig;
+typedef struct _GstXvImageFormat GstXvImageFormat;
+typedef struct _GstXvContext GstXvContext;
+
+/**
+ * GstXvContextConfig:
+ *
+ * current configuration of the context
+ */
+struct _GstXvContextConfig
+{
+  gchar *display_name;
+  guint  adaptor_nr;
+
+  /* port attributes */
+  gboolean autopaint_colorkey;
+  gint colorkey;
+
+  gboolean double_buffer;
+
+  gint brightness;
+  gint contrast;
+  gint hue;
+  gint saturation;
+  gboolean cb_changed;
+};
+
+/**
+ * GstXvImageFormat:
+ * @format: the image format
+ * @caps: generated #GstCaps for this image format
+ *
+ * Structure storing image format to #GstCaps association.
+ */
+struct _GstXvImageFormat
+{
+  gint format;
+  GstVideoFormat vformat;
+  GstCaps *caps;
+};
+
+#define GST_TYPE_XVCONTEXT      (gst_xvcontext_get_type())
+#define GST_IS_XVCONTEXT(obj)   (GST_IS_MINI_OBJECT_TYPE(obj, GST_TYPE_XVCONTEXT))
+#define GST_XVCONTEXT_CAST(obj) ((GstXvContext *)obj)
+#define GST_XVCONTEXT(obj)      (GST_XVCONTEXT_CAST(obj))
+
+/*
+ * GstXvContext:
+ * @disp: the X11 Display of this context
+ * @screen: the default Screen of Display @disp
+ * @screen_num: the Screen number of @screen
+ * @visual: the default Visual of Screen @screen
+ * @root: the root Window of Display @disp
+ * @white: the value of a white pixel on Screen @screen
+ * @black: the value of a black pixel on Screen @screen
+ * @depth: the color depth of Display @disp
+ * @bpp: the number of bits per pixel on Display @disp
+ * @endianness: the endianness of image bytes on Display @disp
+ * @width: the width in pixels of Display @disp
+ * @height: the height in pixels of Display @disp
+ * @widthmm: the width in millimeters of Display @disp
+ * @heightmm: the height in millimeters of Display @disp
+ * @par: the pixel aspect ratio calculated from @width, @widthmm and @height,
+ * @heightmm ratio
+ * @use_xshm: used to known wether of not XShm extension is usable or not even
+ * if the Extension is present
+ * @xv_port_id: the XVideo port ID
+ * @im_format: used to store at least a valid format for XShm calls checks
+ * @formats_list: list of supported image formats on @xv_port_id
+ * @channels_list: list of #GstColorBalanceChannels
+ * @caps: the #GstCaps that Display @disp can accept
+ *
+ * Structure used to store various informations collected/calculated for a
+ * Display.
+ */
+struct _GstXvContext
+{
+  GstMiniObject parent;
+
+  GMutex lock;
+
+  Display *disp;
+
+  Screen *screen;
+  gint screen_num;
+
+  Visual *visual;
+
+  Window root;
+
+  gulong white, black;
+
+  gint depth;
+  gint bpp;
+  gint endianness;
+
+  gint width, height;
+  gint widthmm, heightmm;
+  GValue *par;                  /* calculated pixel aspect ratio */
+
+  gboolean use_xshm;
+
+  XvPortID xv_port_id;
+  guint nb_adaptors;
+  gchar **adaptors;
+  guint adaptor_nr;
+  gint im_format;
+
+  /* port features */
+  gboolean have_autopaint_colorkey;
+  gboolean have_colorkey;
+  gboolean have_double_buffer;
+
+  GList *formats_list;
+
+  GList *channels_list;
+
+  GstCaps *caps;
+
+  /* Optimisation storage for buffer_alloc return */
+  GstCaps *last_caps;
+  gint last_format;
+  gint last_width;
+  gint last_height;
+};
+
+GType gst_xvcontext_get_type (void);
+
+void            gst_xvcontext_config_clear (GstXvContextConfig *config);
+
+GstXvContext *  gst_xvcontext_new          (GstXvContextConfig *config, GError **error);
+
+/* refcounting */
+static inline GstXvContext *
+gst_xvcontext_ref (GstXvContext * xvcontext)
+{
+  return GST_XVCONTEXT_CAST (gst_mini_object_ref (GST_MINI_OBJECT_CAST (
+      xvcontext)));
+}
+
+static inline void
+gst_xvcontext_unref (GstXvContext * xvcontext)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (xvcontext));
+}
+
+gint            gst_xvcontext_get_format_from_info      (GstXvContext * xvcontext,
+                                                         GstVideoInfo * info);
+
+
+void            gst_xvcontext_set_synchronous           (GstXvContext * xvcontext,
+                                                         gboolean synchronous);
+void            gst_xvcontext_update_colorbalance       (GstXvContext * xvcontext,
+                                                         GstXvContextConfig * config);
+void            gst_xvcontext_set_colorimetry           (GstXvContext * xvcontext,
+                                                         GstVideoColorimetry *colorimetry);
+
+
+typedef struct _GstXWindow GstXWindow;
+
+/*
+ * GstXWindow:
+ * @win: the Window ID of this X11 window
+ * @width: the width in pixels of Window @win
+ * @height: the height in pixels of Window @win
+ * @internal: used to remember if Window @win was created internally or passed
+ * through the #GstVideoOverlay interface
+ * @gc: the Graphical Context of Window @win
+ *
+ * Structure used to store informations about a Window.
+ */
+struct _GstXWindow
+{
+  GstXvContext *context;
+
+  Window win;
+  gint width, height;
+  gboolean have_render_rect;
+  GstVideoRectangle render_rect;
+  gboolean internal;
+  GC gc;
+};
+
+G_END_DECLS
+
+GstXWindow *   gst_xvcontext_create_xwindow     (GstXvContext * context,
+                                                 gint width, gint height);
+GstXWindow *   gst_xvcontext_create_xwindow_from_xid (GstXvContext * context, XID xid);
+
+void           gst_xwindow_destroy              (GstXWindow * window);
+
+void           gst_xwindow_set_event_handling   (GstXWindow * window, gboolean handle_events);
+void           gst_xwindow_set_title            (GstXWindow * window, const gchar * title);
+
+void           gst_xwindow_update_geometry      (GstXWindow * window);
+void           gst_xwindow_clear                (GstXWindow * window);
+
+void           gst_xwindow_set_render_rectangle (GstXWindow * window,
+                                                 gint x, gint y, gint width, gint height);
+
+
+
+#endif /* __GST_XVCONTEXT_H__ */
diff --git a/sys/xvimage/xvimage.c b/sys/xvimage/xvimage.c
index 7448672..e8851f1 100644
--- a/sys/xvimage/xvimage.c
+++ b/sys/xvimage/xvimage.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -23,6 +23,7 @@
 
 #include "xvimagesink.h"
 
+GST_DEBUG_CATEGORY (gst_debug_xvcontext);
 GST_DEBUG_CATEGORY (gst_debug_xvimagepool);
 GST_DEBUG_CATEGORY (gst_debug_xvimagesink);
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
@@ -34,6 +35,8 @@
           GST_RANK_PRIMARY, GST_TYPE_XVIMAGESINK))
     return FALSE;
 
+  GST_DEBUG_CATEGORY_INIT (gst_debug_xvcontext, "xcontext", 0,
+      "xcontext miniobject");
   GST_DEBUG_CATEGORY_INIT (gst_debug_xvimagesink, "xvimagesink", 0,
       "xvimagesink element");
   GST_DEBUG_CATEGORY_INIT (gst_debug_xvimagepool, "xvimagepool", 0,
diff --git a/sys/xvimage/xvimageallocator.c b/sys/xvimage/xvimageallocator.c
new file mode 100644
index 0000000..3aa1a82
--- /dev/null
+++ b/sys/xvimage/xvimageallocator.c
@@ -0,0 +1,651 @@
+/* GStreamer
+ * Copyright (C) <2005> Julien Moutte <julien@moutte.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_XSHM
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#endif /* HAVE_XSHM */
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#ifdef HAVE_XSHM
+#include <X11/extensions/XShm.h>
+#endif /* HAVE_XSHM */
+
+#include <string.h>
+#include <math.h>
+
+/* Object header */
+#include "xvimageallocator.h"
+
+/* Debugging category */
+#include <gst/gstinfo.h>
+
+/* Helper functions */
+#include <gst/video/video.h>
+
+
+GST_DEBUG_CATEGORY_STATIC (gst_debug_xvimageallocator);
+#define GST_CAT_DEFAULT gst_debug_xvimageallocator
+
+struct _GstXvImageMemory
+{
+  GstMemory parent;
+
+  gint im_format;
+  GstVideoRectangle crop;
+
+  XvImage *xvimage;
+
+#ifdef HAVE_XSHM
+  XShmSegmentInfo SHMInfo;
+#endif                          /* HAVE_XSHM */
+};
+
+
+struct _GstXvImageAllocator
+{
+  GstAllocator parent;
+
+  GstXvContext *context;
+};
+
+struct _GstXvImageAllocatorClass
+{
+  GstAllocatorClass parent_class;
+};
+
+gboolean
+gst_xvimage_memory_is_from_context (GstMemory * mem, GstXvContext * context)
+{
+  GstXvImageAllocator *alloc;
+
+  if (!GST_IS_XVIMAGE_ALLOCATOR (mem->allocator))
+    return FALSE;
+
+  alloc = GST_XVIMAGE_ALLOCATOR_CAST (mem->allocator);
+
+  if (alloc->context != context)
+    return FALSE;
+
+  return TRUE;
+}
+
+gint
+gst_xvimage_memory_get_format (GstXvImageMemory * xvmem)
+{
+  g_return_val_if_fail (xvmem != NULL, FALSE);
+
+  return xvmem->im_format;
+}
+
+XvImage *
+gst_xvimage_memory_get_xvimage (GstXvImageMemory * xvmem)
+{
+  g_return_val_if_fail (xvmem != NULL, FALSE);
+
+  return xvmem->xvimage;
+}
+
+gboolean
+gst_xvimage_memory_get_crop (GstXvImageMemory * xvmem, GstVideoRectangle * crop)
+{
+  g_return_val_if_fail (xvmem != NULL, FALSE);
+
+  if (crop)
+    *crop = xvmem->crop;
+
+  return TRUE;
+}
+
+
+/* X11 stuff */
+static gboolean error_caught = FALSE;
+
+static int
+gst_xvimage_handle_xerror (Display * display, XErrorEvent * xevent)
+{
+  char error_msg[1024];
+
+  XGetErrorText (display, xevent->error_code, error_msg, 1024);
+  GST_DEBUG ("xvimage triggered an XError. error: %s", error_msg);
+  error_caught = TRUE;
+  return 0;
+}
+
+static GstMemory *
+gst_xvimage_allocator_dummy_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
+{
+  return NULL;
+}
+
+static void
+gst_xvimage_allocator_free (GstAllocator * allocator, GstMemory * gmem)
+{
+  GstXvImageMemory *mem = (GstXvImageMemory *) gmem;
+  GstXvImageAllocator *alloc = (GstXvImageAllocator *) allocator;
+  GstXvContext *context;
+
+  if (gmem->parent)
+    goto sub_mem;
+
+  context = alloc->context;
+
+  GST_DEBUG_OBJECT (allocator, "free memory %p", mem);
+
+  g_mutex_lock (&context->lock);
+
+#ifdef HAVE_XSHM
+  if (context->use_xshm) {
+    if (mem->SHMInfo.shmaddr != ((void *) -1)) {
+      GST_DEBUG_OBJECT (allocator, "XServer ShmDetaching from 0x%x id 0x%lx",
+          mem->SHMInfo.shmid, mem->SHMInfo.shmseg);
+      XShmDetach (context->disp, &mem->SHMInfo);
+      XSync (context->disp, FALSE);
+      shmdt (mem->SHMInfo.shmaddr);
+      mem->SHMInfo.shmaddr = (void *) -1;
+    }
+    if (mem->xvimage)
+      XFree (mem->xvimage);
+  } else
+#endif /* HAVE_XSHM */
+  {
+    if (mem->xvimage) {
+      g_free (mem->xvimage->data);
+      XFree (mem->xvimage);
+    }
+  }
+
+  XSync (context->disp, FALSE);
+
+  g_mutex_unlock (&context->lock);
+
+sub_mem:
+  g_slice_free (GstXvImageMemory, mem);
+}
+
+static gpointer
+gst_xvimage_memory_map (GstXvImageMemory * mem, gsize maxsize,
+    GstMapFlags flags)
+{
+  return mem->xvimage->data + mem->parent.offset;
+}
+
+static gboolean
+gst_xvimage_memory_unmap (GstXvImageMemory * mem)
+{
+  return TRUE;
+}
+
+static GstXvImageMemory *
+gst_xvimage_memory_share (GstXvImageMemory * mem, gssize offset, gsize size)
+{
+  GstXvImageMemory *sub;
+  GstMemory *parent;
+
+  /* We can only share the complete memory */
+  if (offset != 0)
+    return NULL;
+  if (size != -1 && size != mem->xvimage->data_size)
+    return NULL;
+
+  GST_DEBUG ("share memory %p", mem);
+
+  /* find the real parent */
+  if ((parent = mem->parent.parent) == NULL)
+    parent = (GstMemory *) mem;
+
+  if (size == -1)
+    size = mem->parent.size - offset;
+
+  /* the shared memory is always readonly */
+  sub = g_slice_new (GstXvImageMemory);
+
+  gst_memory_init (GST_MEMORY_CAST (sub), GST_MINI_OBJECT_FLAGS (parent) |
+      GST_MINI_OBJECT_FLAG_LOCK_READONLY, mem->parent.allocator,
+      &mem->parent, mem->parent.maxsize, mem->parent.align,
+      mem->parent.offset + offset, size);
+
+  sub->im_format = mem->im_format;
+  sub->crop = mem->crop;
+  sub->xvimage = mem->xvimage;
+#ifdef HAVE_XSHM
+  sub->SHMInfo = mem->SHMInfo;
+#endif
+
+  return sub;
+}
+
+static GstXvImageMemory *
+gst_xvimage_memory_copy (GstMemory * gmem, gssize offset, gsize size)
+{
+  GstXvImageMemory *mem, *copy;
+
+  mem = (GstXvImageMemory *) gmem;
+
+  /* We can only copy the complete memory */
+  if (offset != 0)
+    return NULL;
+  if (size != -1 && size != mem->xvimage->data_size)
+    return NULL;
+
+  GST_DEBUG ("copy memory %p", mem);
+
+  copy = (GstXvImageMemory *)
+      gst_xvimage_allocator_alloc (GST_XVIMAGE_ALLOCATOR_CAST (gmem->allocator),
+      mem->im_format, mem->xvimage->width, mem->xvimage->height, &mem->crop,
+      NULL);
+
+  memcpy (copy->xvimage->data + copy->parent.offset,
+      mem->xvimage->data + mem->parent.offset, mem->xvimage->data_size);
+
+  return copy;
+}
+
+#define gst_xvimage_allocator_parent_class parent_class
+G_DEFINE_TYPE (GstXvImageAllocator, gst_xvimage_allocator, GST_TYPE_ALLOCATOR);
+
+static void gst_xvimage_allocator_finalize (GObject * object);
+
+#define GST_XVIMAGE_ALLOCATOR_NAME "xvimage"
+
+static void
+gst_xvimage_allocator_class_init (GstXvImageAllocatorClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstAllocatorClass *allocator_class;
+
+  gobject_class = (GObjectClass *) klass;
+  allocator_class = (GstAllocatorClass *) klass;
+
+  gobject_class->finalize = gst_xvimage_allocator_finalize;
+
+  allocator_class->alloc = gst_xvimage_allocator_dummy_alloc;
+  allocator_class->free = gst_xvimage_allocator_free;
+
+  GST_DEBUG_CATEGORY_INIT (gst_debug_xvimageallocator, "xvimageallocator", 0,
+      "xvimageallocator object");
+}
+
+static void
+gst_xvimage_allocator_init (GstXvImageAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  alloc->mem_type = GST_XVIMAGE_ALLOCATOR_NAME;
+  alloc->mem_map = (GstMemoryMapFunction) gst_xvimage_memory_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) gst_xvimage_memory_unmap;
+  alloc->mem_share = (GstMemoryShareFunction) gst_xvimage_memory_share;
+  alloc->mem_copy = (GstMemoryShareFunction) gst_xvimage_memory_copy;
+  /* fallback is_span */
+
+  GST_OBJECT_FLAG_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
+}
+
+static void
+gst_xvimage_allocator_finalize (GObject * object)
+{
+  GstXvImageAllocator *alloc = GST_XVIMAGE_ALLOCATOR (object);
+
+  GST_DEBUG_OBJECT (object, "finalize");
+
+  gst_xvcontext_unref (alloc->context);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+GstXvImageAllocator *
+gst_xvimage_allocator_new (GstXvContext * context)
+{
+  GstXvImageAllocator *alloc;
+
+  g_return_val_if_fail (GST_IS_XVCONTEXT (context), NULL);
+
+  alloc = g_object_new (GST_TYPE_XVIMAGE_ALLOCATOR, NULL);
+  alloc->context = gst_xvcontext_ref (context);
+
+  return alloc;
+}
+
+GstXvContext *
+gst_xvimage_allocator_peek_context (GstXvImageAllocator * allocator)
+{
+  g_return_val_if_fail (GST_IS_XVIMAGE_ALLOCATOR (allocator), NULL);
+
+  return allocator->context;
+}
+
+GstMemory *
+gst_xvimage_allocator_alloc (GstXvImageAllocator * allocator, gint im_format,
+    gint padded_width, gint padded_height, GstVideoRectangle * crop,
+    GError ** error)
+{
+  int (*handler) (Display *, XErrorEvent *);
+  gboolean success = FALSE;
+  GstXvContext *context;
+  gint align = 15, offset;
+  GstXvImageMemory *mem;
+
+  context = allocator->context;
+
+  mem = g_slice_new (GstXvImageMemory);
+
+  mem->im_format = im_format;
+#ifdef HAVE_XSHM
+  mem->SHMInfo.shmaddr = ((void *) -1);
+  mem->SHMInfo.shmid = -1;
+#endif
+  mem->crop = *crop;
+
+  GST_DEBUG_OBJECT (allocator, "creating image %p (%dx%d) cropped %dx%d-%dx%d",
+      mem, padded_width, padded_height, crop->x, crop->y, crop->w, crop->h);
+
+  g_mutex_lock (&context->lock);
+
+  /* Setting an error handler to catch failure */
+  error_caught = FALSE;
+  handler = XSetErrorHandler (gst_xvimage_handle_xerror);
+
+#ifdef HAVE_XSHM
+  if (context->use_xshm) {
+    int expected_size;
+
+    mem->xvimage = XvShmCreateImage (context->disp,
+        context->xv_port_id, im_format, NULL, padded_width, padded_height,
+        &mem->SHMInfo);
+    if (!mem->xvimage || error_caught) {
+      g_mutex_unlock (&context->lock);
+
+      /* Reset error flag */
+      error_caught = FALSE;
+
+      /* Push a warning */
+      GST_WARNING_OBJECT (allocator,
+          "could not XShmCreateImage a %dx%d image", padded_width,
+          padded_height);
+
+      /* Retry without XShm */
+      context->use_xshm = FALSE;
+
+      /* Hold X mutex again to try without XShm */
+      g_mutex_lock (&context->lock);
+      goto no_xshm;
+    }
+
+    /* we have to use the returned data_size for our shm size */
+    GST_LOG_OBJECT (allocator, "XShm image size is %d",
+        mem->xvimage->data_size);
+
+    /* calculate the expected size.  This is only for sanity checking the
+     * number we get from X. */
+    switch (im_format) {
+      case GST_MAKE_FOURCC ('I', '4', '2', '0'):
+      case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
+      {
+        gint pitches[3];
+        gint offsets[3];
+        guint plane;
+
+        offsets[0] = 0;
+        pitches[0] = GST_ROUND_UP_4 (padded_width);
+        offsets[1] = offsets[0] + pitches[0] * GST_ROUND_UP_2 (padded_height);
+        pitches[1] = GST_ROUND_UP_8 (padded_width) / 2;
+        offsets[2] =
+            offsets[1] + pitches[1] * GST_ROUND_UP_2 (padded_height) / 2;
+        pitches[2] = GST_ROUND_UP_8 (pitches[0]) / 2;
+
+        expected_size =
+            offsets[2] + pitches[2] * GST_ROUND_UP_2 (padded_height) / 2;
+
+        for (plane = 0; plane < mem->xvimage->num_planes; plane++) {
+          GST_DEBUG_OBJECT (allocator,
+              "Plane %u has a expected pitch of %d bytes, " "offset of %d",
+              plane, pitches[plane], offsets[plane]);
+        }
+        break;
+      }
+      case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
+      case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
+        expected_size = padded_height * GST_ROUND_UP_4 (padded_width * 2);
+        break;
+      default:
+        expected_size = 0;
+        break;
+    }
+    if (expected_size != 0 && mem->xvimage->data_size != expected_size) {
+      GST_WARNING_OBJECT (allocator,
+          "unexpected XShm image size (got %d, expected %d)",
+          mem->xvimage->data_size, expected_size);
+    }
+
+    /* Be verbose about our XvImage stride */
+    {
+      guint plane;
+
+      for (plane = 0; plane < mem->xvimage->num_planes; plane++) {
+        GST_DEBUG_OBJECT (allocator, "Plane %u has a pitch of %d bytes, "
+            "offset of %d", plane, mem->xvimage->pitches[plane],
+            mem->xvimage->offsets[plane]);
+      }
+    }
+
+    /* get shared memory */
+    mem->SHMInfo.shmid =
+        shmget (IPC_PRIVATE, mem->xvimage->data_size + align, IPC_CREAT | 0777);
+    if (mem->SHMInfo.shmid == -1)
+      goto shmget_failed;
+
+    /* attach */
+    mem->SHMInfo.shmaddr = shmat (mem->SHMInfo.shmid, NULL, 0);
+    if (mem->SHMInfo.shmaddr == ((void *) -1))
+      goto shmat_failed;
+
+    /* now we can set up the image data */
+    mem->xvimage->data = mem->SHMInfo.shmaddr;
+    mem->SHMInfo.readOnly = FALSE;
+
+    if (XShmAttach (context->disp, &mem->SHMInfo) == 0)
+      goto xattach_failed;
+
+    XSync (context->disp, FALSE);
+
+    /* Delete the shared memory segment as soon as we everyone is attached.
+     * This way, it will be deleted as soon as we detach later, and not
+     * leaked if we crash. */
+    shmctl (mem->SHMInfo.shmid, IPC_RMID, NULL);
+
+    GST_DEBUG_OBJECT (allocator, "XServer ShmAttached to 0x%x, id 0x%lx",
+        mem->SHMInfo.shmid, mem->SHMInfo.shmseg);
+  } else
+  no_xshm:
+#endif /* HAVE_XSHM */
+  {
+    mem->xvimage = XvCreateImage (context->disp,
+        context->xv_port_id, im_format, NULL, padded_width, padded_height);
+    if (!mem->xvimage || error_caught)
+      goto create_failed;
+
+    /* we have to use the returned data_size for our image size */
+    mem->xvimage->data = g_malloc (mem->xvimage->data_size + align);
+
+    XSync (context->disp, FALSE);
+  }
+
+  if ((offset = ((guintptr) mem->xvimage->data & align)))
+    offset = (align + 1) - offset;
+
+  GST_DEBUG_OBJECT (allocator, "memory %p, align %d, offset %d",
+      mem->xvimage->data, align, offset);
+
+  /* Reset error handler */
+  error_caught = FALSE;
+  XSetErrorHandler (handler);
+
+  gst_memory_init (GST_MEMORY_CAST (mem), 0,
+      GST_ALLOCATOR_CAST (allocator), NULL, mem->xvimage->data_size + align,
+      align, offset, mem->xvimage->data_size);
+
+  g_mutex_unlock (&context->lock);
+
+  success = TRUE;
+
+beach:
+  if (!success) {
+    g_slice_free (GstXvImageMemory, mem);
+    mem = NULL;
+  }
+
+  return GST_MEMORY_CAST (mem);
+
+  /* ERRORS */
+create_failed:
+  {
+    g_mutex_unlock (&context->lock);
+    /* Reset error handler */
+    error_caught = FALSE;
+    XSetErrorHandler (handler);
+    /* Push an error */
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_WRITE,
+        "could not XvShmCreateImage a %dx%d image", padded_width,
+        padded_height);
+    goto beach;
+  }
+#ifdef HAVE_XSHM
+shmget_failed:
+  {
+    g_mutex_unlock (&context->lock);
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_WRITE,
+        "could not get shared memory of %d bytes", mem->xvimage->data_size);
+    goto beach;
+  }
+shmat_failed:
+  {
+    g_mutex_unlock (&context->lock);
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_WRITE,
+        "Failed to shmat: %s", g_strerror (errno));
+    /* Clean up the shared memory segment */
+    shmctl (mem->SHMInfo.shmid, IPC_RMID, NULL);
+    goto beach;
+  }
+xattach_failed:
+  {
+    /* Clean up the shared memory segment */
+    shmctl (mem->SHMInfo.shmid, IPC_RMID, NULL);
+    g_mutex_unlock (&context->lock);
+
+    g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_WRITE,
+        "Failed to XShmAttach");
+    goto beach;
+  }
+#endif
+}
+
+/* We are called with the x_lock taken */
+static void
+gst_xwindow_draw_borders (GstXWindow * window, GstVideoRectangle * rect)
+{
+  gint t1, t2;
+  GstXvContext *context;
+
+  g_return_if_fail (window != NULL);
+  g_return_if_fail (rect != NULL);
+
+  context = window->context;
+
+  XSetForeground (context->disp, window->gc, context->black);
+
+  /* Left border */
+  if (rect->x > window->render_rect.x) {
+    XFillRectangle (context->disp, window->win, window->gc,
+        window->render_rect.x, window->render_rect.y,
+        rect->x - window->render_rect.x, window->render_rect.h);
+  }
+
+  /* Right border */
+  t1 = rect->x + rect->w;
+  t2 = window->render_rect.x + window->render_rect.w;
+  if (t1 < t2) {
+    XFillRectangle (context->disp, window->win, window->gc,
+        t1, window->render_rect.y, t2 - t1, window->render_rect.h);
+  }
+
+  /* Top border */
+  if (rect->y > window->render_rect.y) {
+    XFillRectangle (context->disp, window->win, window->gc,
+        window->render_rect.x, window->render_rect.y,
+        window->render_rect.w, rect->y - window->render_rect.y);
+  }
+
+  /* Bottom border */
+  t1 = rect->y + rect->h;
+  t2 = window->render_rect.y + window->render_rect.h;
+  if (t1 < t2) {
+    XFillRectangle (context->disp, window->win, window->gc,
+        window->render_rect.x, t1, window->render_rect.w, t2 - t1);
+  }
+}
+
+void
+gst_xvimage_memory_render (GstXvImageMemory * mem, GstVideoRectangle * src_crop,
+    GstXWindow * window, GstVideoRectangle * dst_crop, gboolean draw_border)
+{
+  GstXvContext *context;
+  XvImage *xvimage;
+
+  context = window->context;
+
+  g_mutex_lock (&context->lock);
+  xvimage = gst_xvimage_memory_get_xvimage (mem);
+
+  if (draw_border) {
+    gst_xwindow_draw_borders (window, dst_crop);
+  }
+#ifdef HAVE_XSHM
+  if (context->use_xshm) {
+    GST_LOG ("XvShmPutImage with image %dx%d and window %dx%d, from xvimage %"
+        GST_PTR_FORMAT, src_crop->w, src_crop->h,
+        window->render_rect.w, window->render_rect.h, mem);
+
+    XvShmPutImage (context->disp,
+        context->xv_port_id,
+        window->win,
+        window->gc, xvimage,
+        src_crop->x, src_crop->y, src_crop->w, src_crop->h,
+        dst_crop->x, dst_crop->y, dst_crop->w, dst_crop->h, FALSE);
+  } else
+#endif /* HAVE_XSHM */
+  {
+    XvPutImage (context->disp,
+        context->xv_port_id,
+        window->win,
+        window->gc, xvimage,
+        src_crop->x, src_crop->y, src_crop->w, src_crop->h,
+        dst_crop->x, dst_crop->y, dst_crop->w, dst_crop->h);
+  }
+  XSync (context->disp, FALSE);
+
+  g_mutex_unlock (&context->lock);
+}
diff --git a/sys/xvimage/xvimageallocator.h b/sys/xvimage/xvimageallocator.h
new file mode 100644
index 0000000..c5fb9c8
--- /dev/null
+++ b/sys/xvimage/xvimageallocator.h
@@ -0,0 +1,69 @@
+/* GStreamer
+ * Copyright (C) <2005> Julien Moutte <julien@moutte.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_XVIMAGEALLOCATOR_H__
+#define __GST_XVIMAGEALLOCATOR_H__
+
+typedef struct _GstXvImageMemory GstXvImageMemory;
+
+typedef struct _GstXvImageAllocator GstXvImageAllocator;
+typedef struct _GstXvImageAllocatorClass GstXvImageAllocatorClass;
+
+#include "xvcontext.h"
+
+G_BEGIN_DECLS
+
+/* allocator functions */
+#define GST_TYPE_XVIMAGE_ALLOCATOR      (gst_xvimage_allocator_get_type())
+#define GST_IS_XVIMAGE_ALLOCATOR(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XVIMAGE_ALLOCATOR))
+#define GST_XVIMAGE_ALLOCATOR(obj)      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_XVIMAGE_ALLOCATOR, GstXvImageAllocator))
+#define GST_XVIMAGE_ALLOCATOR_CAST(obj) ((GstXvImageAllocator*)(obj))
+
+GType gst_xvimage_allocator_get_type (void);
+
+/* the allocator */
+GstXvImageAllocator * gst_xvimage_allocator_new         (GstXvContext * context);
+
+GstXvContext *        gst_xvimage_allocator_peek_context (GstXvImageAllocator * allocator);
+
+GstMemory *           gst_xvimage_allocator_alloc       (GstXvImageAllocator * allocator,
+                                                         gint im_format,
+                                                         gint padded_width,
+                                                         gint padded_height,
+                                                         GstVideoRectangle *crop,
+                                                         GError ** error);
+
+/* memory from the allocator */
+gboolean              gst_xvimage_memory_is_from_context (GstMemory *mem,
+                                                          GstXvContext * context);
+
+gint                  gst_xvimage_memory_get_format     (GstXvImageMemory *mem);
+XvImage *             gst_xvimage_memory_get_xvimage    (GstXvImageMemory *mem);
+gboolean              gst_xvimage_memory_get_crop       (GstXvImageMemory *mem,
+                                                         GstVideoRectangle *crop);
+
+void                  gst_xvimage_memory_render         (GstXvImageMemory *mem,
+                                                         GstVideoRectangle *src_crop,
+                                                         GstXWindow *window,
+                                                         GstVideoRectangle *dst_crop,
+                                                         gboolean draw_border);
+
+G_END_DECLS
+
+#endif /*__GST_XVIMAGEALLOCATOR_H__*/
diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c
index 54b2485..244a51a 100644
--- a/sys/xvimage/xvimagepool.c
+++ b/sys/xvimage/xvimagepool.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -22,7 +22,8 @@
 #endif
 
 /* Object header */
-#include "xvimagesink.h"
+#include "xvimagepool.h"
+#include "xvimageallocator.h"
 
 /* Debugging category */
 #include <gst/gstinfo.h>
@@ -39,8 +40,11 @@
 
 struct _GstXvImageBufferPoolPrivate
 {
+  GstXvImageAllocator *allocator;
+
   GstCaps *caps;
   gint im_format;
+  GstVideoRectangle crop;
   GstVideoInfo info;
   GstVideoAlignment align;
   guint padded_width;
@@ -49,458 +53,6 @@
   gboolean need_alignment;
 };
 
-static void gst_xvimage_meta_free (GstXvImageMeta * meta, GstBuffer * buffer);
-
-/* xvimage metadata */
-GType
-gst_xvimage_meta_api_get_type (void)
-{
-  static volatile GType type;
-  static const gchar *tags[] =
-      { "memory", "size", "colorspace", "orientation", NULL };
-
-  if (g_once_init_enter (&type)) {
-    GType _type = gst_meta_api_type_register ("GstXvImageMetaAPI", tags);
-    g_once_init_leave (&type, _type);
-  }
-  return type;
-}
-
-const GstMetaInfo *
-gst_xvimage_meta_get_info (void)
-{
-  static const GstMetaInfo *xvimage_meta_info = NULL;
-
-  if (g_once_init_enter (&xvimage_meta_info)) {
-    const GstMetaInfo *meta =
-        gst_meta_register (GST_XVIMAGE_META_API_TYPE, "GstXvImageMeta",
-        sizeof (GstXvImageMeta), (GstMetaInitFunction) NULL,
-        (GstMetaFreeFunction) gst_xvimage_meta_free,
-        (GstMetaTransformFunction) NULL);
-    g_once_init_leave (&xvimage_meta_info, meta);
-  }
-  return xvimage_meta_info;
-}
-
-/* X11 stuff */
-static gboolean error_caught = FALSE;
-
-static int
-gst_xvimagesink_handle_xerror (Display * display, XErrorEvent * xevent)
-{
-  char error_msg[1024];
-
-  XGetErrorText (display, xevent->error_code, error_msg, 1024);
-  GST_DEBUG ("xvimagesink triggered an XError. error: %s", error_msg);
-  error_caught = TRUE;
-  return 0;
-}
-
-static GstXvImageMeta *
-gst_buffer_add_xvimage_meta (GstBuffer * buffer, GstXvImageBufferPool * xvpool)
-{
-  GstXvImageSink *xvimagesink;
-  int (*handler) (Display *, XErrorEvent *);
-  gboolean success = FALSE;
-  GstXContext *xcontext;
-  GstXvImageMeta *meta;
-  gint width, height, im_format, align = 15, offset;
-  GstXvImageBufferPoolPrivate *priv;
-
-  priv = xvpool->priv;
-  xvimagesink = xvpool->sink;
-  xcontext = xvimagesink->xcontext;
-
-  width = priv->padded_width;
-  height = priv->padded_height;
-  im_format = priv->im_format;
-
-  meta =
-      (GstXvImageMeta *) gst_buffer_add_meta (buffer, GST_XVIMAGE_META_INFO,
-      NULL);
-#ifdef HAVE_XSHM
-  meta->SHMInfo.shmaddr = ((void *) -1);
-  meta->SHMInfo.shmid = -1;
-#endif
-  meta->x = priv->align.padding_left;
-  meta->y = priv->align.padding_top;
-  meta->width = priv->info.width;
-  meta->height = priv->info.height;
-  meta->sink = gst_object_ref (xvimagesink);
-  meta->im_format = im_format;
-
-  GST_DEBUG_OBJECT (xvimagesink, "creating image %p (%dx%d)", buffer,
-      width, height);
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  /* Setting an error handler to catch failure */
-  error_caught = FALSE;
-  handler = XSetErrorHandler (gst_xvimagesink_handle_xerror);
-
-#ifdef HAVE_XSHM
-  if (xcontext->use_xshm) {
-    int expected_size;
-
-    meta->xvimage = XvShmCreateImage (xcontext->disp,
-        xcontext->xv_port_id, im_format, NULL, width, height, &meta->SHMInfo);
-    if (!meta->xvimage || error_caught) {
-      g_mutex_unlock (&xvimagesink->x_lock);
-
-      /* Reset error flag */
-      error_caught = FALSE;
-
-      /* Push a warning */
-      GST_ELEMENT_WARNING (xvimagesink, RESOURCE, WRITE,
-          ("Failed to create output image buffer of %dx%d pixels",
-              width, height),
-          ("could not XShmCreateImage a %dx%d image", width, height));
-
-      /* Retry without XShm */
-      xvimagesink->xcontext->use_xshm = FALSE;
-
-      /* Hold X mutex again to try without XShm */
-      g_mutex_lock (&xvimagesink->x_lock);
-      goto no_xshm;
-    }
-
-    /* we have to use the returned data_size for our shm size */
-    meta->size = meta->xvimage->data_size;
-    GST_LOG_OBJECT (xvimagesink, "XShm image size is %" G_GSIZE_FORMAT,
-        meta->size);
-
-    /* calculate the expected size.  This is only for sanity checking the
-     * number we get from X. */
-    switch (im_format) {
-      case GST_MAKE_FOURCC ('I', '4', '2', '0'):
-      case GST_MAKE_FOURCC ('Y', 'V', '1', '2'):
-      {
-        gint pitches[3];
-        gint offsets[3];
-        guint plane;
-
-        offsets[0] = 0;
-        pitches[0] = GST_ROUND_UP_4 (width);
-        offsets[1] = offsets[0] + pitches[0] * GST_ROUND_UP_2 (height);
-        pitches[1] = GST_ROUND_UP_8 (width) / 2;
-        offsets[2] = offsets[1] + pitches[1] * GST_ROUND_UP_2 (height) / 2;
-        pitches[2] = GST_ROUND_UP_8 (pitches[0]) / 2;
-
-        expected_size = offsets[2] + pitches[2] * GST_ROUND_UP_2 (height) / 2;
-
-        for (plane = 0; plane < meta->xvimage->num_planes; plane++) {
-          GST_DEBUG_OBJECT (xvimagesink,
-              "Plane %u has a expected pitch of %d bytes, " "offset of %d",
-              plane, pitches[plane], offsets[plane]);
-        }
-        break;
-      }
-      case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'):
-      case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'):
-        expected_size = height * GST_ROUND_UP_4 (width * 2);
-        break;
-      default:
-        expected_size = 0;
-        break;
-    }
-    if (expected_size != 0 && meta->size != expected_size) {
-      GST_WARNING_OBJECT (xvimagesink,
-          "unexpected XShm image size (got %" G_GSIZE_FORMAT ", expected %d)",
-          meta->size, expected_size);
-    }
-
-    /* Be verbose about our XvImage stride */
-    {
-      guint plane;
-
-      for (plane = 0; plane < meta->xvimage->num_planes; plane++) {
-        GST_DEBUG_OBJECT (xvimagesink, "Plane %u has a pitch of %d bytes, "
-            "offset of %d", plane, meta->xvimage->pitches[plane],
-            meta->xvimage->offsets[plane]);
-      }
-    }
-
-    /* get shared memory */
-    meta->SHMInfo.shmid =
-        shmget (IPC_PRIVATE, meta->size + align, IPC_CREAT | 0777);
-    if (meta->SHMInfo.shmid == -1)
-      goto shmget_failed;
-
-    /* attach */
-    meta->SHMInfo.shmaddr = shmat (meta->SHMInfo.shmid, NULL, 0);
-    if (meta->SHMInfo.shmaddr == ((void *) -1))
-      goto shmat_failed;
-
-    /* now we can set up the image data */
-    meta->xvimage->data = meta->SHMInfo.shmaddr;
-    meta->SHMInfo.readOnly = FALSE;
-
-    if (XShmAttach (xcontext->disp, &meta->SHMInfo) == 0)
-      goto xattach_failed;
-
-    XSync (xcontext->disp, FALSE);
-
-    /* Delete the shared memory segment as soon as we everyone is attached.
-     * This way, it will be deleted as soon as we detach later, and not
-     * leaked if we crash. */
-    shmctl (meta->SHMInfo.shmid, IPC_RMID, NULL);
-
-    GST_DEBUG_OBJECT (xvimagesink, "XServer ShmAttached to 0x%x, id 0x%lx",
-        meta->SHMInfo.shmid, meta->SHMInfo.shmseg);
-  } else
-  no_xshm:
-#endif /* HAVE_XSHM */
-  {
-    meta->xvimage = XvCreateImage (xcontext->disp,
-        xcontext->xv_port_id, im_format, NULL, width, height);
-    if (!meta->xvimage || error_caught)
-      goto create_failed;
-
-    /* we have to use the returned data_size for our image size */
-    meta->size = meta->xvimage->data_size;
-    meta->xvimage->data = g_malloc (meta->size + align);
-
-    XSync (xcontext->disp, FALSE);
-  }
-
-  if ((offset = ((guintptr) meta->xvimage->data & align)))
-    offset = (align + 1) - offset;
-
-  GST_DEBUG_OBJECT (xvimagesink, "memory %p, align %d, offset %d",
-      meta->xvimage->data, align, offset);
-
-  /* Reset error handler */
-  error_caught = FALSE;
-  XSetErrorHandler (handler);
-
-  gst_buffer_append_memory (buffer,
-      gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, meta->xvimage->data,
-          meta->size + align, offset, meta->size, NULL, NULL));
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-  success = TRUE;
-
-beach:
-  if (!success)
-    meta = NULL;
-
-  return meta;
-
-  /* ERRORS */
-create_failed:
-  {
-    g_mutex_unlock (&xvimagesink->x_lock);
-    /* Reset error handler */
-    error_caught = FALSE;
-    XSetErrorHandler (handler);
-    /* Push an error */
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
-        ("Failed to create output image buffer of %dx%d pixels",
-            width, height),
-        ("could not XvShmCreateImage a %dx%d image", width, height));
-    goto beach;
-  }
-#ifdef HAVE_XSHM
-shmget_failed:
-  {
-    g_mutex_unlock (&xvimagesink->x_lock);
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
-        ("Failed to create output image buffer of %dx%d pixels",
-            width, height),
-        ("could not get shared memory of %" G_GSIZE_FORMAT " bytes",
-            meta->size));
-    goto beach;
-  }
-shmat_failed:
-  {
-    g_mutex_unlock (&xvimagesink->x_lock);
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
-        ("Failed to create output image buffer of %dx%d pixels",
-            width, height), ("Failed to shmat: %s", g_strerror (errno)));
-    /* Clean up the shared memory segment */
-    shmctl (meta->SHMInfo.shmid, IPC_RMID, NULL);
-    goto beach;
-  }
-xattach_failed:
-  {
-    /* Clean up the shared memory segment */
-    shmctl (meta->SHMInfo.shmid, IPC_RMID, NULL);
-    g_mutex_unlock (&xvimagesink->x_lock);
-
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
-        ("Failed to create output image buffer of %dx%d pixels",
-            width, height), ("Failed to XShmAttach"));
-    goto beach;
-  }
-#endif
-}
-
-static void
-gst_xvimage_meta_free (GstXvImageMeta * meta, GstBuffer * buffer)
-{
-  GstXvImageSink *xvimagesink;
-
-  xvimagesink = meta->sink;
-
-  GST_DEBUG_OBJECT (xvimagesink, "free meta on buffer %p", buffer);
-
-  /* Hold the object lock to ensure the XContext doesn't disappear */
-  GST_OBJECT_LOCK (xvimagesink);
-  /* We might have some buffers destroyed after changing state to NULL */
-  if (xvimagesink->xcontext == NULL) {
-    GST_DEBUG_OBJECT (xvimagesink, "Destroying XvImage after Xcontext");
-#ifdef HAVE_XSHM
-    /* Need to free the shared memory segment even if the x context
-     * was already cleaned up */
-    if (meta->SHMInfo.shmaddr != ((void *) -1)) {
-      shmdt (meta->SHMInfo.shmaddr);
-    }
-#endif
-    if (meta->xvimage)
-      XFree (meta->xvimage);
-    goto beach;
-  }
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-#ifdef HAVE_XSHM
-  if (xvimagesink->xcontext->use_xshm) {
-    if (meta->SHMInfo.shmaddr != ((void *) -1)) {
-      GST_DEBUG_OBJECT (xvimagesink, "XServer ShmDetaching from 0x%x id 0x%lx",
-          meta->SHMInfo.shmid, meta->SHMInfo.shmseg);
-      XShmDetach (xvimagesink->xcontext->disp, &meta->SHMInfo);
-      XSync (xvimagesink->xcontext->disp, FALSE);
-      shmdt (meta->SHMInfo.shmaddr);
-      meta->SHMInfo.shmaddr = (void *) -1;
-    }
-    if (meta->xvimage)
-      XFree (meta->xvimage);
-  } else
-#endif /* HAVE_XSHM */
-  {
-    if (meta->xvimage) {
-      g_free (meta->xvimage->data);
-      XFree (meta->xvimage);
-    }
-  }
-
-  XSync (xvimagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-beach:
-  GST_OBJECT_UNLOCK (xvimagesink);
-
-  gst_object_unref (meta->sink);
-}
-
-#ifdef HAVE_XSHM
-/* This function checks that it is actually really possible to create an image
-   using XShm */
-gboolean
-gst_xvimagesink_check_xshm_calls (GstXvImageSink * xvimagesink,
-    GstXContext * xcontext)
-{
-  XvImage *xvimage;
-  XShmSegmentInfo SHMInfo;
-  size_t size;
-  int (*handler) (Display *, XErrorEvent *);
-  gboolean result = FALSE;
-  gboolean did_attach = FALSE;
-
-  g_return_val_if_fail (xcontext != NULL, FALSE);
-
-  /* Sync to ensure any older errors are already processed */
-  XSync (xcontext->disp, FALSE);
-
-  /* Set defaults so we don't free these later unnecessarily */
-  SHMInfo.shmaddr = ((void *) -1);
-  SHMInfo.shmid = -1;
-
-  /* Setting an error handler to catch failure */
-  error_caught = FALSE;
-  handler = XSetErrorHandler (gst_xvimagesink_handle_xerror);
-
-  /* Trying to create a 1x1 picture */
-  GST_DEBUG ("XvShmCreateImage of 1x1");
-  xvimage = XvShmCreateImage (xcontext->disp, xcontext->xv_port_id,
-      xcontext->im_format, NULL, 1, 1, &SHMInfo);
-
-  /* Might cause an error, sync to ensure it is noticed */
-  XSync (xcontext->disp, FALSE);
-  if (!xvimage || error_caught) {
-    GST_WARNING ("could not XvShmCreateImage a 1x1 image");
-    goto beach;
-  }
-  size = xvimage->data_size;
-
-  SHMInfo.shmid = shmget (IPC_PRIVATE, size, IPC_CREAT | 0777);
-  if (SHMInfo.shmid == -1) {
-    GST_WARNING ("could not get shared memory of %" G_GSIZE_FORMAT " bytes",
-        size);
-    goto beach;
-  }
-
-  SHMInfo.shmaddr = shmat (SHMInfo.shmid, NULL, 0);
-  if (SHMInfo.shmaddr == ((void *) -1)) {
-    GST_WARNING ("Failed to shmat: %s", g_strerror (errno));
-    /* Clean up the shared memory segment */
-    shmctl (SHMInfo.shmid, IPC_RMID, NULL);
-    goto beach;
-  }
-
-  xvimage->data = SHMInfo.shmaddr;
-  SHMInfo.readOnly = FALSE;
-
-  if (XShmAttach (xcontext->disp, &SHMInfo) == 0) {
-    GST_WARNING ("Failed to XShmAttach");
-    /* Clean up the shared memory segment */
-    shmctl (SHMInfo.shmid, IPC_RMID, NULL);
-    goto beach;
-  }
-
-  /* Sync to ensure we see any errors we caused */
-  XSync (xcontext->disp, FALSE);
-
-  /* Delete the shared memory segment as soon as everyone is attached.
-   * This way, it will be deleted as soon as we detach later, and not
-   * leaked if we crash. */
-  shmctl (SHMInfo.shmid, IPC_RMID, NULL);
-
-  if (!error_caught) {
-    GST_DEBUG ("XServer ShmAttached to 0x%x, id 0x%lx", SHMInfo.shmid,
-        SHMInfo.shmseg);
-
-    did_attach = TRUE;
-    /* store whether we succeeded in result */
-    result = TRUE;
-  } else {
-    GST_WARNING ("MIT-SHM extension check failed at XShmAttach. "
-        "Not using shared memory.");
-  }
-
-beach:
-  /* Sync to ensure we swallow any errors we caused and reset error_caught */
-  XSync (xcontext->disp, FALSE);
-
-  error_caught = FALSE;
-  XSetErrorHandler (handler);
-
-  if (did_attach) {
-    GST_DEBUG ("XServer ShmDetaching from 0x%x id 0x%lx",
-        SHMInfo.shmid, SHMInfo.shmseg);
-    XShmDetach (xcontext->disp, &SHMInfo);
-    XSync (xcontext->disp, FALSE);
-  }
-  if (SHMInfo.shmaddr != ((void *) -1))
-    shmdt (SHMInfo.shmaddr);
-  if (xvimage)
-    XFree (xvimage);
-  return result;
-}
-#endif /* HAVE_XSHM */
-
 /* bufferpool */
 static void gst_xvimage_buffer_pool_finalize (GObject * object);
 
@@ -528,6 +80,7 @@
   GstXvImageBufferPoolPrivate *priv = xvpool->priv;
   GstVideoInfo info;
   GstCaps *caps;
+  GstXvContext *context;
 
   if (!gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL))
     goto wrong_config;
@@ -542,7 +95,9 @@
   GST_LOG_OBJECT (pool, "%dx%d, caps %" GST_PTR_FORMAT, info.width, info.height,
       caps);
 
-  priv->im_format = gst_xvimagesink_get_format_from_info (xvpool->sink, &info);
+  context = gst_xvimage_allocator_peek_context (priv->allocator);
+
+  priv->im_format = gst_xvcontext_get_format_from_info (context, &info);
   if (priv->im_format == -1)
     goto unknown_format;
 
@@ -584,6 +139,10 @@
       priv->align.padding_bottom;
 
   priv->info = info;
+  priv->crop.x = priv->align.padding_left;
+  priv->crop.y = priv->align.padding_top;
+  priv->crop.w = priv->info.width;
+  priv->crop.h = priv->info.height;
 
   return GST_BUFFER_POOL_CLASS (parent_class)->set_config (pool, config);
 
@@ -606,12 +165,8 @@
   }
 unknown_format:
   {
-    GST_WARNING_OBJECT (xvpool->sink, "failed to get format from caps %"
+    GST_WARNING_OBJECT (pool, "failed to get format from caps %"
         GST_PTR_FORMAT, caps);
-    GST_ELEMENT_ERROR (xvpool->sink, RESOURCE, WRITE,
-        ("Failed to create output image buffer of %dx%d pixels",
-            priv->info.width, priv->info.height),
-        ("Invalid input caps %" GST_PTR_FORMAT, caps));
     return FALSE;;
   }
 }
@@ -625,16 +180,20 @@
   GstXvImageBufferPoolPrivate *priv = xvpool->priv;
   GstVideoInfo *info;
   GstBuffer *xvimage;
-  GstXvImageMeta *meta;
+  GstMemory *mem;
 
   info = &priv->info;
 
   xvimage = gst_buffer_new ();
-  meta = gst_buffer_add_xvimage_meta (xvimage, xvpool);
-  if (meta == NULL) {
+
+  mem = gst_xvimage_allocator_alloc (priv->allocator, priv->im_format,
+      priv->padded_width, priv->padded_height, &priv->crop, NULL);
+
+  if (mem == NULL) {
     gst_buffer_unref (xvimage);
     goto no_buffer;
   }
+  gst_buffer_append_memory (xvimage, mem);
 
   if (priv->add_metavideo) {
     GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
@@ -657,14 +216,12 @@
 }
 
 GstBufferPool *
-gst_xvimage_buffer_pool_new (GstXvImageSink * xvimagesink)
+gst_xvimage_buffer_pool_new (GstXvImageAllocator * allocator)
 {
   GstXvImageBufferPool *pool;
 
-  g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), NULL);
-
   pool = g_object_new (GST_TYPE_XVIMAGE_BUFFER_POOL, NULL);
-  pool->sink = gst_object_ref (xvimagesink);
+  pool->priv->allocator = gst_object_ref (allocator);
 
   GST_LOG_OBJECT (pool, "new XvImage buffer pool %p", pool);
 
@@ -702,31 +259,8 @@
 
   if (priv->caps)
     gst_caps_unref (priv->caps);
-  gst_object_unref (pool->sink);
+  if (priv->allocator)
+    gst_object_unref (priv->allocator);
 
   G_OBJECT_CLASS (gst_xvimage_buffer_pool_parent_class)->finalize (object);
 }
-
-/* This function tries to get a format matching with a given caps in the
-   supported list of formats we generated in gst_xvimagesink_get_xv_support */
-gint
-gst_xvimagesink_get_format_from_info (GstXvImageSink * xvimagesink,
-    GstVideoInfo * info)
-{
-  GList *list = NULL;
-
-  g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), 0);
-
-  list = xvimagesink->xcontext->formats_list;
-
-  while (list) {
-    GstXvImageFormat *format = list->data;
-
-    if (format && format->vformat == GST_VIDEO_INFO_FORMAT (info))
-      return format->format;
-
-    list = g_list_next (list);
-  }
-
-  return -1;
-}
diff --git a/sys/xvimage/xvimagepool.h b/sys/xvimage/xvimagepool.h
index 335ae81..855c224 100644
--- a/sys/xvimage/xvimagepool.h
+++ b/sys/xvimage/xvimagepool.h
@@ -13,77 +13,23 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_XVIMAGEPOOL_H__
 #define __GST_XVIMAGEPOOL_H__
 
-#ifdef HAVE_XSHM
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#endif /* HAVE_XSHM */
+#include <gst/gst.h>
 
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-#ifdef HAVE_XSHM
-#include <X11/extensions/XShm.h>
-#endif /* HAVE_XSHM */
-
-#include <string.h>
-#include <math.h>
-
+#include "xvimageallocator.h"
 
 G_BEGIN_DECLS
 
-typedef struct _GstXvImageMeta GstXvImageMeta;
-
 typedef struct _GstXvImageBufferPool GstXvImageBufferPool;
 typedef struct _GstXvImageBufferPoolClass GstXvImageBufferPoolClass;
 typedef struct _GstXvImageBufferPoolPrivate GstXvImageBufferPoolPrivate;
 
-#include "xvimagesink.h"
-
-GType gst_xvimage_meta_api_get_type (void);
-#define GST_XVIMAGE_META_API_TYPE  (gst_xvimage_meta_api_get_type())
-const GstMetaInfo * gst_xvimage_meta_get_info (void);
-#define GST_XVIMAGE_META_INFO  (gst_xvimage_meta_get_info())
-
-#define gst_buffer_get_xvimage_meta(b) ((GstXvImageMeta*)gst_buffer_get_meta((b),GST_XVIMAGE_META_API_TYPE))
-
-/**
- * GstXvImageMeta:
- * @sink: a reference to the our #GstXvImageSink
- * @xvimage: the XvImage of this buffer
- * @width: the width in pixels of XvImage @xvimage
- * @height: the height in pixels of XvImage @xvimage
- * @im_format: the format of XvImage @xvimage
- * @size: the size in bytes of XvImage @xvimage
- *
- * Subclass of #GstMeta containing additional information about an XvImage.
- */
-struct _GstXvImageMeta
-{
-  GstMeta meta;
-
-  /* Reference to the xvimagesink we belong to */
-  GstXvImageSink *sink;
-
-  XvImage *xvimage;
-
-#ifdef HAVE_XSHM
-  XShmSegmentInfo SHMInfo;
-#endif                          /* HAVE_XSHM */
-
-  gint x, y;
-  gint width, height;
-  gint im_format;
-  size_t size;
-};
-
 /* buffer pool functions */
 #define GST_TYPE_XVIMAGE_BUFFER_POOL      (gst_xvimage_buffer_pool_get_type())
 #define GST_IS_XVIMAGE_BUFFER_POOL(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XVIMAGE_BUFFER_POOL))
@@ -94,8 +40,6 @@
 {
   GstBufferPool bufferpool;
 
-  GstXvImageSink *sink;
-
   GstXvImageBufferPoolPrivate *priv;
 };
 
@@ -106,13 +50,7 @@
 
 GType gst_xvimage_buffer_pool_get_type (void);
 
-GstBufferPool *gst_xvimage_buffer_pool_new (GstXvImageSink * xvimagesink);
-
-gboolean gst_xvimagesink_check_xshm_calls (GstXvImageSink * xvimagesink,
-      GstXContext * xcontext);
-
-gint gst_xvimagesink_get_format_from_info (GstXvImageSink * xvimagesink,
-    GstVideoInfo * info);
+GstBufferPool *    gst_xvimage_buffer_pool_new     (GstXvImageAllocator *allocator);
 
 G_END_DECLS
 
diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c
index e35d618..de1c1f9 100644
--- a/sys/xvimage/xvimagesink.c
+++ b/sys/xvimage/xvimagesink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -123,6 +123,7 @@
 
 /* Object header */
 #include "xvimagesink.h"
+#include "xvimageallocator.h"
 
 /* Debugging category */
 #include <gst/gstinfo.h>
@@ -146,7 +147,8 @@
 
 #define MWM_HINTS_DECORATIONS   (1L << 1)
 
-static void gst_xvimagesink_reset (GstXvImageSink * xvimagesink);
+static gboolean gst_xvimagesink_open (GstXvImageSink * xvimagesink);
+static void gst_xvimagesink_close (GstXvImageSink * xvimagesink);
 static void gst_xvimagesink_xwindow_update_geometry (GstXvImageSink *
     xvimagesink);
 static void gst_xvimagesink_expose (GstVideoOverlay * overlay);
@@ -218,66 +220,24 @@
 /* ============================================================= */
 
 
-/* We are called with the x_lock taken */
-static void
-gst_xvimagesink_xwindow_draw_borders (GstXvImageSink * xvimagesink,
-    GstXWindow * xwindow, GstVideoRectangle rect)
-{
-  gint t1, t2;
-
-  g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
-  g_return_if_fail (xwindow != NULL);
-
-  XSetForeground (xvimagesink->xcontext->disp, xwindow->gc,
-      xvimagesink->xcontext->black);
-
-  /* Left border */
-  if (rect.x > xvimagesink->render_rect.x) {
-    XFillRectangle (xvimagesink->xcontext->disp, xwindow->win, xwindow->gc,
-        xvimagesink->render_rect.x, xvimagesink->render_rect.y,
-        rect.x - xvimagesink->render_rect.x, xvimagesink->render_rect.h);
-  }
-
-  /* Right border */
-  t1 = rect.x + rect.w;
-  t2 = xvimagesink->render_rect.x + xvimagesink->render_rect.w;
-  if (t1 < t2) {
-    XFillRectangle (xvimagesink->xcontext->disp, xwindow->win, xwindow->gc,
-        t1, xvimagesink->render_rect.y, t2 - t1, xvimagesink->render_rect.h);
-  }
-
-  /* Top border */
-  if (rect.y > xvimagesink->render_rect.y) {
-    XFillRectangle (xvimagesink->xcontext->disp, xwindow->win, xwindow->gc,
-        xvimagesink->render_rect.x, xvimagesink->render_rect.y,
-        xvimagesink->render_rect.w, rect.y - xvimagesink->render_rect.y);
-  }
-
-  /* Bottom border */
-  t1 = rect.y + rect.h;
-  t2 = xvimagesink->render_rect.y + xvimagesink->render_rect.h;
-  if (t1 < t2) {
-    XFillRectangle (xvimagesink->xcontext->disp, xwindow->win, xwindow->gc,
-        xvimagesink->render_rect.x, t1, xvimagesink->render_rect.w, t2 - t1);
-  }
-}
-
 /* This function puts a GstXvImage on a GstXvImageSink's window. Returns FALSE
  * if no window was available  */
 static gboolean
 gst_xvimagesink_xvimage_put (GstXvImageSink * xvimagesink, GstBuffer * xvimage)
 {
-  GstXvImageMeta *meta;
+  GstXvImageMemory *mem;
   GstVideoCropMeta *crop;
   GstVideoRectangle result;
   gboolean draw_border = FALSE;
   GstVideoRectangle src, dst;
+  GstVideoRectangle mem_crop;
+  GstXWindow *xwindow;
 
   /* We take the flow_lock. If expose is in there we don't want to run
      concurrently from the data flow thread */
   g_mutex_lock (&xvimagesink->flow_lock);
 
-  if (G_UNLIKELY (xvimagesink->xwindow == NULL)) {
+  if (G_UNLIKELY ((xwindow = xvimagesink->xwindow) == NULL)) {
     g_mutex_unlock (&xvimagesink->flow_lock);
     return FALSE;
   }
@@ -285,7 +245,8 @@
   /* Draw borders when displaying the first frame. After this
      draw borders only on expose event or after a size change. */
   if (!xvimagesink->cur_image || xvimagesink->redraw_border) {
-    draw_border = TRUE;
+    draw_border = xvimagesink->draw_borders;
+    xvimagesink->redraw_border = FALSE;
   }
 
   /* Store a reference to the last image we put, lose the previous one */
@@ -309,22 +270,20 @@
     }
   }
 
-  meta = gst_buffer_get_xvimage_meta (xvimage);
+  mem = (GstXvImageMemory *) gst_buffer_peek_memory (xvimage, 0);
+  gst_xvimage_memory_get_crop (mem, &mem_crop);
 
   crop = gst_buffer_get_video_crop_meta (xvimage);
 
   if (crop) {
-    src.x = crop->x + meta->x;
-    src.y = crop->y + meta->y;
+    src.x = crop->x + mem_crop.x;
+    src.y = crop->y + mem_crop.y;
     src.w = crop->width;
     src.h = crop->height;
     GST_LOG_OBJECT (xvimagesink,
         "crop %dx%d-%dx%d", crop->x, crop->y, crop->width, crop->height);
   } else {
-    src.x = meta->x;
-    src.y = meta->y;
-    src.w = meta->width;
-    src.h = meta->height;
+    src = mem_crop;
   }
 
   if (xvimagesink->keep_aspect) {
@@ -335,92 +294,23 @@
      * which case the image will be scaled to fit the negotiated size. */
     s.w = GST_VIDEO_SINK_WIDTH (xvimagesink);
     s.h = GST_VIDEO_SINK_HEIGHT (xvimagesink);
-    dst.w = xvimagesink->render_rect.w;
-    dst.h = xvimagesink->render_rect.h;
+    dst.w = xwindow->render_rect.w;
+    dst.h = xwindow->render_rect.h;
 
     gst_video_sink_center_rect (s, dst, &result, TRUE);
-    result.x += xvimagesink->render_rect.x;
-    result.y += xvimagesink->render_rect.y;
+    result.x += xwindow->render_rect.x;
+    result.y += xwindow->render_rect.y;
   } else {
-    memcpy (&result, &xvimagesink->render_rect, sizeof (GstVideoRectangle));
+    memcpy (&result, &xwindow->render_rect, sizeof (GstVideoRectangle));
   }
 
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  if (draw_border && xvimagesink->draw_borders) {
-    gst_xvimagesink_xwindow_draw_borders (xvimagesink, xvimagesink->xwindow,
-        result);
-    xvimagesink->redraw_border = FALSE;
-  }
-#ifdef HAVE_XSHM
-  if (xvimagesink->xcontext->use_xshm) {
-    GST_LOG_OBJECT (xvimagesink,
-        "XvShmPutImage with image %dx%d and window %dx%d, from xvimage %"
-        GST_PTR_FORMAT, meta->width, meta->height,
-        xvimagesink->render_rect.w, xvimagesink->render_rect.h, xvimage);
-
-    XvShmPutImage (xvimagesink->xcontext->disp,
-        xvimagesink->xcontext->xv_port_id,
-        xvimagesink->xwindow->win,
-        xvimagesink->xwindow->gc, meta->xvimage,
-        src.x, src.y, src.w, src.h,
-        result.x, result.y, result.w, result.h, FALSE);
-  } else
-#endif /* HAVE_XSHM */
-  {
-    XvPutImage (xvimagesink->xcontext->disp,
-        xvimagesink->xcontext->xv_port_id,
-        xvimagesink->xwindow->win,
-        xvimagesink->xwindow->gc, meta->xvimage,
-        src.x, src.y, src.w, src.h, result.x, result.y, result.w, result.h);
-  }
-
-  XSync (xvimagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
+  gst_xvimage_memory_render (mem, &src, xwindow, &result, draw_border);
 
   g_mutex_unlock (&xvimagesink->flow_lock);
 
   return TRUE;
 }
 
-static gboolean
-gst_xvimagesink_xwindow_decorate (GstXvImageSink * xvimagesink,
-    GstXWindow * window)
-{
-  Atom hints_atom = None;
-  MotifWmHints *hints;
-
-  g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), FALSE);
-  g_return_val_if_fail (window != NULL, FALSE);
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  hints_atom = XInternAtom (xvimagesink->xcontext->disp, "_MOTIF_WM_HINTS",
-      True);
-  if (hints_atom == None) {
-    g_mutex_unlock (&xvimagesink->x_lock);
-    return FALSE;
-  }
-
-  hints = g_malloc0 (sizeof (MotifWmHints));
-
-  hints->flags |= MWM_HINTS_DECORATIONS;
-  hints->decorations = 1 << 0;
-
-  XChangeProperty (xvimagesink->xcontext->disp, window->win,
-      hints_atom, hints_atom, 32, PropModeReplace,
-      (guchar *) hints, sizeof (MotifWmHints) / sizeof (long));
-
-  XSync (xvimagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-  g_free (hints);
-
-  return TRUE;
-}
-
 static void
 gst_xvimagesink_xwindow_set_title (GstXvImageSink * xvimagesink,
     GstXWindow * xwindow, const gchar * media_title)
@@ -431,34 +321,24 @@
   }
   if (xwindow) {
     /* we have a window */
-    if (xwindow->internal) {
-      XTextProperty xproperty;
-      const gchar *app_name;
-      const gchar *title = NULL;
-      gchar *title_mem = NULL;
+    const gchar *app_name;
+    const gchar *title = NULL;
+    gchar *title_mem = NULL;
 
-      /* set application name as a title */
-      app_name = g_get_application_name ();
+    /* set application name as a title */
+    app_name = g_get_application_name ();
 
-      if (app_name && xvimagesink->media_title) {
-        title = title_mem = g_strconcat (xvimagesink->media_title, " : ",
-            app_name, NULL);
-      } else if (app_name) {
-        title = app_name;
-      } else if (xvimagesink->media_title) {
-        title = xvimagesink->media_title;
-      }
-
-      if (title) {
-        if ((XStringListToTextProperty (((char **) &title), 1,
-                    &xproperty)) != 0) {
-          XSetWMName (xvimagesink->xcontext->disp, xwindow->win, &xproperty);
-          XFree (xproperty.value);
-        }
-
-        g_free (title_mem);
-      }
+    if (app_name && xvimagesink->media_title) {
+      title = title_mem = g_strconcat (xvimagesink->media_title, " : ",
+          app_name, NULL);
+    } else if (app_name) {
+      title = app_name;
+    } else if (xvimagesink->media_title) {
+      title = xvimagesink->media_title;
     }
+
+    gst_xwindow_set_title (xwindow, title);
+    g_free (title_mem);
   }
 }
 
@@ -469,60 +349,18 @@
     gint width, gint height)
 {
   GstXWindow *xwindow = NULL;
-  XGCValues values;
+  GstXvContext *context;
 
   g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), NULL);
 
-  xwindow = g_new0 (GstXWindow, 1);
+  context = xvimagesink->context;
 
-  xvimagesink->render_rect.x = xvimagesink->render_rect.y = 0;
-  xvimagesink->render_rect.w = width;
-  xvimagesink->render_rect.h = height;
-
-  xwindow->width = width;
-  xwindow->height = height;
-  xwindow->internal = TRUE;
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  xwindow->win = XCreateSimpleWindow (xvimagesink->xcontext->disp,
-      xvimagesink->xcontext->root,
-      0, 0, width, height, 0, 0, xvimagesink->xcontext->black);
-
-  /* We have to do that to prevent X from redrawing the background on
-   * ConfigureNotify. This takes away flickering of video when resizing. */
-  XSetWindowBackgroundPixmap (xvimagesink->xcontext->disp, xwindow->win, None);
+  xwindow = gst_xvcontext_create_xwindow (context, width, height);
 
   /* set application name as a title */
   gst_xvimagesink_xwindow_set_title (xvimagesink, xwindow, NULL);
 
-  if (xvimagesink->handle_events) {
-    Atom wm_delete;
-
-    XSelectInput (xvimagesink->xcontext->disp, xwindow->win, ExposureMask |
-        StructureNotifyMask | PointerMotionMask | KeyPressMask |
-        KeyReleaseMask | ButtonPressMask | ButtonReleaseMask);
-
-    /* Tell the window manager we'd like delete client messages instead of
-     * being killed */
-    wm_delete = XInternAtom (xvimagesink->xcontext->disp,
-        "WM_DELETE_WINDOW", True);
-    if (wm_delete != None) {
-      (void) XSetWMProtocols (xvimagesink->xcontext->disp, xwindow->win,
-          &wm_delete, 1);
-    }
-  }
-
-  xwindow->gc = XCreateGC (xvimagesink->xcontext->disp,
-      xwindow->win, 0, &values);
-
-  XMapRaised (xvimagesink->xcontext->disp, xwindow->win);
-
-  XSync (xvimagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-  gst_xvimagesink_xwindow_decorate (xvimagesink, xwindow);
+  gst_xwindow_set_event_handling (xwindow, xvimagesink->handle_events);
 
   gst_video_overlay_got_window_handle (GST_VIDEO_OVERLAY (xvimagesink),
       xwindow->win);
@@ -530,144 +368,32 @@
   return xwindow;
 }
 
-/* This function destroys a GstXWindow */
-static void
-gst_xvimagesink_xwindow_destroy (GstXvImageSink * xvimagesink,
-    GstXWindow * xwindow)
-{
-  g_return_if_fail (xwindow != NULL);
-  g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  /* If we did not create that window we just free the GC and let it live */
-  if (xwindow->internal)
-    XDestroyWindow (xvimagesink->xcontext->disp, xwindow->win);
-  else
-    XSelectInput (xvimagesink->xcontext->disp, xwindow->win, 0);
-
-  XFreeGC (xvimagesink->xcontext->disp, xwindow->gc);
-
-  XSync (xvimagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-  g_free (xwindow);
-}
-
 static void
 gst_xvimagesink_xwindow_update_geometry (GstXvImageSink * xvimagesink)
 {
-  XWindowAttributes attr;
-
   g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
 
   /* Update the window geometry */
-  g_mutex_lock (&xvimagesink->x_lock);
-  if (G_UNLIKELY (xvimagesink->xwindow == NULL)) {
-    g_mutex_unlock (&xvimagesink->x_lock);
-    return;
-  }
-
-  XGetWindowAttributes (xvimagesink->xcontext->disp,
-      xvimagesink->xwindow->win, &attr);
-
-  xvimagesink->xwindow->width = attr.width;
-  xvimagesink->xwindow->height = attr.height;
-
-  if (!xvimagesink->have_render_rect) {
-    xvimagesink->render_rect.x = xvimagesink->render_rect.y = 0;
-    xvimagesink->render_rect.w = attr.width;
-    xvimagesink->render_rect.h = attr.height;
-  }
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-}
-
-static void
-gst_xvimagesink_xwindow_clear (GstXvImageSink * xvimagesink,
-    GstXWindow * xwindow)
-{
-  g_return_if_fail (xwindow != NULL);
-  g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  XvStopVideo (xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id,
-      xwindow->win);
-
-  XSync (xvimagesink->xcontext->disp, FALSE);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
+  g_mutex_lock (&xvimagesink->flow_lock);
+  if (G_LIKELY (xvimagesink->xwindow))
+    gst_xwindow_update_geometry (xvimagesink->xwindow);
+  g_mutex_unlock (&xvimagesink->flow_lock);
 }
 
 /* This function commits our internal colorbalance settings to our grabbed Xv
-   port. If the xcontext is not initialized yet it simply returns */
+   port. If the context is not initialized yet it simply returns */
 static void
 gst_xvimagesink_update_colorbalance (GstXvImageSink * xvimagesink)
 {
-  GList *channels = NULL;
+  GstXvContext *context;
 
   g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
 
   /* If we haven't initialized the X context we can't update anything */
-  if (xvimagesink->xcontext == NULL)
+  if ((context = xvimagesink->context) == NULL)
     return;
 
-  /* Don't set the attributes if they haven't been changed, to avoid
-   * rounding errors changing the values */
-  if (!xvimagesink->cb_changed)
-    return;
-
-  /* For each channel of the colorbalance we calculate the correct value
-     doing range conversion and then set the Xv port attribute to match our
-     values. */
-  channels = xvimagesink->xcontext->channels_list;
-
-  while (channels) {
-    if (channels->data && GST_IS_COLOR_BALANCE_CHANNEL (channels->data)) {
-      GstColorBalanceChannel *channel = NULL;
-      Atom prop_atom;
-      gint value = 0;
-      gdouble convert_coef;
-
-      channel = GST_COLOR_BALANCE_CHANNEL (channels->data);
-      g_object_ref (channel);
-
-      /* Our range conversion coef */
-      convert_coef = (channel->max_value - channel->min_value) / 2000.0;
-
-      if (g_ascii_strcasecmp (channel->label, "XV_HUE") == 0) {
-        value = xvimagesink->hue;
-      } else if (g_ascii_strcasecmp (channel->label, "XV_SATURATION") == 0) {
-        value = xvimagesink->saturation;
-      } else if (g_ascii_strcasecmp (channel->label, "XV_CONTRAST") == 0) {
-        value = xvimagesink->contrast;
-      } else if (g_ascii_strcasecmp (channel->label, "XV_BRIGHTNESS") == 0) {
-        value = xvimagesink->brightness;
-      } else {
-        g_warning ("got an unknown channel %s", channel->label);
-        g_object_unref (channel);
-        return;
-      }
-
-      /* Committing to Xv port */
-      g_mutex_lock (&xvimagesink->x_lock);
-      prop_atom =
-          XInternAtom (xvimagesink->xcontext->disp, channel->label, True);
-      if (prop_atom != None) {
-        int xv_value;
-        xv_value =
-            floor (0.5 + (value + 1000) * convert_coef + channel->min_value);
-        XvSetPortAttribute (xvimagesink->xcontext->disp,
-            xvimagesink->xcontext->xv_port_id, prop_atom, xv_value);
-      }
-      g_mutex_unlock (&xvimagesink->x_lock);
-
-      g_object_unref (channel);
-    }
-    channels = g_list_next (channels);
-  }
+  gst_xvcontext_update_colorbalance (context, &xvimagesink->config);
 }
 
 /* This function handles XEvents that might be in the queue. It generates
@@ -689,10 +415,10 @@
   /* We get all pointer motion events, only the last position is
      interesting. */
   g_mutex_lock (&xvimagesink->flow_lock);
-  g_mutex_lock (&xvimagesink->x_lock);
-  while (XCheckWindowEvent (xvimagesink->xcontext->disp,
+  g_mutex_lock (&xvimagesink->context->lock);
+  while (XCheckWindowEvent (xvimagesink->context->disp,
           xvimagesink->xwindow->win, PointerMotionMask, &e)) {
-    g_mutex_unlock (&xvimagesink->x_lock);
+    g_mutex_unlock (&xvimagesink->context->lock);
     g_mutex_unlock (&xvimagesink->flow_lock);
 
     switch (e.type) {
@@ -705,11 +431,11 @@
         break;
     }
     g_mutex_lock (&xvimagesink->flow_lock);
-    g_mutex_lock (&xvimagesink->x_lock);
+    g_mutex_lock (&xvimagesink->context->lock);
   }
 
   if (pointer_moved) {
-    g_mutex_unlock (&xvimagesink->x_lock);
+    g_mutex_unlock (&xvimagesink->context->lock);
     g_mutex_unlock (&xvimagesink->flow_lock);
 
     GST_DEBUG ("xvimagesink pointer moved over window at %d,%d",
@@ -718,11 +444,11 @@
         "mouse-move", 0, e.xbutton.x, e.xbutton.y);
 
     g_mutex_lock (&xvimagesink->flow_lock);
-    g_mutex_lock (&xvimagesink->x_lock);
+    g_mutex_lock (&xvimagesink->context->lock);
   }
 
   /* We get all events on our window to throw them upstream */
-  while (XCheckWindowEvent (xvimagesink->xcontext->disp,
+  while (XCheckWindowEvent (xvimagesink->context->disp,
           xvimagesink->xwindow->win,
           KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask,
           &e)) {
@@ -730,7 +456,7 @@
     const char *key_str = NULL;
 
     /* We lock only for the X function call */
-    g_mutex_unlock (&xvimagesink->x_lock);
+    g_mutex_unlock (&xvimagesink->context->lock);
     g_mutex_unlock (&xvimagesink->flow_lock);
 
     switch (e.type) {
@@ -754,15 +480,15 @@
       case KeyRelease:
         /* Key pressed/released over our window. We send upstream
            events for interactivity/navigation */
-        g_mutex_lock (&xvimagesink->x_lock);
-        keysym = XkbKeycodeToKeysym (xvimagesink->xcontext->disp,
+        g_mutex_lock (&xvimagesink->context->lock);
+        keysym = XkbKeycodeToKeysym (xvimagesink->context->disp,
             e.xkey.keycode, 0, 0);
         if (keysym != NoSymbol) {
           key_str = XKeysymToString (keysym);
         } else {
           key_str = "unknown";
         }
-        g_mutex_unlock (&xvimagesink->x_lock);
+        g_mutex_unlock (&xvimagesink->context->lock);
         GST_DEBUG_OBJECT (xvimagesink,
             "key %d pressed over window at %d,%d (%s)",
             e.xkey.keycode, e.xkey.x, e.xkey.y, key_str);
@@ -774,20 +500,24 @@
             e.type);
     }
     g_mutex_lock (&xvimagesink->flow_lock);
-    g_mutex_lock (&xvimagesink->x_lock);
+    g_mutex_lock (&xvimagesink->context->lock);
   }
 
   /* Handle Expose */
-  while (XCheckWindowEvent (xvimagesink->xcontext->disp,
+  while (XCheckWindowEvent (xvimagesink->context->disp,
           xvimagesink->xwindow->win, ExposureMask | StructureNotifyMask, &e)) {
     switch (e.type) {
       case Expose:
         exposed = TRUE;
         break;
       case ConfigureNotify:
-        g_mutex_unlock (&xvimagesink->x_lock);
+        g_mutex_unlock (&xvimagesink->context->lock);
+        g_mutex_unlock (&xvimagesink->flow_lock);
+
         gst_xvimagesink_xwindow_update_geometry (xvimagesink);
-        g_mutex_lock (&xvimagesink->x_lock);
+
+        g_mutex_lock (&xvimagesink->flow_lock);
+        g_mutex_lock (&xvimagesink->context->lock);
         configured = TRUE;
         break;
       default:
@@ -796,34 +526,34 @@
   }
 
   if (xvimagesink->handle_expose && (exposed || configured)) {
-    g_mutex_unlock (&xvimagesink->x_lock);
+    g_mutex_unlock (&xvimagesink->context->lock);
     g_mutex_unlock (&xvimagesink->flow_lock);
 
     gst_xvimagesink_expose (GST_VIDEO_OVERLAY (xvimagesink));
 
     g_mutex_lock (&xvimagesink->flow_lock);
-    g_mutex_lock (&xvimagesink->x_lock);
+    g_mutex_lock (&xvimagesink->context->lock);
   }
 
   /* Handle Display events */
-  while (XPending (xvimagesink->xcontext->disp)) {
-    XNextEvent (xvimagesink->xcontext->disp, &e);
+  while (XPending (xvimagesink->context->disp)) {
+    XNextEvent (xvimagesink->context->disp, &e);
 
     switch (e.type) {
       case ClientMessage:{
         Atom wm_delete;
 
-        wm_delete = XInternAtom (xvimagesink->xcontext->disp,
+        wm_delete = XInternAtom (xvimagesink->context->disp,
             "WM_DELETE_WINDOW", True);
         if (wm_delete != None && wm_delete == (Atom) e.xclient.data.l[0]) {
           /* Handle window deletion by posting an error on the bus */
           GST_ELEMENT_ERROR (xvimagesink, RESOURCE, NOT_FOUND,
               ("Output window was closed"), (NULL));
 
-          g_mutex_unlock (&xvimagesink->x_lock);
-          gst_xvimagesink_xwindow_destroy (xvimagesink, xvimagesink->xwindow);
+          g_mutex_unlock (&xvimagesink->context->lock);
+          gst_xwindow_destroy (xvimagesink->xwindow);
           xvimagesink->xwindow = NULL;
-          g_mutex_lock (&xvimagesink->x_lock);
+          g_mutex_lock (&xvimagesink->context->lock);
         }
         break;
       }
@@ -832,314 +562,10 @@
     }
   }
 
-  g_mutex_unlock (&xvimagesink->x_lock);
+  g_mutex_unlock (&xvimagesink->context->lock);
   g_mutex_unlock (&xvimagesink->flow_lock);
 }
 
-static void
-gst_lookup_xv_port_from_adaptor (GstXContext * xcontext,
-    XvAdaptorInfo * adaptors, int adaptor_no)
-{
-  gint j;
-  gint res;
-
-  /* Do we support XvImageMask ? */
-  if (!(adaptors[adaptor_no].type & XvImageMask)) {
-    GST_DEBUG ("XV Adaptor %s has no support for XvImageMask",
-        adaptors[adaptor_no].name);
-    return;
-  }
-
-  /* We found such an adaptor, looking for an available port */
-  for (j = 0; j < adaptors[adaptor_no].num_ports && !xcontext->xv_port_id; j++) {
-    /* We try to grab the port */
-    res = XvGrabPort (xcontext->disp, adaptors[adaptor_no].base_id + j, 0);
-    if (Success == res) {
-      xcontext->xv_port_id = adaptors[adaptor_no].base_id + j;
-      GST_DEBUG ("XV Adaptor %s with %ld ports", adaptors[adaptor_no].name,
-          adaptors[adaptor_no].num_ports);
-    } else {
-      GST_DEBUG ("GrabPort %d for XV Adaptor %s failed: %d", j,
-          adaptors[adaptor_no].name, res);
-    }
-  }
-}
-
-/* This function generates a caps with all supported format by the first
-   Xv grabable port we find. We store each one of the supported formats in a
-   format list and append the format to a newly created caps that we return
-   If this function does not return NULL because of an error, it also grabs
-   the port via XvGrabPort */
-static GstCaps *
-gst_xvimagesink_get_xv_support (GstXvImageSink * xvimagesink,
-    GstXContext * xcontext)
-{
-  gint i;
-  XvAdaptorInfo *adaptors;
-  gint nb_formats;
-  XvImageFormatValues *formats = NULL;
-  guint nb_encodings;
-  XvEncodingInfo *encodings = NULL;
-  gulong max_w = G_MAXINT, max_h = G_MAXINT;
-  GstCaps *caps = NULL;
-  GstCaps *rgb_caps = NULL;
-
-  g_return_val_if_fail (xcontext != NULL, NULL);
-
-  /* First let's check that XVideo extension is available */
-  if (!XQueryExtension (xcontext->disp, "XVideo", &i, &i, &i)) {
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, SETTINGS,
-        ("Could not initialise Xv output"),
-        ("XVideo extension is not available"));
-    return NULL;
-  }
-
-  /* Then we get adaptors list */
-  if (Success != XvQueryAdaptors (xcontext->disp, xcontext->root,
-          &xcontext->nb_adaptors, &adaptors)) {
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, SETTINGS,
-        ("Could not initialise Xv output"),
-        ("Failed getting XV adaptors list"));
-    return NULL;
-  }
-
-  xcontext->xv_port_id = 0;
-
-  GST_DEBUG ("Found %u XV adaptor(s)", xcontext->nb_adaptors);
-
-  xcontext->adaptors =
-      (gchar **) g_malloc0 (xcontext->nb_adaptors * sizeof (gchar *));
-
-  /* Now fill up our adaptor name array */
-  for (i = 0; i < xcontext->nb_adaptors; i++) {
-    xcontext->adaptors[i] = g_strdup (adaptors[i].name);
-  }
-
-  if (xvimagesink->adaptor_no != -1 &&
-      xvimagesink->adaptor_no < xcontext->nb_adaptors) {
-    /* Find xv port from user defined adaptor */
-    gst_lookup_xv_port_from_adaptor (xcontext, adaptors,
-        xvimagesink->adaptor_no);
-  }
-
-  if (!xcontext->xv_port_id) {
-    /* Now search for an adaptor that supports XvImageMask */
-    for (i = 0; i < xcontext->nb_adaptors && !xcontext->xv_port_id; i++) {
-      gst_lookup_xv_port_from_adaptor (xcontext, adaptors, i);
-      xvimagesink->adaptor_no = i;
-    }
-  }
-
-  XvFreeAdaptorInfo (adaptors);
-
-  if (!xcontext->xv_port_id) {
-    xvimagesink->adaptor_no = -1;
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, BUSY,
-        ("Could not initialise Xv output"), ("No port available"));
-    return NULL;
-  }
-
-  /* Set XV_AUTOPAINT_COLORKEY and XV_DOUBLE_BUFFER and XV_COLORKEY */
-  {
-    int count, todo = 3;
-    XvAttribute *const attr = XvQueryPortAttributes (xcontext->disp,
-        xcontext->xv_port_id, &count);
-    static const char autopaint[] = "XV_AUTOPAINT_COLORKEY";
-    static const char dbl_buffer[] = "XV_DOUBLE_BUFFER";
-    static const char colorkey[] = "XV_COLORKEY";
-
-    GST_DEBUG_OBJECT (xvimagesink, "Checking %d Xv port attributes", count);
-
-    xvimagesink->have_autopaint_colorkey = FALSE;
-    xvimagesink->have_double_buffer = FALSE;
-    xvimagesink->have_colorkey = FALSE;
-
-    for (i = 0; ((i < count) && todo); i++)
-      if (!strcmp (attr[i].name, autopaint)) {
-        const Atom atom = XInternAtom (xcontext->disp, autopaint, False);
-
-        /* turn on autopaint colorkey */
-        XvSetPortAttribute (xcontext->disp, xcontext->xv_port_id, atom,
-            (xvimagesink->autopaint_colorkey ? 1 : 0));
-        todo--;
-        xvimagesink->have_autopaint_colorkey = TRUE;
-      } else if (!strcmp (attr[i].name, dbl_buffer)) {
-        const Atom atom = XInternAtom (xcontext->disp, dbl_buffer, False);
-
-        XvSetPortAttribute (xcontext->disp, xcontext->xv_port_id, atom,
-            (xvimagesink->double_buffer ? 1 : 0));
-        todo--;
-        xvimagesink->have_double_buffer = TRUE;
-      } else if (!strcmp (attr[i].name, colorkey)) {
-        /* Set the colorkey, default is something that is dark but hopefully
-         * won't randomly appear on the screen elsewhere (ie not black or greys)
-         * can be overridden by setting "colorkey" property
-         */
-        const Atom atom = XInternAtom (xcontext->disp, colorkey, False);
-        guint32 ckey = 0;
-        gboolean set_attr = TRUE;
-        guint cr, cg, cb;
-
-        /* set a colorkey in the right format RGB565/RGB888
-         * We only handle these 2 cases, because they're the only types of
-         * devices we've encountered. If we don't recognise it, leave it alone
-         */
-        cr = (xvimagesink->colorkey >> 16);
-        cg = (xvimagesink->colorkey >> 8) & 0xFF;
-        cb = (xvimagesink->colorkey) & 0xFF;
-        switch (xcontext->depth) {
-          case 16:             /* RGB 565 */
-            cr >>= 3;
-            cg >>= 2;
-            cb >>= 3;
-            ckey = (cr << 11) | (cg << 5) | cb;
-            break;
-          case 24:
-          case 32:             /* RGB 888 / ARGB 8888 */
-            ckey = (cr << 16) | (cg << 8) | cb;
-            break;
-          default:
-            GST_DEBUG_OBJECT (xvimagesink,
-                "Unknown bit depth %d for Xv Colorkey - not adjusting",
-                xcontext->depth);
-            set_attr = FALSE;
-            break;
-        }
-
-        if (set_attr) {
-          ckey = CLAMP (ckey, (guint32) attr[i].min_value,
-              (guint32) attr[i].max_value);
-          GST_LOG_OBJECT (xvimagesink,
-              "Setting color key for display depth %d to 0x%x",
-              xcontext->depth, ckey);
-
-          XvSetPortAttribute (xcontext->disp, xcontext->xv_port_id, atom,
-              (gint) ckey);
-        }
-        todo--;
-        xvimagesink->have_colorkey = TRUE;
-      }
-
-    XFree (attr);
-  }
-
-  /* Get the list of encodings supported by the adapter and look for the
-   * XV_IMAGE encoding so we can determine the maximum width and height
-   * supported */
-  XvQueryEncodings (xcontext->disp, xcontext->xv_port_id, &nb_encodings,
-      &encodings);
-
-  for (i = 0; i < nb_encodings; i++) {
-    GST_LOG_OBJECT (xvimagesink,
-        "Encoding %d, name %s, max wxh %lux%lu rate %d/%d",
-        i, encodings[i].name, encodings[i].width, encodings[i].height,
-        encodings[i].rate.numerator, encodings[i].rate.denominator);
-    if (strcmp (encodings[i].name, "XV_IMAGE") == 0) {
-      max_w = encodings[i].width;
-      max_h = encodings[i].height;
-    }
-  }
-
-  XvFreeEncodingInfo (encodings);
-
-  /* We get all image formats supported by our port */
-  formats = XvListImageFormats (xcontext->disp,
-      xcontext->xv_port_id, &nb_formats);
-  caps = gst_caps_new_empty ();
-  for (i = 0; i < nb_formats; i++) {
-    GstCaps *format_caps = NULL;
-    gboolean is_rgb_format = FALSE;
-    GstVideoFormat vformat;
-
-    /* We set the image format of the xcontext to an existing one. This
-       is just some valid image format for making our xshm calls check before
-       caps negotiation really happens. */
-    xcontext->im_format = formats[i].id;
-
-    switch (formats[i].type) {
-      case XvRGB:
-      {
-        XvImageFormatValues *fmt = &(formats[i]);
-        gint endianness;
-
-        endianness =
-            (fmt->byte_order == LSBFirst ? G_LITTLE_ENDIAN : G_BIG_ENDIAN);
-
-        vformat = gst_video_format_from_masks (fmt->depth, fmt->bits_per_pixel,
-            endianness, fmt->red_mask, fmt->green_mask, fmt->blue_mask, 0);
-        if (vformat == GST_VIDEO_FORMAT_UNKNOWN)
-          break;
-
-        format_caps = gst_caps_new_simple ("video/x-raw",
-            "format", G_TYPE_STRING, gst_video_format_to_string (vformat),
-            "width", GST_TYPE_INT_RANGE, 1, max_w,
-            "height", GST_TYPE_INT_RANGE, 1, max_h,
-            "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
-
-        is_rgb_format = TRUE;
-        break;
-      }
-      case XvYUV:
-      {
-        vformat = gst_video_format_from_fourcc (formats[i].id);
-        if (vformat == GST_VIDEO_FORMAT_UNKNOWN)
-          break;
-
-        format_caps = gst_caps_new_simple ("video/x-raw",
-            "format", G_TYPE_STRING, gst_video_format_to_string (vformat),
-            "width", GST_TYPE_INT_RANGE, 1, max_w,
-            "height", GST_TYPE_INT_RANGE, 1, max_h,
-            "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
-        break;
-      }
-      default:
-        vformat = GST_VIDEO_FORMAT_UNKNOWN;
-        g_assert_not_reached ();
-        break;
-    }
-
-    if (format_caps) {
-      GstXvImageFormat *format = NULL;
-
-      format = g_new0 (GstXvImageFormat, 1);
-      if (format) {
-        format->format = formats[i].id;
-        format->vformat = vformat;
-        format->caps = gst_caps_copy (format_caps);
-        xcontext->formats_list = g_list_append (xcontext->formats_list, format);
-      }
-
-      if (is_rgb_format) {
-        if (rgb_caps == NULL)
-          rgb_caps = format_caps;
-        else
-          gst_caps_append (rgb_caps, format_caps);
-      } else
-        gst_caps_append (caps, format_caps);
-    }
-  }
-
-  /* Collected all caps into either the caps or rgb_caps structures.
-   * Append rgb_caps on the end of YUV, so that YUV is always preferred */
-  if (rgb_caps)
-    gst_caps_append (caps, rgb_caps);
-
-  if (formats)
-    XFree (formats);
-
-  GST_DEBUG ("Generated the following caps: %" GST_PTR_FORMAT, caps);
-
-  if (gst_caps_is_empty (caps)) {
-    gst_caps_unref (caps);
-    XvUngrabPort (xcontext->disp, xcontext->xv_port_id, 0);
-    GST_ELEMENT_ERROR (xvimagesink, STREAM, WRONG_TYPE, (NULL),
-        ("No supported format found"));
-    return NULL;
-  }
-
-  return caps;
-}
-
 static gpointer
 gst_xvimagesink_event_thread (GstXvImageSink * xvimagesink)
 {
@@ -1168,7 +594,7 @@
   GThread *thread = NULL;
 
   /* don't start the thread too early */
-  if (xvimagesink->xcontext == NULL) {
+  if (xvimagesink->context == NULL) {
     return;
   }
 
@@ -1200,314 +626,6 @@
 
 }
 
-
-/* This function calculates the pixel aspect ratio based on the properties
- * in the xcontext structure and stores it there. */
-static void
-gst_xvimagesink_calculate_pixel_aspect_ratio (GstXContext * xcontext)
-{
-  static const gint par[][2] = {
-    {1, 1},                     /* regular screen */
-    {16, 15},                   /* PAL TV */
-    {11, 10},                   /* 525 line Rec.601 video */
-    {54, 59},                   /* 625 line Rec.601 video */
-    {64, 45},                   /* 1280x1024 on 16:9 display */
-    {5, 3},                     /* 1280x1024 on 4:3 display */
-    {4, 3}                      /*  800x600 on 16:9 display */
-  };
-  gint i;
-  gint index;
-  gdouble ratio;
-  gdouble delta;
-
-#define DELTA(idx) (ABS (ratio - ((gdouble) par[idx][0] / par[idx][1])))
-
-  /* first calculate the "real" ratio based on the X values;
-   * which is the "physical" w/h divided by the w/h in pixels of the display */
-  ratio = (gdouble) (xcontext->widthmm * xcontext->height)
-      / (xcontext->heightmm * xcontext->width);
-
-  /* DirectFB's X in 720x576 reports the physical dimensions wrong, so
-   * override here */
-  if (xcontext->width == 720 && xcontext->height == 576) {
-    ratio = 4.0 * 576 / (3.0 * 720);
-  }
-  GST_DEBUG ("calculated pixel aspect ratio: %f", ratio);
-
-  /* now find the one from par[][2] with the lowest delta to the real one */
-  delta = DELTA (0);
-  index = 0;
-
-  for (i = 1; i < sizeof (par) / (sizeof (gint) * 2); ++i) {
-    gdouble this_delta = DELTA (i);
-
-    if (this_delta < delta) {
-      index = i;
-      delta = this_delta;
-    }
-  }
-
-  GST_DEBUG ("Decided on index %d (%d/%d)", index,
-      par[index][0], par[index][1]);
-
-  g_free (xcontext->par);
-  xcontext->par = g_new0 (GValue, 1);
-  g_value_init (xcontext->par, GST_TYPE_FRACTION);
-  gst_value_set_fraction (xcontext->par, par[index][0], par[index][1]);
-  GST_DEBUG ("set xcontext PAR to %d/%d",
-      gst_value_get_fraction_numerator (xcontext->par),
-      gst_value_get_fraction_denominator (xcontext->par));
-}
-
-/* This function gets the X Display and global info about it. Everything is
-   stored in our object and will be cleaned when the object is disposed. Note
-   here that caps for supported format are generated without any window or
-   image creation */
-static GstXContext *
-gst_xvimagesink_xcontext_get (GstXvImageSink * xvimagesink)
-{
-  GstXContext *xcontext = NULL;
-  XPixmapFormatValues *px_formats = NULL;
-  gint nb_formats = 0, i, j, N_attr;
-  XvAttribute *xv_attr;
-  Atom prop_atom;
-  const char *channels[4] = { "XV_HUE", "XV_SATURATION",
-    "XV_BRIGHTNESS", "XV_CONTRAST"
-  };
-
-  g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), NULL);
-
-  xcontext = g_new0 (GstXContext, 1);
-  xcontext->im_format = 0;
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  xcontext->disp = XOpenDisplay (xvimagesink->display_name);
-
-  if (!xcontext->disp) {
-    g_mutex_unlock (&xvimagesink->x_lock);
-    g_free (xcontext);
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
-        ("Could not initialise Xv output"), ("Could not open display"));
-    return NULL;
-  }
-
-  xcontext->screen = DefaultScreenOfDisplay (xcontext->disp);
-  xcontext->screen_num = DefaultScreen (xcontext->disp);
-  xcontext->visual = DefaultVisual (xcontext->disp, xcontext->screen_num);
-  xcontext->root = DefaultRootWindow (xcontext->disp);
-  xcontext->white = XWhitePixel (xcontext->disp, xcontext->screen_num);
-  xcontext->black = XBlackPixel (xcontext->disp, xcontext->screen_num);
-  xcontext->depth = DefaultDepthOfScreen (xcontext->screen);
-
-  xcontext->width = DisplayWidth (xcontext->disp, xcontext->screen_num);
-  xcontext->height = DisplayHeight (xcontext->disp, xcontext->screen_num);
-  xcontext->widthmm = DisplayWidthMM (xcontext->disp, xcontext->screen_num);
-  xcontext->heightmm = DisplayHeightMM (xcontext->disp, xcontext->screen_num);
-
-  GST_DEBUG_OBJECT (xvimagesink, "X reports %dx%d pixels and %d mm x %d mm",
-      xcontext->width, xcontext->height, xcontext->widthmm, xcontext->heightmm);
-
-  gst_xvimagesink_calculate_pixel_aspect_ratio (xcontext);
-  /* We get supported pixmap formats at supported depth */
-  px_formats = XListPixmapFormats (xcontext->disp, &nb_formats);
-
-  if (!px_formats) {
-    XCloseDisplay (xcontext->disp);
-    g_mutex_unlock (&xvimagesink->x_lock);
-    g_free (xcontext->par);
-    g_free (xcontext);
-    GST_ELEMENT_ERROR (xvimagesink, RESOURCE, SETTINGS,
-        ("Could not initialise Xv output"), ("Could not get pixel formats"));
-    return NULL;
-  }
-
-  /* We get bpp value corresponding to our running depth */
-  for (i = 0; i < nb_formats; i++) {
-    if (px_formats[i].depth == xcontext->depth)
-      xcontext->bpp = px_formats[i].bits_per_pixel;
-  }
-
-  XFree (px_formats);
-
-  xcontext->endianness =
-      (ImageByteOrder (xcontext->disp) ==
-      LSBFirst) ? G_LITTLE_ENDIAN : G_BIG_ENDIAN;
-
-  /* our caps system handles 24/32bpp RGB as big-endian. */
-  if ((xcontext->bpp == 24 || xcontext->bpp == 32) &&
-      xcontext->endianness == G_LITTLE_ENDIAN) {
-    xcontext->endianness = G_BIG_ENDIAN;
-    xcontext->visual->red_mask = GUINT32_TO_BE (xcontext->visual->red_mask);
-    xcontext->visual->green_mask = GUINT32_TO_BE (xcontext->visual->green_mask);
-    xcontext->visual->blue_mask = GUINT32_TO_BE (xcontext->visual->blue_mask);
-    if (xcontext->bpp == 24) {
-      xcontext->visual->red_mask >>= 8;
-      xcontext->visual->green_mask >>= 8;
-      xcontext->visual->blue_mask >>= 8;
-    }
-  }
-
-  xcontext->caps = gst_xvimagesink_get_xv_support (xvimagesink, xcontext);
-
-  /* Search for XShm extension support */
-#ifdef HAVE_XSHM
-  if (XShmQueryExtension (xcontext->disp) &&
-      gst_xvimagesink_check_xshm_calls (xvimagesink, xcontext)) {
-    xcontext->use_xshm = TRUE;
-    GST_DEBUG ("xvimagesink is using XShm extension");
-  } else
-#endif /* HAVE_XSHM */
-  {
-    xcontext->use_xshm = FALSE;
-    GST_DEBUG ("xvimagesink is not using XShm extension");
-  }
-
-  if (!xcontext->caps) {
-    XCloseDisplay (xcontext->disp);
-    g_mutex_unlock (&xvimagesink->x_lock);
-    g_free (xcontext->par);
-    g_free (xcontext);
-    /* GST_ELEMENT_ERROR is thrown by gst_xvimagesink_get_xv_support */
-    return NULL;
-  }
-
-  xv_attr = XvQueryPortAttributes (xcontext->disp,
-      xcontext->xv_port_id, &N_attr);
-
-
-  /* Generate the channels list */
-  for (i = 0; i < (sizeof (channels) / sizeof (char *)); i++) {
-    XvAttribute *matching_attr = NULL;
-
-    /* Retrieve the property atom if it exists. If it doesn't exist,
-     * the attribute itself must not either, so we can skip */
-    prop_atom = XInternAtom (xcontext->disp, channels[i], True);
-    if (prop_atom == None)
-      continue;
-
-    if (xv_attr != NULL) {
-      for (j = 0; j < N_attr && matching_attr == NULL; ++j)
-        if (!g_ascii_strcasecmp (channels[i], xv_attr[j].name))
-          matching_attr = xv_attr + j;
-    }
-
-    if (matching_attr) {
-      GstColorBalanceChannel *channel;
-
-      channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL);
-      channel->label = g_strdup (channels[i]);
-      channel->min_value = matching_attr ? matching_attr->min_value : -1000;
-      channel->max_value = matching_attr ? matching_attr->max_value : 1000;
-
-      xcontext->channels_list = g_list_append (xcontext->channels_list,
-          channel);
-
-      /* If the colorbalance settings have not been touched we get Xv values
-         as defaults and update our internal variables */
-      if (!xvimagesink->cb_changed) {
-        gint val;
-
-        XvGetPortAttribute (xcontext->disp, xcontext->xv_port_id,
-            prop_atom, &val);
-        /* Normalize val to [-1000, 1000] */
-        val = floor (0.5 + -1000 + 2000 * (val - channel->min_value) /
-            (double) (channel->max_value - channel->min_value));
-
-        if (!g_ascii_strcasecmp (channels[i], "XV_HUE"))
-          xvimagesink->hue = val;
-        else if (!g_ascii_strcasecmp (channels[i], "XV_SATURATION"))
-          xvimagesink->saturation = val;
-        else if (!g_ascii_strcasecmp (channels[i], "XV_BRIGHTNESS"))
-          xvimagesink->brightness = val;
-        else if (!g_ascii_strcasecmp (channels[i], "XV_CONTRAST"))
-          xvimagesink->contrast = val;
-      }
-    }
-  }
-
-  if (xv_attr)
-    XFree (xv_attr);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-  return xcontext;
-}
-
-/* This function cleans the X context. Closing the Display, releasing the XV
-   port and unrefing the caps for supported formats. */
-static void
-gst_xvimagesink_xcontext_clear (GstXvImageSink * xvimagesink)
-{
-  GList *formats_list, *channels_list;
-  GstXContext *xcontext;
-  gint i = 0;
-
-  g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
-
-  GST_OBJECT_LOCK (xvimagesink);
-  if (xvimagesink->xcontext == NULL) {
-    GST_OBJECT_UNLOCK (xvimagesink);
-    return;
-  }
-
-  /* Take the XContext from the sink and clean it up */
-  xcontext = xvimagesink->xcontext;
-  xvimagesink->xcontext = NULL;
-
-  GST_OBJECT_UNLOCK (xvimagesink);
-
-
-  formats_list = xcontext->formats_list;
-
-  while (formats_list) {
-    GstXvImageFormat *format = formats_list->data;
-
-    gst_caps_unref (format->caps);
-    g_free (format);
-    formats_list = g_list_next (formats_list);
-  }
-
-  if (xcontext->formats_list)
-    g_list_free (xcontext->formats_list);
-
-  channels_list = xcontext->channels_list;
-
-  while (channels_list) {
-    GstColorBalanceChannel *channel = channels_list->data;
-
-    g_object_unref (channel);
-    channels_list = g_list_next (channels_list);
-  }
-
-  if (xcontext->channels_list)
-    g_list_free (xcontext->channels_list);
-
-  gst_caps_unref (xcontext->caps);
-  if (xcontext->last_caps)
-    gst_caps_replace (&xcontext->last_caps, NULL);
-
-  for (i = 0; i < xcontext->nb_adaptors; i++) {
-    g_free (xcontext->adaptors[i]);
-  }
-
-  g_free (xcontext->adaptors);
-
-  g_free (xcontext->par);
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  GST_DEBUG_OBJECT (xvimagesink, "Closing display and freeing X Context");
-
-  XvUngrabPort (xcontext->disp, xcontext->xv_port_id, 0);
-
-  XCloseDisplay (xcontext->disp);
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
-  g_free (xcontext);
-}
-
 /* Element stuff */
 
 static GstCaps *
@@ -1518,12 +636,12 @@
 
   xvimagesink = GST_XVIMAGESINK (bsink);
 
-  if (xvimagesink->xcontext) {
+  if (xvimagesink->context) {
     if (filter)
-      return gst_caps_intersect_full (filter, xvimagesink->xcontext->caps,
+      return gst_caps_intersect_full (filter, xvimagesink->context->caps,
           GST_CAPS_INTERSECT_FIRST);
     else
-      return gst_caps_ref (xvimagesink->xcontext->caps);
+      return gst_caps_ref (xvimagesink->context->caps);
   }
 
   caps = gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD (xvimagesink));
@@ -1542,6 +660,7 @@
 gst_xvimagesink_setcaps (GstBaseSink * bsink, GstCaps * caps)
 {
   GstXvImageSink *xvimagesink;
+  GstXvContext *context;
   GstStructure *structure;
   GstBufferPool *newpool, *oldpool;
   GstVideoInfo info;
@@ -1550,15 +669,15 @@
   gint display_par_n, display_par_d;    /* display's PAR */
   guint num, den;
   gint size;
-  static GstAllocationParams params = { 0, 15, 0, 0, };
 
   xvimagesink = GST_XVIMAGESINK (bsink);
+  context = xvimagesink->context;
 
   GST_DEBUG_OBJECT (xvimagesink,
       "In setcaps. Possible caps %" GST_PTR_FORMAT ", setting caps %"
-      GST_PTR_FORMAT, xvimagesink->xcontext->caps, caps);
+      GST_PTR_FORMAT, context->caps, caps);
 
-  if (!gst_caps_can_intersect (xvimagesink->xcontext->caps, caps))
+  if (!gst_caps_can_intersect (context->caps, caps))
     goto incompatible_caps;
 
   if (!gst_video_info_from_caps (&info, caps))
@@ -1570,10 +689,12 @@
   xvimagesink->video_width = info.width;
   xvimagesink->video_height = info.height;
 
-  im_format = gst_xvimagesink_get_format_from_info (xvimagesink, &info);
+  im_format = gst_xvcontext_get_format_from_info (context, &info);
   if (im_format == -1)
     goto invalid_format;
 
+  gst_xvcontext_set_colorimetry (context, &info.colorimetry);
+
   size = info.size;
 
   /* get aspect ratio from caps if it's present, and
@@ -1654,11 +775,10 @@
   xvimagesink->redraw_border = TRUE;
 
   /* create a new pool for the new configuration */
-  newpool = gst_xvimage_buffer_pool_new (xvimagesink);
+  newpool = gst_xvimage_buffer_pool_new (xvimagesink->allocator);
 
   structure = gst_buffer_pool_get_config (newpool);
   gst_buffer_pool_config_set_params (structure, caps, size, 2, 0);
-  gst_buffer_pool_config_set_allocator (structure, NULL, &params);
   if (!gst_buffer_pool_set_config (newpool, structure))
     goto config_failed;
 
@@ -1715,37 +835,13 @@
 {
   GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
   GstXvImageSink *xvimagesink;
-  GstXContext *xcontext = NULL;
 
   xvimagesink = GST_XVIMAGESINK (element);
 
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
-      /* Initializing the XContext */
-      if (xvimagesink->xcontext == NULL) {
-        xcontext = gst_xvimagesink_xcontext_get (xvimagesink);
-        if (xcontext == NULL) {
-          ret = GST_STATE_CHANGE_FAILURE;
-          goto beach;
-        }
-        GST_OBJECT_LOCK (xvimagesink);
-        if (xcontext)
-          xvimagesink->xcontext = xcontext;
-        GST_OBJECT_UNLOCK (xvimagesink);
-      }
-
-      /* update object's par with calculated one if not set yet */
-      if (!xvimagesink->par) {
-        xvimagesink->par = g_new0 (GValue, 1);
-        gst_value_init_and_copy (xvimagesink->par, xvimagesink->xcontext->par);
-        GST_DEBUG_OBJECT (xvimagesink, "set calculated PAR on object's PAR");
-      }
-      /* call XSynchronize with the current value of synchronous */
-      GST_DEBUG_OBJECT (xvimagesink, "XSynchronize called with %s",
-          xvimagesink->synchronous ? "TRUE" : "FALSE");
-      XSynchronize (xvimagesink->xcontext->disp, xvimagesink->synchronous);
-      gst_xvimagesink_update_colorbalance (xvimagesink);
-      gst_xvimagesink_manage_event_thread (xvimagesink);
+      if (!gst_xvimagesink_open (xvimagesink))
+        goto error;
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       break;
@@ -1773,14 +869,17 @@
       g_mutex_unlock (&xvimagesink->flow_lock);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
-      gst_xvimagesink_reset (xvimagesink);
+      gst_xvimagesink_close (xvimagesink);
       break;
     default:
       break;
   }
-
-beach:
   return ret;
+
+error:
+  {
+    return GST_STATE_CHANGE_FAILURE;
+  }
 }
 
 static void
@@ -1810,14 +909,13 @@
 {
   GstFlowReturn res;
   GstXvImageSink *xvimagesink;
-  GstXvImageMeta *meta;
   GstBuffer *to_put;
+  GstMemory *mem;
 
   xvimagesink = GST_XVIMAGESINK (vsink);
 
-  meta = gst_buffer_get_xvimage_meta (buf);
-
-  if (meta && meta->sink == xvimagesink) {
+  if (gst_buffer_n_memory (buf) == 1 && (mem = gst_buffer_peek_memory (buf, 0))
+      && gst_xvimage_memory_is_from_context (mem, xvimagesink->context)) {
     /* If this buffer has been allocated using our buffer management we simply
        put the ximage which is in the PRIVATE pointer */
     GST_LOG_OBJECT (xvimagesink, "buffer %p from our pool, writing directly",
@@ -1848,7 +946,7 @@
       goto no_buffer;
 
     GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, xvimagesink,
-        "slow copy into bufferpool buffer %p", to_put);
+        "slow copy buffer %p into bufferpool buffer %p", buf, to_put);
 
     if (!gst_video_frame_map (&src, &xvimagesink->info, buf, GST_MAP_READ))
       goto invalid_buffer;
@@ -1980,7 +1078,7 @@
       goto invalid_caps;
 
     GST_DEBUG_OBJECT (xvimagesink, "create new pool");
-    pool = gst_xvimage_buffer_pool_new (xvimagesink);
+    pool = gst_xvimage_buffer_pool_new (xvimagesink->allocator);
 
     /* the normal size of a frame */
     size = info.size;
@@ -2033,13 +1131,14 @@
     GstEvent *event;
     GstVideoRectangle src, dst, result;
     gdouble x, y, xscale = 1.0, yscale = 1.0;
+    GstXWindow *xwindow;
 
     event = gst_event_new_navigation (structure);
 
     /* We take the flow_lock while we look at the window */
     g_mutex_lock (&xvimagesink->flow_lock);
 
-    if (!xvimagesink->xwindow) {
+    if (!(xwindow = xvimagesink->xwindow)) {
       g_mutex_unlock (&xvimagesink->flow_lock);
       return;
     }
@@ -2049,14 +1148,14 @@
          that respect pixel aspect ratios */
       src.w = GST_VIDEO_SINK_WIDTH (xvimagesink);
       src.h = GST_VIDEO_SINK_HEIGHT (xvimagesink);
-      dst.w = xvimagesink->render_rect.w;
-      dst.h = xvimagesink->render_rect.h;
+      dst.w = xwindow->render_rect.w;
+      dst.h = xwindow->render_rect.h;
 
       gst_video_sink_center_rect (src, dst, &result, TRUE);
-      result.x += xvimagesink->render_rect.x;
-      result.y += xvimagesink->render_rect.y;
+      result.x += xwindow->render_rect.x;
+      result.y += xwindow->render_rect.y;
     } else {
-      memcpy (&result, &xvimagesink->render_rect, sizeof (GstVideoRectangle));
+      memcpy (&result, &xwindow->render_rect, sizeof (GstVideoRectangle));
     }
 
     g_mutex_unlock (&xvimagesink->flow_lock);
@@ -2097,6 +1196,7 @@
   XID xwindow_id = id;
   GstXvImageSink *xvimagesink = GST_XVIMAGESINK (overlay);
   GstXWindow *xwindow = NULL;
+  GstXvContext *context;
 
   g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
 
@@ -2109,18 +1209,21 @@
   }
 
   /* If the element has not initialized the X11 context try to do so */
-  if (!xvimagesink->xcontext &&
-      !(xvimagesink->xcontext = gst_xvimagesink_xcontext_get (xvimagesink))) {
+  if (!xvimagesink->context &&
+      !(xvimagesink->context =
+          gst_xvcontext_new (&xvimagesink->config, NULL))) {
     g_mutex_unlock (&xvimagesink->flow_lock);
     /* we have thrown a GST_ELEMENT_ERROR now */
     return;
   }
 
+  context = xvimagesink->context;
+
   gst_xvimagesink_update_colorbalance (xvimagesink);
 
   /* If a window is there already we destroy it */
   if (xvimagesink->xwindow) {
-    gst_xvimagesink_xwindow_destroy (xvimagesink, xvimagesink->xwindow);
+    gst_xwindow_destroy (xvimagesink->xwindow);
     xvimagesink->xwindow = NULL;
   }
 
@@ -2136,33 +1239,8 @@
           GST_VIDEO_SINK_HEIGHT (xvimagesink));
     }
   } else {
-    XWindowAttributes attr;
-
-    xwindow = g_new0 (GstXWindow, 1);
-    xwindow->win = xwindow_id;
-
-    /* Set the event we want to receive and create a GC */
-    g_mutex_lock (&xvimagesink->x_lock);
-
-    XGetWindowAttributes (xvimagesink->xcontext->disp, xwindow->win, &attr);
-
-    xwindow->width = attr.width;
-    xwindow->height = attr.height;
-    xwindow->internal = FALSE;
-    if (!xvimagesink->have_render_rect) {
-      xvimagesink->render_rect.x = xvimagesink->render_rect.y = 0;
-      xvimagesink->render_rect.w = attr.width;
-      xvimagesink->render_rect.h = attr.height;
-    }
-    if (xvimagesink->handle_events) {
-      XSelectInput (xvimagesink->xcontext->disp, xwindow->win, ExposureMask |
-          StructureNotifyMask | PointerMotionMask | KeyPressMask |
-          KeyReleaseMask);
-    }
-
-    xwindow->gc = XCreateGC (xvimagesink->xcontext->disp,
-        xwindow->win, 0, NULL);
-    g_mutex_unlock (&xvimagesink->x_lock);
+    xwindow = gst_xvcontext_create_xwindow_from_xid (context, xwindow_id);
+    gst_xwindow_set_event_handling (xwindow, xvimagesink->handle_events);
   }
 
   if (xwindow)
@@ -2187,33 +1265,10 @@
 {
   GstXvImageSink *xvimagesink = GST_XVIMAGESINK (overlay);
 
-  xvimagesink->handle_events = handle_events;
-
   g_mutex_lock (&xvimagesink->flow_lock);
-
-  if (G_UNLIKELY (!xvimagesink->xwindow)) {
-    g_mutex_unlock (&xvimagesink->flow_lock);
-    return;
-  }
-
-  g_mutex_lock (&xvimagesink->x_lock);
-
-  if (handle_events) {
-    if (xvimagesink->xwindow->internal) {
-      XSelectInput (xvimagesink->xcontext->disp, xvimagesink->xwindow->win,
-          ExposureMask | StructureNotifyMask | PointerMotionMask |
-          KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask);
-    } else {
-      XSelectInput (xvimagesink->xcontext->disp, xvimagesink->xwindow->win,
-          ExposureMask | StructureNotifyMask | PointerMotionMask |
-          KeyPressMask | KeyReleaseMask);
-    }
-  } else {
-    XSelectInput (xvimagesink->xcontext->disp, xvimagesink->xwindow->win, 0);
-  }
-
-  g_mutex_unlock (&xvimagesink->x_lock);
-
+  xvimagesink->handle_events = handle_events;
+  if (G_LIKELY (xvimagesink->xwindow))
+    gst_xwindow_set_event_handling (xvimagesink->xwindow, handle_events);
   g_mutex_unlock (&xvimagesink->flow_lock);
 }
 
@@ -2223,20 +1278,11 @@
 {
   GstXvImageSink *xvimagesink = GST_XVIMAGESINK (overlay);
 
-  /* FIXME: how about some locking? */
-  if (width >= 0 && height >= 0) {
-    xvimagesink->render_rect.x = x;
-    xvimagesink->render_rect.y = y;
-    xvimagesink->render_rect.w = width;
-    xvimagesink->render_rect.h = height;
-    xvimagesink->have_render_rect = TRUE;
-  } else {
-    xvimagesink->render_rect.x = 0;
-    xvimagesink->render_rect.y = 0;
-    xvimagesink->render_rect.w = xvimagesink->xwindow->width;
-    xvimagesink->render_rect.h = xvimagesink->xwindow->height;
-    xvimagesink->have_render_rect = FALSE;
-  }
+  g_mutex_lock (&xvimagesink->flow_lock);
+  if (G_LIKELY (xvimagesink->xwindow))
+    gst_xwindow_set_render_rectangle (xvimagesink->xwindow, x, y, width,
+        height);
+  g_mutex_unlock (&xvimagesink->flow_lock);
 }
 
 static void
@@ -2255,8 +1301,8 @@
 
   g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), NULL);
 
-  if (xvimagesink->xcontext)
-    return xvimagesink->xcontext->channels_list;
+  if (xvimagesink->context)
+    return xvimagesink->context->channels_list;
   else
     return NULL;
 }
@@ -2270,20 +1316,20 @@
   g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
   g_return_if_fail (channel->label != NULL);
 
-  xvimagesink->cb_changed = TRUE;
+  xvimagesink->config.cb_changed = TRUE;
 
   /* Normalize val to [-1000, 1000] */
   value = floor (0.5 + -1000 + 2000 * (value - channel->min_value) /
       (double) (channel->max_value - channel->min_value));
 
   if (g_ascii_strcasecmp (channel->label, "XV_HUE") == 0) {
-    xvimagesink->hue = value;
+    xvimagesink->config.hue = value;
   } else if (g_ascii_strcasecmp (channel->label, "XV_SATURATION") == 0) {
-    xvimagesink->saturation = value;
+    xvimagesink->config.saturation = value;
   } else if (g_ascii_strcasecmp (channel->label, "XV_CONTRAST") == 0) {
-    xvimagesink->contrast = value;
+    xvimagesink->config.contrast = value;
   } else if (g_ascii_strcasecmp (channel->label, "XV_BRIGHTNESS") == 0) {
-    xvimagesink->brightness = value;
+    xvimagesink->config.brightness = value;
   } else {
     g_warning ("got an unknown channel %s", channel->label);
     return;
@@ -2303,13 +1349,13 @@
   g_return_val_if_fail (channel->label != NULL, 0);
 
   if (g_ascii_strcasecmp (channel->label, "XV_HUE") == 0) {
-    value = xvimagesink->hue;
+    value = xvimagesink->config.hue;
   } else if (g_ascii_strcasecmp (channel->label, "XV_SATURATION") == 0) {
-    value = xvimagesink->saturation;
+    value = xvimagesink->config.saturation;
   } else if (g_ascii_strcasecmp (channel->label, "XV_CONTRAST") == 0) {
-    value = xvimagesink->contrast;
+    value = xvimagesink->config.contrast;
   } else if (g_ascii_strcasecmp (channel->label, "XV_BRIGHTNESS") == 0) {
-    value = xvimagesink->brightness;
+    value = xvimagesink->config.brightness;
   } else {
     g_warning ("got an unknown channel %s", channel->label);
   }
@@ -2371,9 +1417,9 @@
     case PROP_COLORKEY:
       GST_DEBUG_OBJECT (xvimagesink,
           "probing device list and get capabilities");
-      if (!xvimagesink->xcontext) {
-        GST_DEBUG_OBJECT (xvimagesink, "generating xcontext");
-        xvimagesink->xcontext = gst_xvimagesink_xcontext_get (xvimagesink);
+      if (!xvimagesink->context) {
+        GST_DEBUG_OBJECT (xvimagesink, "generating context");
+        xvimagesink->context = gst_xvimagesink_context_get (xvimagesink);
       }
       break;
     default:
@@ -2394,7 +1440,7 @@
     case PROP_AUTOPAINT_COLORKEY:
     case PROP_DOUBLE_BUFFER:
     case PROP_COLORKEY:
-      if (xvimagesink->xcontext != NULL) {
+      if (xvimagesink->context != NULL) {
         ret = FALSE;
       } else {
         ret = TRUE;
@@ -2415,8 +1461,8 @@
   GstXvImageSink *xvimagesink = GST_XVIMAGESINK (probe);
   GValueArray *array = NULL;
 
-  if (G_UNLIKELY (!xvimagesink->xcontext)) {
-    GST_WARNING_OBJECT (xvimagesink, "we don't have any xcontext, can't "
+  if (G_UNLIKELY (!xvimagesink->context)) {
+    GST_WARNING_OBJECT (xvimagesink, "we don't have any context, can't "
         "get values");
     goto beach;
   }
@@ -2427,10 +1473,10 @@
       guint i;
       GValue value = { 0 };
 
-      array = g_value_array_new (xvimagesink->xcontext->nb_adaptors);
+      array = g_value_array_new (xvimagesink->context->nb_adaptors);
       g_value_init (&value, G_TYPE_STRING);
 
-      for (i = 0; i < xvimagesink->xcontext->nb_adaptors; i++) {
+      for (i = 0; i < xvimagesink->context->nb_adaptors; i++) {
         gchar *adaptor_id_s = g_strdup_printf ("%u", i);
 
         g_value_set_string (&value, adaptor_id_s);
@@ -2515,34 +1561,34 @@
 
   switch (prop_id) {
     case PROP_HUE:
-      xvimagesink->hue = g_value_get_int (value);
-      xvimagesink->cb_changed = TRUE;
+      xvimagesink->config.hue = g_value_get_int (value);
+      xvimagesink->config.cb_changed = TRUE;
       gst_xvimagesink_update_colorbalance (xvimagesink);
       break;
     case PROP_CONTRAST:
-      xvimagesink->contrast = g_value_get_int (value);
-      xvimagesink->cb_changed = TRUE;
+      xvimagesink->config.contrast = g_value_get_int (value);
+      xvimagesink->config.cb_changed = TRUE;
       gst_xvimagesink_update_colorbalance (xvimagesink);
       break;
     case PROP_BRIGHTNESS:
-      xvimagesink->brightness = g_value_get_int (value);
-      xvimagesink->cb_changed = TRUE;
+      xvimagesink->config.brightness = g_value_get_int (value);
+      xvimagesink->config.cb_changed = TRUE;
       gst_xvimagesink_update_colorbalance (xvimagesink);
       break;
     case PROP_SATURATION:
-      xvimagesink->saturation = g_value_get_int (value);
-      xvimagesink->cb_changed = TRUE;
+      xvimagesink->config.saturation = g_value_get_int (value);
+      xvimagesink->config.cb_changed = TRUE;
       gst_xvimagesink_update_colorbalance (xvimagesink);
       break;
     case PROP_DISPLAY:
-      xvimagesink->display_name = g_strdup (g_value_get_string (value));
+      g_free (xvimagesink->config.display_name);
+      xvimagesink->config.display_name = g_strdup (g_value_get_string (value));
       break;
     case PROP_SYNCHRONOUS:
       xvimagesink->synchronous = g_value_get_boolean (value);
-      if (xvimagesink->xcontext) {
-        XSynchronize (xvimagesink->xcontext->disp, xvimagesink->synchronous);
-        GST_DEBUG_OBJECT (xvimagesink, "XSynchronize called with %s",
-            xvimagesink->synchronous ? "TRUE" : "FALSE");
+      if (xvimagesink->context) {
+        gst_xvcontext_set_synchronous (xvimagesink->context,
+            xvimagesink->synchronous);
       }
       break;
     case PROP_PIXEL_ASPECT_RATIO:
@@ -2566,7 +1612,7 @@
       gst_xvimagesink_manage_event_thread (xvimagesink);
       break;
     case PROP_DEVICE:
-      xvimagesink->adaptor_no = atoi (g_value_get_string (value));
+      xvimagesink->config.adaptor_nr = atoi (g_value_get_string (value));
       break;
     case PROP_HANDLE_EXPOSE:
       xvimagesink->handle_expose = g_value_get_boolean (value);
@@ -2576,10 +1622,10 @@
       xvimagesink->double_buffer = g_value_get_boolean (value);
       break;
     case PROP_AUTOPAINT_COLORKEY:
-      xvimagesink->autopaint_colorkey = g_value_get_boolean (value);
+      xvimagesink->config.autopaint_colorkey = g_value_get_boolean (value);
       break;
     case PROP_COLORKEY:
-      xvimagesink->colorkey = g_value_get_int (value);
+      xvimagesink->config.colorkey = g_value_get_int (value);
       break;
     case PROP_DRAW_BORDERS:
       xvimagesink->draw_borders = g_value_get_boolean (value);
@@ -2602,19 +1648,19 @@
 
   switch (prop_id) {
     case PROP_HUE:
-      g_value_set_int (value, xvimagesink->hue);
+      g_value_set_int (value, xvimagesink->config.hue);
       break;
     case PROP_CONTRAST:
-      g_value_set_int (value, xvimagesink->contrast);
+      g_value_set_int (value, xvimagesink->config.contrast);
       break;
     case PROP_BRIGHTNESS:
-      g_value_set_int (value, xvimagesink->brightness);
+      g_value_set_int (value, xvimagesink->config.brightness);
       break;
     case PROP_SATURATION:
-      g_value_set_int (value, xvimagesink->saturation);
+      g_value_set_int (value, xvimagesink->config.saturation);
       break;
     case PROP_DISPLAY:
-      g_value_set_string (value, xvimagesink->display_name);
+      g_value_set_string (value, xvimagesink->config.display_name);
       break;
     case PROP_SYNCHRONOUS:
       g_value_set_boolean (value, xvimagesink->synchronous);
@@ -2631,16 +1677,17 @@
       break;
     case PROP_DEVICE:
     {
-      char *adaptor_no_s = g_strdup_printf ("%u", xvimagesink->adaptor_no);
+      char *adaptor_nr_s =
+          g_strdup_printf ("%u", xvimagesink->config.adaptor_nr);
 
-      g_value_set_string (value, adaptor_no_s);
-      g_free (adaptor_no_s);
+      g_value_set_string (value, adaptor_nr_s);
+      g_free (adaptor_nr_s);
       break;
     }
     case PROP_DEVICE_NAME:
-      if (xvimagesink->xcontext && xvimagesink->xcontext->adaptors) {
+      if (xvimagesink->context && xvimagesink->context->adaptors) {
         g_value_set_string (value,
-            xvimagesink->xcontext->adaptors[xvimagesink->adaptor_no]);
+            xvimagesink->context->adaptors[xvimagesink->config.adaptor_nr]);
       } else {
         g_value_set_string (value, NULL);
       }
@@ -2652,10 +1699,10 @@
       g_value_set_boolean (value, xvimagesink->double_buffer);
       break;
     case PROP_AUTOPAINT_COLORKEY:
-      g_value_set_boolean (value, xvimagesink->autopaint_colorkey);
+      g_value_set_boolean (value, xvimagesink->config.autopaint_colorkey);
       break;
     case PROP_COLORKEY:
-      g_value_set_int (value, xvimagesink->colorkey);
+      g_value_set_int (value, xvimagesink->config.colorkey);
       break;
     case PROP_DRAW_BORDERS:
       g_value_set_boolean (value, xvimagesink->draw_borders);
@@ -2678,10 +1725,50 @@
   }
 }
 
+static gboolean
+gst_xvimagesink_open (GstXvImageSink * xvimagesink)
+{
+  GstXvContext *context;
+  GError *error = NULL;
+
+  /* Initializing the XvContext */
+  if (!(context = gst_xvcontext_new (&xvimagesink->config, &error)))
+    goto no_context;
+
+  GST_OBJECT_LOCK (xvimagesink);
+  xvimagesink->context = context;
+  /* make an allocator for this context */
+  xvimagesink->allocator = gst_xvimage_allocator_new (context);
+  GST_OBJECT_UNLOCK (xvimagesink);
+
+  /* update object's par with calculated one if not set yet */
+  if (!xvimagesink->par) {
+    xvimagesink->par = g_new0 (GValue, 1);
+    gst_value_init_and_copy (xvimagesink->par, xvimagesink->context->par);
+    GST_DEBUG_OBJECT (xvimagesink, "set calculated PAR on object's PAR");
+  }
+  /* call XSynchronize with the current value of synchronous */
+  gst_xvcontext_set_synchronous (xvimagesink->context,
+      xvimagesink->synchronous);
+  gst_xvimagesink_update_colorbalance (xvimagesink);
+  gst_xvimagesink_manage_event_thread (xvimagesink);
+
+  return TRUE;
+
+no_context:
+  {
+    gst_element_message_full (GST_ELEMENT (xvimagesink), GST_MESSAGE_ERROR,
+        error->domain, error->code, g_strdup ("Could not initialise Xv output"),
+        error->message, __FILE__, GST_FUNCTION, __LINE__);
+    return FALSE;
+  }
+}
+
 static void
-gst_xvimagesink_reset (GstXvImageSink * xvimagesink)
+gst_xvimagesink_close (GstXvImageSink * xvimagesink)
 {
   GThread *thread;
+  GstXvContext *context;
 
   GST_OBJECT_LOCK (xvimagesink);
   xvimagesink->running = FALSE;
@@ -2707,17 +1794,25 @@
   }
 
   if (xvimagesink->xwindow) {
-    gst_xvimagesink_xwindow_clear (xvimagesink, xvimagesink->xwindow);
-    gst_xvimagesink_xwindow_destroy (xvimagesink, xvimagesink->xwindow);
+    gst_xwindow_clear (xvimagesink->xwindow);
+    gst_xwindow_destroy (xvimagesink->xwindow);
     xvimagesink->xwindow = NULL;
   }
   g_mutex_unlock (&xvimagesink->flow_lock);
 
-  xvimagesink->render_rect.x = xvimagesink->render_rect.y =
-      xvimagesink->render_rect.w = xvimagesink->render_rect.h = 0;
-  xvimagesink->have_render_rect = FALSE;
+  if (xvimagesink->allocator) {
+    gst_object_unref (xvimagesink->allocator);
+    xvimagesink->allocator = NULL;
+  }
 
-  gst_xvimagesink_xcontext_clear (xvimagesink);
+  GST_OBJECT_LOCK (xvimagesink);
+  /* grab context and mark it as NULL */
+  context = xvimagesink->context;
+  xvimagesink->context = NULL;
+  GST_OBJECT_UNLOCK (xvimagesink);
+
+  if (context)
+    gst_xvcontext_unref (context);
 }
 
 /* Finalize is called only once, dispose can be called multiple times.
@@ -2730,18 +1825,14 @@
 
   xvimagesink = GST_XVIMAGESINK (object);
 
-  gst_xvimagesink_reset (xvimagesink);
+  gst_xvimagesink_close (xvimagesink);
 
-  if (xvimagesink->display_name) {
-    g_free (xvimagesink->display_name);
-    xvimagesink->display_name = NULL;
-  }
+  gst_xvcontext_config_clear (&xvimagesink->config);
 
   if (xvimagesink->par) {
     g_free (xvimagesink->par);
     xvimagesink->par = NULL;
   }
-  g_mutex_clear (&xvimagesink->x_lock);
   g_mutex_clear (&xvimagesink->flow_lock);
   g_free (xvimagesink->media_title);
 
@@ -2751,40 +1842,38 @@
 static void
 gst_xvimagesink_init (GstXvImageSink * xvimagesink)
 {
-  xvimagesink->display_name = NULL;
-  xvimagesink->adaptor_no = 0;
-  xvimagesink->xcontext = NULL;
+  xvimagesink->config.display_name = NULL;
+  xvimagesink->config.adaptor_nr = 0;
+  xvimagesink->config.autopaint_colorkey = TRUE;
+  xvimagesink->config.double_buffer = TRUE;
+  /* on 16bit displays this becomes r,g,b = 1,2,3
+   * on 24bit displays this becomes r,g,b = 8,8,16
+   * as a port atom value */
+  xvimagesink->config.colorkey = (8 << 16) | (8 << 8) | 16;
+  xvimagesink->config.hue = xvimagesink->config.saturation = 0;
+  xvimagesink->config.contrast = xvimagesink->config.brightness = 0;
+  xvimagesink->config.cb_changed = FALSE;
+
+  xvimagesink->context = NULL;
   xvimagesink->xwindow = NULL;
   xvimagesink->cur_image = NULL;
 
-  xvimagesink->hue = xvimagesink->saturation = 0;
-  xvimagesink->contrast = xvimagesink->brightness = 0;
-  xvimagesink->cb_changed = FALSE;
-
   xvimagesink->fps_n = 0;
   xvimagesink->fps_d = 0;
   xvimagesink->video_width = 0;
   xvimagesink->video_height = 0;
 
-  g_mutex_init (&xvimagesink->x_lock);
   g_mutex_init (&xvimagesink->flow_lock);
 
   xvimagesink->pool = NULL;
 
   xvimagesink->synchronous = FALSE;
-  xvimagesink->double_buffer = TRUE;
   xvimagesink->running = FALSE;
   xvimagesink->keep_aspect = TRUE;
   xvimagesink->handle_events = TRUE;
   xvimagesink->par = NULL;
   xvimagesink->handle_expose = TRUE;
-  xvimagesink->autopaint_colorkey = TRUE;
 
-  /* on 16bit displays this becomes r,g,b = 1,2,3
-   * on 24bit displays this becomes r,g,b = 8,8,16
-   * as a port atom value
-   */
-  xvimagesink->colorkey = (8 << 16) | (8 << 8) | 16;
   xvimagesink->draw_borders = TRUE;
 }
 
diff --git a/sys/xvimage/xvimagesink.h b/sys/xvimage/xvimagesink.h
index 12fb07d..aefb667 100644
--- a/sys/xvimage/xvimagesink.h
+++ b/sys/xvimage/xvimagesink.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef __GST_XVIMAGESINK_H__
@@ -22,26 +22,6 @@
 
 #include <gst/video/gstvideosink.h>
 
-#ifdef HAVE_XSHM
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#endif /* HAVE_XSHM */
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-#ifdef HAVE_XSHM
-#include <X11/extensions/XShm.h>
-#endif /* HAVE_XSHM */
-
-#include <X11/extensions/Xv.h>
-#include <X11/extensions/Xvlib.h>
-
-#include <string.h>
-#include <math.h>
-#include <stdlib.h>
-
 /* Helper functions */
 #include <gst/video/video.h>
 
@@ -56,122 +36,18 @@
   (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_XVIMAGESINK))
 #define GST_IS_XVIMAGESINK_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_XVIMAGESINK))
-typedef struct _GstXContext GstXContext;
-typedef struct _GstXWindow GstXWindow;
-typedef struct _GstXvImageFormat GstXvImageFormat;
 
 typedef struct _GstXvImageSink GstXvImageSink;
 typedef struct _GstXvImageSinkClass GstXvImageSinkClass;
 
+#include "xvimageallocator.h"
 #include "xvimagepool.h"
-
-/*
- * GstXContext:
- * @disp: the X11 Display of this context
- * @screen: the default Screen of Display @disp
- * @screen_num: the Screen number of @screen
- * @visual: the default Visual of Screen @screen
- * @root: the root Window of Display @disp
- * @white: the value of a white pixel on Screen @screen
- * @black: the value of a black pixel on Screen @screen
- * @depth: the color depth of Display @disp
- * @bpp: the number of bits per pixel on Display @disp
- * @endianness: the endianness of image bytes on Display @disp
- * @width: the width in pixels of Display @disp
- * @height: the height in pixels of Display @disp
- * @widthmm: the width in millimeters of Display @disp
- * @heightmm: the height in millimeters of Display @disp
- * @par: the pixel aspect ratio calculated from @width, @widthmm and @height,
- * @heightmm ratio
- * @use_xshm: used to known wether of not XShm extension is usable or not even
- * if the Extension is present
- * @xv_port_id: the XVideo port ID
- * @im_format: used to store at least a valid format for XShm calls checks
- * @formats_list: list of supported image formats on @xv_port_id
- * @channels_list: list of #GstColorBalanceChannels
- * @caps: the #GstCaps that Display @disp can accept
- *
- * Structure used to store various informations collected/calculated for a
- * Display.
- */
-struct _GstXContext
-{
-  Display *disp;
-
-  Screen *screen;
-  gint screen_num;
-
-  Visual *visual;
-
-  Window root;
-
-  gulong white, black;
-
-  gint depth;
-  gint bpp;
-  gint endianness;
-
-  gint width, height;
-  gint widthmm, heightmm;
-  GValue *par;                  /* calculated pixel aspect ratio */
-
-  gboolean use_xshm;
-
-  XvPortID xv_port_id;
-  guint nb_adaptors;
-  gchar **adaptors;
-  gint im_format;
-
-  GList *formats_list;
-  GList *channels_list;
-
-  GstCaps *caps;
-
-  /* Optimisation storage for buffer_alloc return */
-  GstCaps *last_caps;
-  gint last_format;
-  gint last_width;
-  gint last_height;
-};
-
-/*
- * GstXWindow:
- * @win: the Window ID of this X11 window
- * @width: the width in pixels of Window @win
- * @height: the height in pixels of Window @win
- * @internal: used to remember if Window @win was created internally or passed
- * through the #GstVideoOverlay interface
- * @gc: the Graphical Context of Window @win
- *
- * Structure used to store informations about a Window.
- */
-struct _GstXWindow
-{
-  Window win;
-  gint width, height;
-  gboolean internal;
-  GC gc;
-};
-
-/**
- * GstXvImageFormat:
- * @format: the image format
- * @caps: generated #GstCaps for this image format
- *
- * Structure storing image format to #GstCaps association.
- */
-struct _GstXvImageFormat
-{
-  gint format;
-  GstVideoFormat vformat;
-  GstCaps *caps;
-};
-
+#include "xvcontext.h"
 
 /**
  * GstXvImageSink:
  * @display_name: the name of the Display we want to render to
- * @xcontext: our instance's #GstXContext
+ * @xvcontext: our instance's #GstXvContext
  * @xwindow: the #GstXWindow we are rendering to
  * @cur_image: a reference to the last #GstXvImage that was put to @xwindow. It
  * is used when Expose events are received to redraw the latest video frame
@@ -183,7 +59,7 @@
  * mode
  * @flow_lock: used to protect data flow routines from external calls such as
  * events from @event_thread or methods from the #GstVideoOverlay interface
- * @par: used to override calculated pixel aspect ratio from @xcontext
+ * @par: used to override calculated pixel aspect ratio from @xvcontext
  * @pool_lock: used to protect the buffer pool
  * @image_pool: a list of #GstXvImageBuffer that could be reused at next buffer
  * allocation call
@@ -207,10 +83,9 @@
   /* Our element stuff */
   GstVideoSink videosink;
 
-  char *display_name;
-  guint adaptor_no;
-
-  GstXContext *xcontext;
+  GstXvContextConfig config;
+  GstXvContext *context;
+  GstXvImageAllocator *allocator;
   GstXWindow *xwindow;
   GstBuffer *cur_image;
 
@@ -223,7 +98,6 @@
   gint fps_n;
   gint fps_d;
 
-  GMutex x_lock;
   GMutex flow_lock;
 
   /* object-set pixel aspect ratio */
@@ -239,32 +113,13 @@
   gboolean handle_events;
   gboolean handle_expose;
 
-  gint brightness;
-  gint contrast;
-  gint hue;
-  gint saturation;
-  gboolean cb_changed;
-
   /* size of incoming video, used as the size for XvImage */
   guint video_width, video_height;
 
-  /* port attributes */
-  gboolean autopaint_colorkey;
-  gint colorkey;
-
   gboolean draw_borders;
 
-  /* port features */
-  gboolean have_autopaint_colorkey;
-  gboolean have_colorkey;
-  gboolean have_double_buffer;
-
   /* stream metadata */
   gchar *media_title;
-
-  /* target video rectangle */
-  GstVideoRectangle render_rect;
-  gboolean have_render_rect;
 };
 
 struct _GstXvImageSinkClass
diff --git a/test-driver b/test-driver
new file mode 100755
index 0000000..32bf39e
--- /dev/null
+++ b/test-driver
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='' # Red.
+  grn='' # Green.
+  lgn='' # Light green.
+  blu='' # Blue.
+  mgn='' # Magenta.
+  std=''     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/tests/Makefile.in b/tests/Makefile.in
index f860f06..43f7f3b 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,12 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,21 +123,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -119,9 +152,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -498,22 +551,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -528,57 +584,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -594,12 +605,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -611,15 +617,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -628,6 +630,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -788,22 +805,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 3d9c5a5..629877d 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -4,14 +4,14 @@
 TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files
 
 REGISTRY_ENVIRONMENT = \
-	GST_REGISTRY=$(CHECK_REGISTRY)
+	GST_REGISTRY_1_0=$(CHECK_REGISTRY)
 
 TESTS_ENVIRONMENT = \
-        CK_DEFAULT_TIMEOUT=120                                  \
-        GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
+	CK_DEFAULT_TIMEOUT=120                                  \
+	GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
 	$(REGISTRY_ENVIRONMENT)					\
-	GST_PLUGIN_SYSTEM_PATH=					\
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
+	GST_PLUGIN_SYSTEM_PATH_1_0=				\
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
 	GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)" \
 	GST_TAG_LICENSE_TRANSLATIONS_DICT="$(top_srcdir)/gst-libs/gst/tag/license-translations.dict"
 
@@ -109,6 +109,7 @@
 	libs/profile \
 	libs/rtp \
 	libs/rtsp \
+	libs/sdp \
 	libs/tag \
 	libs/video \
 	libs/xmpwriter \
@@ -125,7 +126,7 @@
 	elements/multifdsink        \
 	elements/multisocketsink    \
 	elements/playbin            \
-	elements/playbin-compressed \
+	elements/playbin-complex    \
 	$(check_pango)              \
 	$(check_subparse)           \
 	elements/videoconvert       \
@@ -234,6 +235,13 @@
         $(GST_BASE_LIBS) \
         $(LDADD)
 
+libs_sdp_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(AM_CFLAGS)
+libs_sdp_LDADD = \
+	$(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_API_VERSION@.la \
+	$(GST_BASE_LIBS) $(LDADD)
+
 libs_rtp_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(AM_CFLAGS)
@@ -321,8 +329,8 @@
 elements_playbin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_playbin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 
-elements_playbin_compressed_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la $(GST_BASE_LIBS) $(LDADD)
-elements_playbin_compressed_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_playbin_complex_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la $(GST_BASE_LIBS) $(LDADD)
+elements_playbin_complex_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 
 elements_decodebin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_decodebin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index c28dad6..dfaf6f8 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,8 +80,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/common/check.mak
+DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
+	$(top_srcdir)/test-driver
 check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) \
 	elements/audioconvert$(EXEEXT) elements/audiotestsrc$(EXEEXT) \
 	elements/decodebin$(EXEEXT) \
@@ -65,8 +93,8 @@
 	libs/discoverer$(EXEEXT) libs/fft$(EXEEXT) \
 	libs/navigation$(EXEEXT) libs/pbutils$(EXEEXT) \
 	libs/profile$(EXEEXT) libs/rtp$(EXEEXT) libs/rtsp$(EXEEXT) \
-	libs/tag$(EXEEXT) libs/video$(EXEEXT) libs/xmpwriter$(EXEEXT) \
-	$(am__EXEEXT_4) $(am__EXEEXT_5) \
+	libs/sdp$(EXEEXT) libs/tag$(EXEEXT) libs/video$(EXEEXT) \
+	libs/xmpwriter$(EXEEXT) $(am__EXEEXT_4) $(am__EXEEXT_5) \
 	pipelines/simple-launch-lines$(EXEEXT) \
 	pipelines/basetime$(EXEEXT) \
 	pipelines/capsfilter-renegotiation$(EXEEXT) \
@@ -74,7 +102,7 @@
 	elements/appsrc$(EXEEXT) elements/audiorate$(EXEEXT) \
 	elements/audioresample$(EXEEXT) elements/multifdsink$(EXEEXT) \
 	elements/multisocketsink$(EXEEXT) elements/playbin$(EXEEXT) \
-	elements/playbin-compressed$(EXEEXT) $(am__EXEEXT_6) \
+	elements/playbin-complex$(EXEEXT) $(am__EXEEXT_6) \
 	$(am__EXEEXT_7) elements/videoconvert$(EXEEXT) \
 	elements/videorate$(EXEEXT) elements/videoscale$(EXEEXT) \
 	elements/videotestsrc$(EXEEXT) elements/volume$(EXEEXT) \
@@ -86,7 +114,6 @@
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -151,6 +178,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 elements_adder_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_adder_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
@@ -249,14 +277,15 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_playbin_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-elements_playbin_compressed_SOURCES = elements/playbin-compressed.c
-elements_playbin_compressed_OBJECTS =  \
-	elements_playbin_compressed-playbin-compressed.$(OBJEXT)
-elements_playbin_compressed_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+elements_playbin_complex_SOURCES = elements/playbin-complex.c
+elements_playbin_complex_OBJECTS =  \
+	elements_playbin_complex-playbin-complex.$(OBJEXT)
+elements_playbin_complex_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
+	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
-elements_playbin_compressed_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+elements_playbin_complex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(elements_playbin_compressed_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(elements_playbin_complex_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 elements_streamsynchronizer_SOURCES = elements/streamsynchronizer.c
 elements_streamsynchronizer_OBJECTS = streamsynchronizer.$(OBJEXT)
@@ -438,6 +467,13 @@
 libs_rtsp_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_rtsp_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+libs_sdp_SOURCES = libs/sdp.c
+libs_sdp_OBJECTS = libs_sdp-sdp.$(OBJEXT)
+libs_sdp_DEPENDENCIES = $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+libs_sdp_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_sdp_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 libs_tag_SOURCES = libs/tag.c
 libs_tag_OBJECTS = libs_tag-tag.$(OBJEXT)
 libs_tag_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
@@ -570,6 +606,18 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(pipelines_vorbisenc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -582,17 +630,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -601,23 +648,22 @@
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_@AM_V@)
 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = elements/adder.c elements/appsink.c elements/appsrc.c \
 	elements/audioconvert.c elements/audiorate.c \
 	elements/audioresample.c elements/audiotestsrc.c \
 	elements/decodebin.c elements/encodebin.c elements/libvisual.c \
 	elements/multifdsink.c elements/multisocketsink.c \
-	elements/playbin.c elements/playbin-compressed.c \
+	elements/playbin.c elements/playbin-complex.c \
 	elements/streamsynchronizer.c elements/subparse.c \
 	elements/textoverlay.c elements/videoconvert.c \
 	elements/videorate.c elements/videoscale.c \
@@ -627,7 +673,7 @@
 	libs/audiocdsrc.c libs/discoverer.c libs/fft.c \
 	$(libs_gstlibscpp_SOURCES) libs/libsabi.c libs/navigation.c \
 	libs/pbutils.c libs/profile.c libs/rtp.c libs/rtsp.c \
-	libs/tag.c libs/video.c libs/xmpwriter.c \
+	libs/sdp.c libs/tag.c libs/video.c libs/xmpwriter.c \
 	$(nodist_orc_adder_SOURCES) $(nodist_orc_audio_SOURCES) \
 	$(nodist_orc_audioconvert_SOURCES) $(nodist_orc_video_SOURCES) \
 	$(nodist_orc_videoscale_SOURCES) \
@@ -642,7 +688,7 @@
 	elements/audioresample.c elements/audiotestsrc.c \
 	elements/decodebin.c elements/encodebin.c elements/libvisual.c \
 	elements/multifdsink.c elements/multisocketsink.c \
-	elements/playbin.c elements/playbin-compressed.c \
+	elements/playbin.c elements/playbin-complex.c \
 	elements/streamsynchronizer.c elements/subparse.c \
 	elements/textoverlay.c elements/videoconvert.c \
 	elements/videorate.c elements/videoscale.c \
@@ -652,21 +698,240 @@
 	libs/audiocdsrc.c libs/discoverer.c libs/fft.c \
 	$(libs_gstlibscpp_SOURCES) libs/libsabi.c libs/navigation.c \
 	libs/pbutils.c libs/profile.c libs/rtp.c libs/rtsp.c \
-	libs/tag.c libs/video.c libs/xmpwriter.c pipelines/basetime.c \
-	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
-	pipelines/oggmux.c pipelines/simple-launch-lines.c \
-	pipelines/theoraenc.c pipelines/vorbisdec.c \
-	pipelines/vorbisenc.c
+	libs/sdp.c libs/tag.c libs/video.c libs/xmpwriter.c \
+	pipelines/basetime.c pipelines/capsfilter-renegotiation.c \
+	pipelines/gio.c pipelines/oggmux.c \
+	pipelines/simple-launch-lines.c pipelines/theoraenc.c \
+	pipelines/vorbisdec.c pipelines/vorbisenc.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -958,21 +1223,20 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-LOOPS = 10
 
 # inspect every plugin feature
 GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
 CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg
 TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files
 REGISTRY_ENVIRONMENT = \
-	GST_REGISTRY=$(CHECK_REGISTRY)
+	GST_REGISTRY_1_0=$(CHECK_REGISTRY)
 
 TESTS_ENVIRONMENT = \
-        CK_DEFAULT_TIMEOUT=120                                  \
-        GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
+	CK_DEFAULT_TIMEOUT=120                                  \
+	GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
 	$(REGISTRY_ENVIRONMENT)					\
-	GST_PLUGIN_SYSTEM_PATH=					\
-	GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
+	GST_PLUGIN_SYSTEM_PATH_1_0=				\
+	GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
 	GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)" \
 	GST_TAG_LICENSE_TRANSLATIONS_DICT="$(top_srcdir)/gst-libs/gst/tag/license-translations.dict"
 
@@ -1101,6 +1365,14 @@
         $(GST_BASE_LIBS) \
         $(LDADD)
 
+libs_sdp_CFLAGS = \
+	$(GST_PLUGINS_BASE_CFLAGS) \
+	$(AM_CFLAGS)
+
+libs_sdp_LDADD = \
+	$(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_API_VERSION@.la \
+	$(GST_BASE_LIBS) $(LDADD)
+
 libs_rtp_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(AM_CFLAGS)
@@ -1189,8 +1461,8 @@
 elements_libvisual_CFLAGS = $(CFLAGS) $(AM_CFLAGS)
 elements_playbin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_playbin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
-elements_playbin_compressed_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la $(GST_BASE_LIBS) $(LDADD)
-elements_playbin_compressed_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_playbin_complex_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la $(GST_BASE_LIBS) $(LDADD)
+elements_playbin_complex_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_decodebin_LDADD = $(GST_BASE_LIBS) $(LDADD)
 elements_decodebin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_encodebin_LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la $(GST_BASE_LIBS) $(LDADD)
@@ -1327,7 +1599,7 @@
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .cc .lo .o .obj
+.SUFFIXES: .c .cc .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/check.mak $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -1380,186 +1652,246 @@
 elements/$(am__dirstamp):
 	@$(MKDIR_P) elements
 	@: > elements/$(am__dirstamp)
+
 elements/adder$(EXEEXT): $(elements_adder_OBJECTS) $(elements_adder_DEPENDENCIES) $(EXTRA_elements_adder_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/adder$(EXEEXT)
 	$(AM_V_CCLD)$(elements_adder_LINK) $(elements_adder_OBJECTS) $(elements_adder_LDADD) $(LIBS)
+
 elements/appsink$(EXEEXT): $(elements_appsink_OBJECTS) $(elements_appsink_DEPENDENCIES) $(EXTRA_elements_appsink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/appsink$(EXEEXT)
 	$(AM_V_CCLD)$(elements_appsink_LINK) $(elements_appsink_OBJECTS) $(elements_appsink_LDADD) $(LIBS)
+
 elements/appsrc$(EXEEXT): $(elements_appsrc_OBJECTS) $(elements_appsrc_DEPENDENCIES) $(EXTRA_elements_appsrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/appsrc$(EXEEXT)
 	$(AM_V_CCLD)$(elements_appsrc_LINK) $(elements_appsrc_OBJECTS) $(elements_appsrc_LDADD) $(LIBS)
+
 elements/audioconvert$(EXEEXT): $(elements_audioconvert_OBJECTS) $(elements_audioconvert_DEPENDENCIES) $(EXTRA_elements_audioconvert_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audioconvert$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audioconvert_LINK) $(elements_audioconvert_OBJECTS) $(elements_audioconvert_LDADD) $(LIBS)
+
 elements/audiorate$(EXEEXT): $(elements_audiorate_OBJECTS) $(elements_audiorate_DEPENDENCIES) $(EXTRA_elements_audiorate_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiorate$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audiorate_LINK) $(elements_audiorate_OBJECTS) $(elements_audiorate_LDADD) $(LIBS)
+
 elements/audioresample$(EXEEXT): $(elements_audioresample_OBJECTS) $(elements_audioresample_DEPENDENCIES) $(EXTRA_elements_audioresample_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audioresample$(EXEEXT)
 	$(AM_V_CCLD)$(elements_audioresample_LINK) $(elements_audioresample_OBJECTS) $(elements_audioresample_LDADD) $(LIBS)
+
 elements/audiotestsrc$(EXEEXT): $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_DEPENDENCIES) $(EXTRA_elements_audiotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/audiotestsrc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_LDADD) $(LIBS)
+
 elements/decodebin$(EXEEXT): $(elements_decodebin_OBJECTS) $(elements_decodebin_DEPENDENCIES) $(EXTRA_elements_decodebin_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/decodebin$(EXEEXT)
 	$(AM_V_CCLD)$(elements_decodebin_LINK) $(elements_decodebin_OBJECTS) $(elements_decodebin_LDADD) $(LIBS)
+
 elements/encodebin$(EXEEXT): $(elements_encodebin_OBJECTS) $(elements_encodebin_DEPENDENCIES) $(EXTRA_elements_encodebin_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/encodebin$(EXEEXT)
 	$(AM_V_CCLD)$(elements_encodebin_LINK) $(elements_encodebin_OBJECTS) $(elements_encodebin_LDADD) $(LIBS)
+
 elements/libvisual$(EXEEXT): $(elements_libvisual_OBJECTS) $(elements_libvisual_DEPENDENCIES) $(EXTRA_elements_libvisual_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/libvisual$(EXEEXT)
 	$(AM_V_CCLD)$(elements_libvisual_LINK) $(elements_libvisual_OBJECTS) $(elements_libvisual_LDADD) $(LIBS)
+
 elements/multifdsink$(EXEEXT): $(elements_multifdsink_OBJECTS) $(elements_multifdsink_DEPENDENCIES) $(EXTRA_elements_multifdsink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/multifdsink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_multifdsink_OBJECTS) $(elements_multifdsink_LDADD) $(LIBS)
+
 elements/multisocketsink$(EXEEXT): $(elements_multisocketsink_OBJECTS) $(elements_multisocketsink_DEPENDENCIES) $(EXTRA_elements_multisocketsink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/multisocketsink$(EXEEXT)
 	$(AM_V_CCLD)$(elements_multisocketsink_LINK) $(elements_multisocketsink_OBJECTS) $(elements_multisocketsink_LDADD) $(LIBS)
+
 elements/playbin$(EXEEXT): $(elements_playbin_OBJECTS) $(elements_playbin_DEPENDENCIES) $(EXTRA_elements_playbin_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/playbin$(EXEEXT)
 	$(AM_V_CCLD)$(elements_playbin_LINK) $(elements_playbin_OBJECTS) $(elements_playbin_LDADD) $(LIBS)
-elements/playbin-compressed$(EXEEXT): $(elements_playbin_compressed_OBJECTS) $(elements_playbin_compressed_DEPENDENCIES) $(EXTRA_elements_playbin_compressed_DEPENDENCIES) elements/$(am__dirstamp)
-	@rm -f elements/playbin-compressed$(EXEEXT)
-	$(AM_V_CCLD)$(elements_playbin_compressed_LINK) $(elements_playbin_compressed_OBJECTS) $(elements_playbin_compressed_LDADD) $(LIBS)
+
+elements/playbin-complex$(EXEEXT): $(elements_playbin_complex_OBJECTS) $(elements_playbin_complex_DEPENDENCIES) $(EXTRA_elements_playbin_complex_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/playbin-complex$(EXEEXT)
+	$(AM_V_CCLD)$(elements_playbin_complex_LINK) $(elements_playbin_complex_OBJECTS) $(elements_playbin_complex_LDADD) $(LIBS)
+
 elements/streamsynchronizer$(EXEEXT): $(elements_streamsynchronizer_OBJECTS) $(elements_streamsynchronizer_DEPENDENCIES) $(EXTRA_elements_streamsynchronizer_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/streamsynchronizer$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_streamsynchronizer_OBJECTS) $(elements_streamsynchronizer_LDADD) $(LIBS)
+
 elements/subparse$(EXEEXT): $(elements_subparse_OBJECTS) $(elements_subparse_DEPENDENCIES) $(EXTRA_elements_subparse_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/subparse$(EXEEXT)
 	$(AM_V_CCLD)$(elements_subparse_LINK) $(elements_subparse_OBJECTS) $(elements_subparse_LDADD) $(LIBS)
+
 elements/textoverlay$(EXEEXT): $(elements_textoverlay_OBJECTS) $(elements_textoverlay_DEPENDENCIES) $(EXTRA_elements_textoverlay_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/textoverlay$(EXEEXT)
 	$(AM_V_CCLD)$(elements_textoverlay_LINK) $(elements_textoverlay_OBJECTS) $(elements_textoverlay_LDADD) $(LIBS)
+
 elements/videoconvert$(EXEEXT): $(elements_videoconvert_OBJECTS) $(elements_videoconvert_DEPENDENCIES) $(EXTRA_elements_videoconvert_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videoconvert$(EXEEXT)
 	$(AM_V_CCLD)$(elements_videoconvert_LINK) $(elements_videoconvert_OBJECTS) $(elements_videoconvert_LDADD) $(LIBS)
+
 elements/videorate$(EXEEXT): $(elements_videorate_OBJECTS) $(elements_videorate_DEPENDENCIES) $(EXTRA_elements_videorate_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videorate$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_videorate_OBJECTS) $(elements_videorate_LDADD) $(LIBS)
+
 elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) $(EXTRA_elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videoscale$(EXEEXT)
 	$(AM_V_CCLD)$(elements_videoscale_LINK) $(elements_videoscale_OBJECTS) $(elements_videoscale_LDADD) $(LIBS)
+
 elements/videotestsrc$(EXEEXT): $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_DEPENDENCIES) $(EXTRA_elements_videotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/videotestsrc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_LDADD) $(LIBS)
+
 elements/volume$(EXEEXT): $(elements_volume_OBJECTS) $(elements_volume_DEPENDENCIES) $(EXTRA_elements_volume_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/volume$(EXEEXT)
 	$(AM_V_CCLD)$(elements_volume_LINK) $(elements_volume_OBJECTS) $(elements_volume_LDADD) $(LIBS)
+
 elements/vorbisdec$(EXEEXT): $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_DEPENDENCIES) $(EXTRA_elements_vorbisdec_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/vorbisdec$(EXEEXT)
 	$(AM_V_CCLD)$(elements_vorbisdec_LINK) $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_LDADD) $(LIBS)
+
 elements/vorbistag$(EXEEXT): $(elements_vorbistag_OBJECTS) $(elements_vorbistag_DEPENDENCIES) $(EXTRA_elements_vorbistag_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/vorbistag$(EXEEXT)
 	$(AM_V_CCLD)$(elements_vorbistag_LINK) $(elements_vorbistag_OBJECTS) $(elements_vorbistag_LDADD) $(LIBS)
 generic/$(am__dirstamp):
 	@$(MKDIR_P) generic
 	@: > generic/$(am__dirstamp)
+
 generic/clock-selection$(EXEEXT): $(generic_clock_selection_OBJECTS) $(generic_clock_selection_DEPENDENCIES) $(EXTRA_generic_clock_selection_DEPENDENCIES) generic/$(am__dirstamp)
 	@rm -f generic/clock-selection$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(generic_clock_selection_OBJECTS) $(generic_clock_selection_LDADD) $(LIBS)
+
 generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp)
 	@rm -f generic/states$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS)
 gst/$(am__dirstamp):
 	@$(MKDIR_P) gst
 	@: > gst/$(am__dirstamp)
+
 gst/typefindfunctions$(EXEEXT): $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_DEPENDENCIES) $(EXTRA_gst_typefindfunctions_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/typefindfunctions$(EXEEXT)
 	$(AM_V_CCLD)$(gst_typefindfunctions_LINK) $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_LDADD) $(LIBS)
 libs/$(am__dirstamp):
 	@$(MKDIR_P) libs
 	@: > libs/$(am__dirstamp)
+
 libs/audio$(EXEEXT): $(libs_audio_OBJECTS) $(libs_audio_DEPENDENCIES) $(EXTRA_libs_audio_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/audio$(EXEEXT)
 	$(AM_V_CCLD)$(libs_audio_LINK) $(libs_audio_OBJECTS) $(libs_audio_LDADD) $(LIBS)
+
 libs/audiocdsrc$(EXEEXT): $(libs_audiocdsrc_OBJECTS) $(libs_audiocdsrc_DEPENDENCIES) $(EXTRA_libs_audiocdsrc_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/audiocdsrc$(EXEEXT)
 	$(AM_V_CCLD)$(libs_audiocdsrc_LINK) $(libs_audiocdsrc_OBJECTS) $(libs_audiocdsrc_LDADD) $(LIBS)
+
 libs/discoverer$(EXEEXT): $(libs_discoverer_OBJECTS) $(libs_discoverer_DEPENDENCIES) $(EXTRA_libs_discoverer_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/discoverer$(EXEEXT)
 	$(AM_V_CCLD)$(libs_discoverer_LINK) $(libs_discoverer_OBJECTS) $(libs_discoverer_LDADD) $(LIBS)
+
 libs/fft$(EXEEXT): $(libs_fft_OBJECTS) $(libs_fft_DEPENDENCIES) $(EXTRA_libs_fft_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/fft$(EXEEXT)
 	$(AM_V_CCLD)$(libs_fft_LINK) $(libs_fft_OBJECTS) $(libs_fft_LDADD) $(LIBS)
+
 libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) $(EXTRA_libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstlibscpp$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_LDADD) $(LIBS)
+
 libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) $(EXTRA_libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/libsabi$(EXEEXT)
 	$(AM_V_CCLD)$(libs_libsabi_LINK) $(libs_libsabi_OBJECTS) $(libs_libsabi_LDADD) $(LIBS)
+
 libs/navigation$(EXEEXT): $(libs_navigation_OBJECTS) $(libs_navigation_DEPENDENCIES) $(EXTRA_libs_navigation_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/navigation$(EXEEXT)
 	$(AM_V_CCLD)$(libs_navigation_LINK) $(libs_navigation_OBJECTS) $(libs_navigation_LDADD) $(LIBS)
+
 libs/pbutils$(EXEEXT): $(libs_pbutils_OBJECTS) $(libs_pbutils_DEPENDENCIES) $(EXTRA_libs_pbutils_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/pbutils$(EXEEXT)
 	$(AM_V_CCLD)$(libs_pbutils_LINK) $(libs_pbutils_OBJECTS) $(libs_pbutils_LDADD) $(LIBS)
+
 libs/profile$(EXEEXT): $(libs_profile_OBJECTS) $(libs_profile_DEPENDENCIES) $(EXTRA_libs_profile_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/profile$(EXEEXT)
 	$(AM_V_CCLD)$(libs_profile_LINK) $(libs_profile_OBJECTS) $(libs_profile_LDADD) $(LIBS)
+
 libs/rtp$(EXEEXT): $(libs_rtp_OBJECTS) $(libs_rtp_DEPENDENCIES) $(EXTRA_libs_rtp_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/rtp$(EXEEXT)
 	$(AM_V_CCLD)$(libs_rtp_LINK) $(libs_rtp_OBJECTS) $(libs_rtp_LDADD) $(LIBS)
+
 libs/rtsp$(EXEEXT): $(libs_rtsp_OBJECTS) $(libs_rtsp_DEPENDENCIES) $(EXTRA_libs_rtsp_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/rtsp$(EXEEXT)
 	$(AM_V_CCLD)$(libs_rtsp_LINK) $(libs_rtsp_OBJECTS) $(libs_rtsp_LDADD) $(LIBS)
+
+libs/sdp$(EXEEXT): $(libs_sdp_OBJECTS) $(libs_sdp_DEPENDENCIES) $(EXTRA_libs_sdp_DEPENDENCIES) libs/$(am__dirstamp)
+	@rm -f libs/sdp$(EXEEXT)
+	$(AM_V_CCLD)$(libs_sdp_LINK) $(libs_sdp_OBJECTS) $(libs_sdp_LDADD) $(LIBS)
+
 libs/tag$(EXEEXT): $(libs_tag_OBJECTS) $(libs_tag_DEPENDENCIES) $(EXTRA_libs_tag_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/tag$(EXEEXT)
 	$(AM_V_CCLD)$(libs_tag_LINK) $(libs_tag_OBJECTS) $(libs_tag_LDADD) $(LIBS)
+
 libs/video$(EXEEXT): $(libs_video_OBJECTS) $(libs_video_DEPENDENCIES) $(EXTRA_libs_video_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/video$(EXEEXT)
 	$(AM_V_CCLD)$(libs_video_LINK) $(libs_video_OBJECTS) $(libs_video_LDADD) $(LIBS)
+
 libs/xmpwriter$(EXEEXT): $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_DEPENDENCIES) $(EXTRA_libs_xmpwriter_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/xmpwriter$(EXEEXT)
 	$(AM_V_CCLD)$(libs_xmpwriter_LINK) $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_LDADD) $(LIBS)
 orc/$(am__dirstamp):
 	@$(MKDIR_P) orc
 	@: > orc/$(am__dirstamp)
+
 orc/adder$(EXEEXT): $(orc_adder_OBJECTS) $(orc_adder_DEPENDENCIES) $(EXTRA_orc_adder_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/adder$(EXEEXT)
 	$(AM_V_CCLD)$(orc_adder_LINK) $(orc_adder_OBJECTS) $(orc_adder_LDADD) $(LIBS)
+
 orc/audio$(EXEEXT): $(orc_audio_OBJECTS) $(orc_audio_DEPENDENCIES) $(EXTRA_orc_audio_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/audio$(EXEEXT)
 	$(AM_V_CCLD)$(orc_audio_LINK) $(orc_audio_OBJECTS) $(orc_audio_LDADD) $(LIBS)
+
 orc/audioconvert$(EXEEXT): $(orc_audioconvert_OBJECTS) $(orc_audioconvert_DEPENDENCIES) $(EXTRA_orc_audioconvert_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/audioconvert$(EXEEXT)
 	$(AM_V_CCLD)$(orc_audioconvert_LINK) $(orc_audioconvert_OBJECTS) $(orc_audioconvert_LDADD) $(LIBS)
+
 orc/video$(EXEEXT): $(orc_video_OBJECTS) $(orc_video_DEPENDENCIES) $(EXTRA_orc_video_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/video$(EXEEXT)
 	$(AM_V_CCLD)$(orc_video_LINK) $(orc_video_OBJECTS) $(orc_video_LDADD) $(LIBS)
+
 orc/videoscale$(EXEEXT): $(orc_videoscale_OBJECTS) $(orc_videoscale_DEPENDENCIES) $(EXTRA_orc_videoscale_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/videoscale$(EXEEXT)
 	$(AM_V_CCLD)$(orc_videoscale_LINK) $(orc_videoscale_OBJECTS) $(orc_videoscale_LDADD) $(LIBS)
+
 orc/videotestsrc$(EXEEXT): $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_DEPENDENCIES) $(EXTRA_orc_videotestsrc_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/videotestsrc$(EXEEXT)
 	$(AM_V_CCLD)$(orc_videotestsrc_LINK) $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_LDADD) $(LIBS)
+
 orc/volume$(EXEEXT): $(orc_volume_OBJECTS) $(orc_volume_DEPENDENCIES) $(EXTRA_orc_volume_DEPENDENCIES) orc/$(am__dirstamp)
 	@rm -f orc/volume$(EXEEXT)
 	$(AM_V_CCLD)$(orc_volume_LINK) $(orc_volume_OBJECTS) $(orc_volume_LDADD) $(LIBS)
 pipelines/$(am__dirstamp):
 	@$(MKDIR_P) pipelines
 	@: > pipelines/$(am__dirstamp)
+
 pipelines/basetime$(EXEEXT): $(pipelines_basetime_OBJECTS) $(pipelines_basetime_DEPENDENCIES) $(EXTRA_pipelines_basetime_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/basetime$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_basetime_OBJECTS) $(pipelines_basetime_LDADD) $(LIBS)
+
 pipelines/capsfilter-renegotiation$(EXEEXT): $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_DEPENDENCIES) $(EXTRA_pipelines_capsfilter_renegotiation_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/capsfilter-renegotiation$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_LDADD) $(LIBS)
+
 pipelines/gio$(EXEEXT): $(pipelines_gio_OBJECTS) $(pipelines_gio_DEPENDENCIES) $(EXTRA_pipelines_gio_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/gio$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_gio_LINK) $(pipelines_gio_OBJECTS) $(pipelines_gio_LDADD) $(LIBS)
+
 pipelines/oggmux$(EXEEXT): $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_DEPENDENCIES) $(EXTRA_pipelines_oggmux_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/oggmux$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_oggmux_LINK) $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_LDADD) $(LIBS)
+
 pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) $(EXTRA_pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/simple-launch-lines$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_simple_launch_lines_LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS)
+
 pipelines/theoraenc$(EXEEXT): $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_DEPENDENCIES) $(EXTRA_pipelines_theoraenc_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/theoraenc$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_theoraenc_LINK) $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_LDADD) $(LIBS)
+
 pipelines/vorbisdec$(EXEEXT): $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_DEPENDENCIES) $(EXTRA_pipelines_vorbisdec_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/vorbisdec$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_vorbisdec_LINK) $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_LDADD) $(LIBS)
+
 pipelines/vorbisenc$(EXEEXT): $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_DEPENDENCIES) $(EXTRA_pipelines_vorbisenc_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/vorbisenc$(EXEEXT)
 	$(AM_V_CCLD)$(pipelines_vorbisenc_LINK) $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_LDADD) $(LIBS)
@@ -1585,7 +1917,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_libvisual-libvisual.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_multisocketsink-multisocketsink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin-playbin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin_compressed-playbin-compressed.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin_complex-playbin-complex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_subparse-subparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_textoverlay-textoverlay.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videoconvert-videoconvert.Po@am__quote@
@@ -1605,6 +1937,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_profile-profile.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_rtp-rtp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_rtsp-rtsp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_sdp-sdp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_tag-tag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_video-video.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_xmpwriter-xmpwriter.Po@am__quote@
@@ -1830,19 +2163,19 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
 
-elements_playbin_compressed-playbin-compressed.o: elements/playbin-compressed.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_compressed_CFLAGS) $(CFLAGS) -MT elements_playbin_compressed-playbin-compressed.o -MD -MP -MF $(DEPDIR)/elements_playbin_compressed-playbin-compressed.Tpo -c -o elements_playbin_compressed-playbin-compressed.o `test -f 'elements/playbin-compressed.c' || echo '$(srcdir)/'`elements/playbin-compressed.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin_compressed-playbin-compressed.Tpo $(DEPDIR)/elements_playbin_compressed-playbin-compressed.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin-compressed.c' object='elements_playbin_compressed-playbin-compressed.o' libtool=no @AMDEPBACKSLASH@
+elements_playbin_complex-playbin-complex.o: elements/playbin-complex.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_complex_CFLAGS) $(CFLAGS) -MT elements_playbin_complex-playbin-complex.o -MD -MP -MF $(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo -c -o elements_playbin_complex-playbin-complex.o `test -f 'elements/playbin-complex.c' || echo '$(srcdir)/'`elements/playbin-complex.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo $(DEPDIR)/elements_playbin_complex-playbin-complex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin-complex.c' object='elements_playbin_complex-playbin-complex.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_compressed_CFLAGS) $(CFLAGS) -c -o elements_playbin_compressed-playbin-compressed.o `test -f 'elements/playbin-compressed.c' || echo '$(srcdir)/'`elements/playbin-compressed.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_complex_CFLAGS) $(CFLAGS) -c -o elements_playbin_complex-playbin-complex.o `test -f 'elements/playbin-complex.c' || echo '$(srcdir)/'`elements/playbin-complex.c
 
-elements_playbin_compressed-playbin-compressed.obj: elements/playbin-compressed.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_compressed_CFLAGS) $(CFLAGS) -MT elements_playbin_compressed-playbin-compressed.obj -MD -MP -MF $(DEPDIR)/elements_playbin_compressed-playbin-compressed.Tpo -c -o elements_playbin_compressed-playbin-compressed.obj `if test -f 'elements/playbin-compressed.c'; then $(CYGPATH_W) 'elements/playbin-compressed.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin-compressed.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin_compressed-playbin-compressed.Tpo $(DEPDIR)/elements_playbin_compressed-playbin-compressed.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin-compressed.c' object='elements_playbin_compressed-playbin-compressed.obj' libtool=no @AMDEPBACKSLASH@
+elements_playbin_complex-playbin-complex.obj: elements/playbin-complex.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_complex_CFLAGS) $(CFLAGS) -MT elements_playbin_complex-playbin-complex.obj -MD -MP -MF $(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo -c -o elements_playbin_complex-playbin-complex.obj `if test -f 'elements/playbin-complex.c'; then $(CYGPATH_W) 'elements/playbin-complex.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin-complex.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin_complex-playbin-complex.Tpo $(DEPDIR)/elements_playbin_complex-playbin-complex.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/playbin-complex.c' object='elements_playbin_complex-playbin-complex.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_compressed_CFLAGS) $(CFLAGS) -c -o elements_playbin_compressed-playbin-compressed.obj `if test -f 'elements/playbin-compressed.c'; then $(CYGPATH_W) 'elements/playbin-compressed.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin-compressed.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_complex_CFLAGS) $(CFLAGS) -c -o elements_playbin_complex-playbin-complex.obj `if test -f 'elements/playbin-complex.c'; then $(CYGPATH_W) 'elements/playbin-complex.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin-complex.c'; fi`
 
 streamsynchronizer.o: elements/streamsynchronizer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT streamsynchronizer.o -MD -MP -MF $(DEPDIR)/streamsynchronizer.Tpo -c -o streamsynchronizer.o `test -f 'elements/streamsynchronizer.c' || echo '$(srcdir)/'`elements/streamsynchronizer.c
@@ -2166,6 +2499,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
 
+libs_sdp-sdp.o: libs/sdp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_sdp_CFLAGS) $(CFLAGS) -MT libs_sdp-sdp.o -MD -MP -MF $(DEPDIR)/libs_sdp-sdp.Tpo -c -o libs_sdp-sdp.o `test -f 'libs/sdp.c' || echo '$(srcdir)/'`libs/sdp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_sdp-sdp.Tpo $(DEPDIR)/libs_sdp-sdp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/sdp.c' object='libs_sdp-sdp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_sdp_CFLAGS) $(CFLAGS) -c -o libs_sdp-sdp.o `test -f 'libs/sdp.c' || echo '$(srcdir)/'`libs/sdp.c
+
+libs_sdp-sdp.obj: libs/sdp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_sdp_CFLAGS) $(CFLAGS) -MT libs_sdp-sdp.obj -MD -MP -MF $(DEPDIR)/libs_sdp-sdp.Tpo -c -o libs_sdp-sdp.obj `if test -f 'libs/sdp.c'; then $(CYGPATH_W) 'libs/sdp.c'; else $(CYGPATH_W) '$(srcdir)/libs/sdp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_sdp-sdp.Tpo $(DEPDIR)/libs_sdp-sdp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/sdp.c' object='libs_sdp-sdp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_sdp_CFLAGS) $(CFLAGS) -c -o libs_sdp-sdp.obj `if test -f 'libs/sdp.c'; then $(CYGPATH_W) 'libs/sdp.c'; else $(CYGPATH_W) '$(srcdir)/libs/sdp.c'; fi`
+
 libs_tag-tag.o: libs/tag.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -MT libs_tag-tag.o -MD -MP -MF $(DEPDIR)/libs_tag-tag.Tpo -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libs_tag-tag.Tpo $(DEPDIR)/libs_tag-tag.Po
@@ -2465,26 +2812,15 @@
 	-rm -rf orc/.libs orc/_libs
 	-rm -rf pipelines/.libs pipelines/_libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -2496,15 +2832,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -2513,102 +2845,572 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+	  fi; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
 	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
-	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      color_start= color_end=; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
-	    else \
-	      skipped="($$skip tests were not run)"; \
-	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  echo "$${col}$$dashes$${std}"; \
-	  echo "$${col}$$banner$${std}"; \
-	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
-	  test -z "$$report" || echo "$${col}$$report$${std}"; \
-	  echo "$${col}$$dashes$${std}"; \
-	  test "$$failed" -eq 0; \
-	else :; fi
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(check_PROGRAMS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+pipelines/oggmux.log: pipelines/oggmux$(EXEEXT)
+	@p='pipelines/oggmux$(EXEEXT)'; \
+	b='pipelines/oggmux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/vorbisdec.log: elements/vorbisdec$(EXEEXT)
+	@p='elements/vorbisdec$(EXEEXT)'; \
+	b='elements/vorbisdec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/vorbisenc.log: pipelines/vorbisenc$(EXEEXT)
+	@p='pipelines/vorbisenc$(EXEEXT)'; \
+	b='pipelines/vorbisenc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/vorbisdec.log: pipelines/vorbisdec$(EXEEXT)
+	@p='pipelines/vorbisdec$(EXEEXT)'; \
+	b='pipelines/vorbisdec'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/vorbistag.log: elements/vorbistag$(EXEEXT)
+	@p='elements/vorbistag$(EXEEXT)'; \
+	b='elements/vorbistag'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audioconvert.log: elements/audioconvert$(EXEEXT)
+	@p='elements/audioconvert$(EXEEXT)'; \
+	b='elements/audioconvert'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiotestsrc.log: elements/audiotestsrc$(EXEEXT)
+	@p='elements/audiotestsrc$(EXEEXT)'; \
+	b='elements/audiotestsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/decodebin.log: elements/decodebin$(EXEEXT)
+	@p='elements/decodebin$(EXEEXT)'; \
+	b='elements/decodebin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/streamsynchronizer.log: elements/streamsynchronizer$(EXEEXT)
+	@p='elements/streamsynchronizer$(EXEEXT)'; \
+	b='elements/streamsynchronizer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/encodebin.log: elements/encodebin$(EXEEXT)
+	@p='elements/encodebin$(EXEEXT)'; \
+	b='elements/encodebin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+generic/clock-selection.log: generic/clock-selection$(EXEEXT)
+	@p='generic/clock-selection$(EXEEXT)'; \
+	b='generic/clock-selection'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+generic/states.log: generic/states$(EXEEXT)
+	@p='generic/states$(EXEEXT)'; \
+	b='generic/states'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/typefindfunctions.log: gst/typefindfunctions$(EXEEXT)
+	@p='gst/typefindfunctions$(EXEEXT)'; \
+	b='gst/typefindfunctions'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/libsabi.log: libs/libsabi$(EXEEXT)
+	@p='libs/libsabi$(EXEEXT)'; \
+	b='libs/libsabi'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/audio.log: libs/audio$(EXEEXT)
+	@p='libs/audio$(EXEEXT)'; \
+	b='libs/audio'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/audiocdsrc.log: libs/audiocdsrc$(EXEEXT)
+	@p='libs/audiocdsrc$(EXEEXT)'; \
+	b='libs/audiocdsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/discoverer.log: libs/discoverer$(EXEEXT)
+	@p='libs/discoverer$(EXEEXT)'; \
+	b='libs/discoverer'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/fft.log: libs/fft$(EXEEXT)
+	@p='libs/fft$(EXEEXT)'; \
+	b='libs/fft'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/navigation.log: libs/navigation$(EXEEXT)
+	@p='libs/navigation$(EXEEXT)'; \
+	b='libs/navigation'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/pbutils.log: libs/pbutils$(EXEEXT)
+	@p='libs/pbutils$(EXEEXT)'; \
+	b='libs/pbutils'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/profile.log: libs/profile$(EXEEXT)
+	@p='libs/profile$(EXEEXT)'; \
+	b='libs/profile'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/rtp.log: libs/rtp$(EXEEXT)
+	@p='libs/rtp$(EXEEXT)'; \
+	b='libs/rtp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/rtsp.log: libs/rtsp$(EXEEXT)
+	@p='libs/rtsp$(EXEEXT)'; \
+	b='libs/rtsp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/sdp.log: libs/sdp$(EXEEXT)
+	@p='libs/sdp$(EXEEXT)'; \
+	b='libs/sdp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/tag.log: libs/tag$(EXEEXT)
+	@p='libs/tag$(EXEEXT)'; \
+	b='libs/tag'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/video.log: libs/video$(EXEEXT)
+	@p='libs/video$(EXEEXT)'; \
+	b='libs/video'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/xmpwriter.log: libs/xmpwriter$(EXEEXT)
+	@p='libs/xmpwriter$(EXEEXT)'; \
+	b='libs/xmpwriter'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+libs/gstlibscpp.log: libs/gstlibscpp$(EXEEXT)
+	@p='libs/gstlibscpp$(EXEEXT)'; \
+	b='libs/gstlibscpp'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/video.log: orc/video$(EXEEXT)
+	@p='orc/video$(EXEEXT)'; \
+	b='orc/video'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/audio.log: orc/audio$(EXEEXT)
+	@p='orc/audio$(EXEEXT)'; \
+	b='orc/audio'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/adder.log: orc/adder$(EXEEXT)
+	@p='orc/adder$(EXEEXT)'; \
+	b='orc/adder'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/audioconvert.log: orc/audioconvert$(EXEEXT)
+	@p='orc/audioconvert$(EXEEXT)'; \
+	b='orc/audioconvert'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/volume.log: orc/volume$(EXEEXT)
+	@p='orc/volume$(EXEEXT)'; \
+	b='orc/volume'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/videoscale.log: orc/videoscale$(EXEEXT)
+	@p='orc/videoscale$(EXEEXT)'; \
+	b='orc/videoscale'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+orc/videotestsrc.log: orc/videotestsrc$(EXEEXT)
+	@p='orc/videotestsrc$(EXEEXT)'; \
+	b='orc/videotestsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/simple-launch-lines.log: pipelines/simple-launch-lines$(EXEEXT)
+	@p='pipelines/simple-launch-lines$(EXEEXT)'; \
+	b='pipelines/simple-launch-lines'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/basetime.log: pipelines/basetime$(EXEEXT)
+	@p='pipelines/basetime$(EXEEXT)'; \
+	b='pipelines/basetime'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/capsfilter-renegotiation.log: pipelines/capsfilter-renegotiation$(EXEEXT)
+	@p='pipelines/capsfilter-renegotiation$(EXEEXT)'; \
+	b='pipelines/capsfilter-renegotiation'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/gio.log: pipelines/gio$(EXEEXT)
+	@p='pipelines/gio$(EXEEXT)'; \
+	b='pipelines/gio'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/appsink.log: elements/appsink$(EXEEXT)
+	@p='elements/appsink$(EXEEXT)'; \
+	b='elements/appsink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/appsrc.log: elements/appsrc$(EXEEXT)
+	@p='elements/appsrc$(EXEEXT)'; \
+	b='elements/appsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audiorate.log: elements/audiorate$(EXEEXT)
+	@p='elements/audiorate$(EXEEXT)'; \
+	b='elements/audiorate'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/audioresample.log: elements/audioresample$(EXEEXT)
+	@p='elements/audioresample$(EXEEXT)'; \
+	b='elements/audioresample'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/multifdsink.log: elements/multifdsink$(EXEEXT)
+	@p='elements/multifdsink$(EXEEXT)'; \
+	b='elements/multifdsink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/multisocketsink.log: elements/multisocketsink$(EXEEXT)
+	@p='elements/multisocketsink$(EXEEXT)'; \
+	b='elements/multisocketsink'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/playbin.log: elements/playbin$(EXEEXT)
+	@p='elements/playbin$(EXEEXT)'; \
+	b='elements/playbin'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/playbin-complex.log: elements/playbin-complex$(EXEEXT)
+	@p='elements/playbin-complex$(EXEEXT)'; \
+	b='elements/playbin-complex'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/textoverlay.log: elements/textoverlay$(EXEEXT)
+	@p='elements/textoverlay$(EXEEXT)'; \
+	b='elements/textoverlay'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/subparse.log: elements/subparse$(EXEEXT)
+	@p='elements/subparse$(EXEEXT)'; \
+	b='elements/subparse'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoconvert.log: elements/videoconvert$(EXEEXT)
+	@p='elements/videoconvert$(EXEEXT)'; \
+	b='elements/videoconvert'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videorate.log: elements/videorate$(EXEEXT)
+	@p='elements/videorate$(EXEEXT)'; \
+	b='elements/videorate'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videoscale.log: elements/videoscale$(EXEEXT)
+	@p='elements/videoscale$(EXEEXT)'; \
+	b='elements/videoscale'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/videotestsrc.log: elements/videotestsrc$(EXEEXT)
+	@p='elements/videotestsrc$(EXEEXT)'; \
+	b='elements/videotestsrc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/volume.log: elements/volume$(EXEEXT)
+	@p='elements/volume$(EXEEXT)'; \
+	b='elements/volume'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/adder.log: elements/adder$(EXEEXT)
+	@p='elements/adder$(EXEEXT)'; \
+	b='elements/adder'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+pipelines/theoraenc.log: pipelines/theoraenc$(EXEEXT)
+	@p='pipelines/theoraenc$(EXEEXT)'; \
+	b='pipelines/theoraenc'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@	@p='$<'; \
+@am__EXEEXT_TRUE@	$(am__set_b); \
+@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -2666,6 +3468,9 @@
 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 	fi
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -2756,19 +3561,20 @@
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
 	clean-checkPROGRAMS clean-generic clean-libtool clean-local \
-	clean-noinstPROGRAMS ctags distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am recheck tags tags-am uninstall \
+	uninstall-am
 
 
 # keep target around, since it's referenced in the modules' Makefiles
@@ -2781,6 +3587,8 @@
 @HAVE_VALGRIND_FALSE@check-valgrind:
 @HAVE_VALGRIND_FALSE@	@true
 
+LOOPS ?= 10
+
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
 %.check: %
@@ -2842,6 +3650,17 @@
 	--gen-suppressions=all					\
 	./$* 2>&1 | tee suppressions.log
 
+# valgrind torture any given test
+%.valgrind-torture: %
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) $*.valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind any given test until failure by running make test.valgrind-forever
 %.valgrind-forever: %
 	@while $(MAKE) $*.valgrind; do				\
@@ -2854,9 +3673,31 @@
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
 
+%.lcov-reset:
+	$(MAKE) $*.lcov-run
+	$(MAKE) $*.lcov-report
+
+%.lcov: %
+	$(MAKE) $*.lcov-reset
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-clean:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) -C $(top_builddir) lcov-clean
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-run:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) $*.lcov-clean
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) $*.check
+
+@GST_GCOV_ENABLED_TRUE@%.lcov-report:
+@GST_GCOV_ENABLED_TRUE@	$(MAKE) -C $(top_builddir) lcov-report
+@GST_GCOV_ENABLED_FALSE@%.lcov-run:
+@GST_GCOV_ENABLED_FALSE@	echo "Need to reconfigure with --enable-gcov"
+
+@GST_GCOV_ENABLED_FALSE@%.lcov-report:
+@GST_GCOV_ENABLED_FALSE@	echo "Need to reconfigure with --enable-gcov"
+
 # torture tests
 torture: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Torturing tests ..."
 	@for i in `seq 1 $(LOOPS)`; do				\
 		$(MAKE) check ||				\
@@ -2869,7 +3710,7 @@
 
 # forever tests
 forever: $(TESTS)
-	-rm test-registry.xml
+	-rm test-registry.*
 	@echo "Forever tests ..."
 	@while true; do						\
 		$(MAKE) check ||				\
@@ -2895,6 +3736,29 @@
 		false;							\
 	fi
 
+# valgrind all tests until failure
+valgrind-forever: $(TESTS)
+	-rm test-registry.*
+	@echo "Forever valgrinding tests ..."
+	@while true; do						\
+		$(MAKE) valgrind ||				\
+		(echo "Failure"; exit 1) ||			\
+		exit 1;						\
+	done
+
+# valgrind torture all tests
+valgrind-torture: $(TESTS)
+	-rm test-registry.*
+	@echo "Torturing and valgrinding tests ..."
+	@for i in `seq 1 $(LOOPS)`; do				\
+		$(MAKE) valgrind ||				\
+		(echo "Failure after $$i runs"; exit 1) ||	\
+		exit 1;						\
+	done
+	@banner="All $(LOOPS) loops passed";			\
+	dashes=`echo "$$banner" | sed s/./=/g`;			\
+	echo $$dashes; echo $$banner; echo $$dashes
+
 # valgrind all tests and generate suppressions
 valgrind.gen-suppressions: $(TESTS)
 	@echo "Valgrinding tests ..."
@@ -2931,10 +3795,13 @@
 	@echo "make (dir)/(test).gdb              -- start up gdb for the given test"
 	@echo
 	@echo "make valgrind                      -- valgrind all tests"
+	@echo "make valgrind-forever              -- valgrind all tests forever"
+	@echo "make valgrind-torture              -- valgrind all tests $(LOOPS) times"
 	@echo "make valgrind.gen-suppressions     -- generate suppressions for all tests"
 	@echo "                                      and save to suppressions.log"
 	@echo "make (dir)/(test).valgrind         -- valgrind the given test"
 	@echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever"
+	@echo "make (dir)/(test).valgrind-torture -- valgrind the given test $(LOOPS) times"
 	@echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions"
 	@echo "                                               and save to suppressions.log"
 	@echo "make inspect                       -- inspect all plugin features"
diff --git a/tests/check/elements/adder.c b/tests/check/elements/adder.c
index 19b83e7..3aa19ce 100644
--- a/tests/check/elements/adder.c
+++ b/tests/check/elements/adder.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -282,6 +282,7 @@
   gst_consistency_checker_free (chk_1);
   gst_consistency_checker_free (chk_2);
   gst_consistency_checker_free (chk_3);
+  gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
 }
@@ -417,6 +418,7 @@
   g_main_loop_unref (main_loop);
   gst_consistency_checker_free (consist);
   gst_event_ref (play_seek_event);
+  gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
 }
@@ -523,6 +525,7 @@
   g_main_loop_unref (main_loop);
   gst_event_ref (play_seek_event);
   gst_consistency_checker_free (consist);
+  gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
 }
@@ -547,17 +550,45 @@
   }
 }
 
+static GstElement *
+test_live_seeking_try_audiosrc (const gchar * factory_name)
+{
+  GstElement *src;
+  GstStateChangeReturn state_res;
+
+  if (!(src = gst_element_factory_make (factory_name, NULL))) {
+    GST_INFO ("can't make '%s', skipping", factory_name);
+    return NULL;
+  }
+
+  /* Test that the audio source can get to ready, else skip */
+  state_res = gst_element_set_state (src, GST_STATE_READY);
+  gst_element_set_state (src, GST_STATE_NULL);
+
+  if (state_res == GST_STATE_CHANGE_FAILURE) {
+    GST_INFO_OBJECT (src, "can't go to ready, skipping");
+    gst_object_unref (src);
+    return NULL;
+  }
+
+  return src;
+}
 
 /* test failing seeks on live-sources */
 GST_START_TEST (test_live_seeking)
 {
-  GstElement *bin, *src1, *src2, *ac1, *ac2, *adder, *sink;
+  GstElement *bin, *src1 = NULL, *src2, *ac1, *ac2, *adder, *sink;
   GstBus *bus;
   gboolean res;
-  GstStateChangeReturn state_res;
   GstPad *srcpad;
   gint i;
+  GstStateChangeReturn state_res;
   GstStreamConsistency *consist;
+  /* don't use autoaudiosrc, as then we can't set anything here */
+  const gchar *audio_src_factories[] = {
+    "alsasrc",
+    "pulseaudiosrc"
+  };
 
   GST_INFO ("preparing test");
   main_loop = NULL;
@@ -568,29 +599,20 @@
   bus = gst_element_get_bus (bin);
   gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
 
-  /* normal audiosources behave differently than audiotestsrc */
-#if 0
-  src1 = gst_element_factory_make ("audiotestsrc", "src1");
-  g_object_set (src1, "wave", 4, "is-live", TRUE, NULL);        /* silence */
-#else
-  src1 = gst_element_factory_make ("alsasrc", "src1");
-  if (!src1) {
-    GST_INFO ("no audiosrc, skipping");
-    goto cleanup;
+  for (i = 0; (i < G_N_ELEMENTS (audio_src_factories) && src1 == NULL); i++) {
+    src1 = test_live_seeking_try_audiosrc (audio_src_factories[i]);
   }
-  /* Test that the audio source can get to paused, else skip */
-  state_res = gst_element_set_state (src1, GST_STATE_PAUSED);
-  (void) gst_element_set_state (src1, GST_STATE_NULL);
-  gst_object_unref (src1);
+  if (!src1) {
+    /* normal audiosources behave differently than audiotestsrc */
+    src1 = gst_element_factory_make ("audiotestsrc", "src1");
+    g_object_set (src1, "wave", 4, "is-live", TRUE, NULL);      /* silence */
+  } else {
+    /* live sources ignore seeks, force eos after 2 sec (4 buffers half second
+     * each)
+     */
+    g_object_set (src1, "num-buffers", 4, "blocksize", 44100, NULL);
+  }
 
-  if (state_res == GST_STATE_CHANGE_FAILURE)
-    goto cleanup;
-  src1 = gst_element_factory_make ("alsasrc", "src1");
-
-  /* live sources ignore seeks, force eos after 2 sec (4 buffers half second
-   * each) - don't use autoaudiosrc, as then we can't set anything here */
-  g_object_set (src1, "num-buffers", 4, "blocksize", 44100, NULL);
-#endif
   ac1 = gst_element_factory_make ("audioconvert", "ac1");
   src2 = gst_element_factory_make ("audiotestsrc", "src2");
   g_object_set (src2, "wave", 4, NULL); /* silence */
@@ -643,12 +665,7 @@
     ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
 
     res = gst_element_send_event (bin, gst_event_ref (play_seek_event));
-#if 1
     fail_unless (res == TRUE, NULL);
-#else
-    /* adder is picky, if a single seek fails it totally fails */
-    fail_unless (res == FALSE, NULL);
-#endif
 
     GST_INFO ("seeked");
 
@@ -667,7 +684,6 @@
   }
 
   /* cleanup */
-cleanup:
   GST_INFO ("cleaning up");
   if (main_loop)
     g_main_loop_unref (main_loop);
@@ -755,6 +771,7 @@
 
   /* cleanup */
   g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
 }
@@ -836,6 +853,7 @@
 
   /* cleanup */
   g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
   gst_object_unref (G_OBJECT (bus));
   gst_object_unref (G_OBJECT (bin));
 }
@@ -896,13 +914,7 @@
   sinkpad = gst_element_get_request_pad (adder, "sink_%u");
   fail_if (sinkpad == NULL, NULL);
 
-  /* send segment to adder */
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  segment.start = GST_SECOND;
-  segment.stop = 2 * GST_SECOND;
-  segment.time = 0;
-  event = gst_event_new_segment (&segment);
-  gst_pad_send_event (sinkpad, event);
+  gst_pad_send_event (sinkpad, gst_event_new_stream_start ("test"));
 
   caps = gst_caps_new_simple ("audio/x-raw",
 #if G_BYTE_ORDER == G_BIG_ENDIAN
@@ -916,6 +928,14 @@
   gst_pad_set_caps (sinkpad, caps);
   gst_caps_unref (caps);
 
+  /* send segment to adder */
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  segment.start = GST_SECOND;
+  segment.stop = 2 * GST_SECOND;
+  segment.time = 0;
+  event = gst_event_new_segment (&segment);
+  gst_pad_send_event (sinkpad, event);
+
   /* should be clipped and ok */
   buffer = gst_buffer_new_and_alloc (44100);
   GST_BUFFER_TIMESTAMP (buffer) = 0;
@@ -953,6 +973,12 @@
   ret = gst_pad_chain (sinkpad, buffer);
   ck_assert_int_eq (ret, GST_FLOW_OK);
   fail_unless (handoff_buffer == NULL);
+
+  gst_object_unref (sinkpad);
+  gst_element_set_state (bin, GST_STATE_NULL);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
 }
 
 GST_END_TEST;
@@ -1070,6 +1096,158 @@
 GST_END_TEST;
 
 
+static gboolean looped = FALSE;
+
+static void
+loop_segment_done (GstBus * bus, GstMessage * message, GstElement * bin)
+{
+  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
+      GST_MESSAGE_SRC (message), message);
+
+  if (looped) {
+    g_main_loop_quit (main_loop);
+  } else {
+    GstEvent *seek_event;
+    gboolean res;
+
+    seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+        GST_SEEK_FLAG_SEGMENT,
+        GST_SEEK_TYPE_SET, (GstClockTime) 0,
+        GST_SEEK_TYPE_SET, (GstClockTime) 1 * GST_SECOND);
+
+    res = gst_element_send_event (bin, seek_event);
+    fail_unless (res == TRUE, NULL);
+    looped = TRUE;
+  }
+}
+
+GST_START_TEST (test_loop)
+{
+  GstElement *bin, *src1, *src2, *adder, *sink;
+  GstBus *bus;
+  GstEvent *seek_event;
+  GstStateChangeReturn state_res;
+  gboolean res;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = gst_element_factory_make ("audiotestsrc", "src1");
+  g_object_set (src1, "wave", 4, NULL); /* silence */
+  src2 = gst_element_factory_make ("audiotestsrc", "src2");
+  g_object_set (src2, "wave", 4, NULL); /* silence */
+  adder = gst_element_factory_make ("adder", "adder");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, src2, adder, sink, NULL);
+
+  res = gst_element_link (src1, adder);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (src2, adder);
+  fail_unless (res == TRUE, NULL);
+  res = gst_element_link (adder, sink);
+  fail_unless (res == TRUE, NULL);
+
+  seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
+      GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH,
+      GST_SEEK_TYPE_SET, (GstClockTime) 0,
+      GST_SEEK_TYPE_SET, (GstClockTime) 1 * GST_SECOND);
+
+  main_loop = g_main_loop_new (NULL, FALSE);
+  g_signal_connect (bus, "message::segment-done",
+      (GCallback) loop_segment_done, bin);
+  g_signal_connect (bus, "message::error", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::warning", (GCallback) message_received, bin);
+  g_signal_connect (bus, "message::eos", (GCallback) message_received, bin);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  /* wait for completion */
+  state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  res = gst_element_send_event (bin, seek_event);
+  fail_unless (res == TRUE, NULL);
+
+  /* run pipeline */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
+
+  GST_INFO ("running main loop");
+  g_main_loop_run (main_loop);
+
+  state_res = gst_element_set_state (bin, GST_STATE_NULL);
+
+  /* cleanup */
+  g_main_loop_unref (main_loop);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_flush_start_flush_stop)
+{
+  GstPadTemplate *sink_template;
+  GstPad *tmppad, *sinkpad1, *sinkpad2, *adder_src;
+  GstElement *pipeline, *src1, *src2, *adder, *sink;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  pipeline = gst_pipeline_new ("pipeline");
+  src1 = gst_element_factory_make ("audiotestsrc", "src1");
+  g_object_set (src1, "wave", 4, NULL); /* silence */
+  src2 = gst_element_factory_make ("audiotestsrc", "src2");
+  g_object_set (src2, "wave", 4, NULL); /* silence */
+  adder = gst_element_factory_make ("adder", "adder");
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (pipeline), src1, src2, adder, sink, NULL);
+
+  sink_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (adder),
+      "sink_%u");
+  fail_unless (GST_IS_PAD_TEMPLATE (sink_template));
+  sinkpad1 = gst_element_request_pad (adder, sink_template, NULL, NULL);
+  tmppad = gst_element_get_static_pad (src1, "src");
+  gst_pad_link (tmppad, sinkpad1);
+  gst_object_unref (tmppad);
+
+  sinkpad2 = gst_element_request_pad (adder, sink_template, NULL, NULL);
+  tmppad = gst_element_get_static_pad (src2, "src");
+  gst_pad_link (tmppad, sinkpad2);
+  gst_object_unref (tmppad);
+
+  gst_element_link (adder, sink);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+  fail_unless (gst_element_get_state (pipeline, NULL, NULL,
+          GST_CLOCK_TIME_NONE) == GST_STATE_CHANGE_SUCCESS);
+
+  adder_src = gst_element_get_static_pad (adder, "src");
+  fail_if (GST_PAD_IS_FLUSHING (adder_src));
+  gst_pad_send_event (sinkpad1, gst_event_new_flush_start ());
+  fail_unless (GST_PAD_IS_FLUSHING (adder_src));
+  gst_pad_send_event (sinkpad1, gst_event_new_flush_stop (TRUE));
+  fail_if (GST_PAD_IS_FLUSHING (adder_src));
+  gst_object_unref (adder_src);
+
+  /* cleanup */
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 adder_suite (void)
 {
@@ -1082,12 +1260,14 @@
   tcase_add_test (tc_chain, test_event);
   tcase_add_test (tc_chain, test_play_twice);
   tcase_add_test (tc_chain, test_play_twice_then_add_and_play_again);
-  tcase_skip_broken_test (tc_chain, test_live_seeking);
+  tcase_add_test (tc_chain, test_live_seeking);
   tcase_add_test (tc_chain, test_add_pad);
   tcase_add_test (tc_chain, test_remove_pad);
   tcase_add_test (tc_chain, test_clip);
   tcase_add_test (tc_chain, test_duration_is_max);
   tcase_add_test (tc_chain, test_duration_unknown_overrides);
+  tcase_add_test (tc_chain, test_loop);
+  tcase_add_test (tc_chain, test_flush_start_flush_stop);
 
   /* Use a longer timeout */
 #ifdef HAVE_VALGRIND
diff --git a/tests/check/elements/appsink.c b/tests/check/elements/appsink.c
index bf61022..519525f 100644
--- a/tests/check/elements/appsink.c
+++ b/tests/check/elements/appsink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -35,12 +35,17 @@
 setup_appsink (void)
 {
   GstElement *appsink;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_appsink");
   appsink = gst_check_setup_element ("appsink");
   mysrcpad = gst_check_setup_src_pad (appsink, &srctemplate);
   gst_pad_set_active (mysrcpad, TRUE);
 
+  caps = gst_caps_new_empty_simple ("application/x-gst-check");
+  gst_check_setup_events (mysrcpad, appsink, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   return appsink;
 }
 
@@ -81,16 +86,12 @@
 {
   GstElement *sink;
   GstBuffer *buffer;
-  GstCaps *caps;
 
   sink = setup_appsink ();
 
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
-  caps = gst_caps_from_string ("application/x-gst-check");
   buffer = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
 
   GST_DEBUG ("cleaning up appsink");
@@ -105,7 +106,6 @@
 {
   GstElement *sink;
   GstBuffer *buffer;
-  GstCaps *caps;
   gint testdata;
   GstAppSinkCallbacks callbacks = { NULL };
 
@@ -120,10 +120,7 @@
 
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
-  caps = gst_caps_from_string ("application/x-gst-check");
   buffer = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (mysrcpad, caps);
-  gst_caps_unref (caps);
   /* Pushing a buffer should run our callback */
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
 
@@ -196,23 +193,18 @@
 
 GST_END_TEST;
 
-static GstBufferList *mylist;
-static GstCaps *mycaps;
-
-static gint values[] = { 1, 2, 4 };
+static const gint values[] = { 1, 2, 4 };
 
 static GstBufferList *
 create_buffer_list (void)
 {
   guint len;
   GstBuffer *buffer;
+  GstBufferList *mylist;
 
   mylist = gst_buffer_list_new ();
   fail_if (mylist == NULL);
 
-  mycaps = gst_caps_from_string ("application/x-gst-check");
-  fail_if (mycaps == NULL);
-
   len = gst_buffer_list_length (mylist);
   fail_if (len != 0);
 
@@ -228,9 +220,6 @@
   gst_buffer_fill (buffer, 0, &values[2], sizeof (gint));
   gst_buffer_list_add (mylist, buffer);
 
-  gst_pad_set_caps (mysrcpad, mycaps);
-  gst_caps_unref (mycaps);
-
   return mylist;
 }
 
diff --git a/tests/check/elements/appsrc.c b/tests/check/elements/appsrc.c
index 7a677f1..541f481 100644
--- a/tests/check/elements/appsrc.c
+++ b/tests/check/elements/appsrc.c
@@ -14,12 +14,13 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
 #include <gst/app/gstappsrc.h>
+#include <gst/app/gstappsink.h>
 
 #define SAMPLE_CAPS "application/x-gst-check-test"
 
@@ -110,6 +111,158 @@
 
 GST_END_TEST;
 
+static GstAppSinkCallbacks app_callbacks;
+
+typedef struct
+{
+  GMainLoop *loop;
+  GstElement *source;
+  GstElement *sink;
+} ProgramData;
+
+static GstFlowReturn
+on_new_sample_from_source (GstAppSink * elt, gpointer user_data)
+{
+  ProgramData *data = (ProgramData *) user_data;
+  GstSample *sample;
+  GstBuffer *buffer;
+  GstElement *source;
+
+  sample = gst_app_sink_pull_sample (GST_APP_SINK (elt));
+  buffer = gst_sample_get_buffer (sample);
+  source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
+  gst_app_src_push_buffer (GST_APP_SRC (source), gst_buffer_ref (buffer));
+  gst_sample_unref (sample);
+  g_object_unref (source);
+  return GST_FLOW_OK;
+}
+
+/* called when we get a GstMessage from the source pipeline when we get EOS, we
+ * notify the appsrc of it. */
+static gboolean
+on_source_message (GstBus * bus, GstMessage * message, ProgramData * data)
+{
+  GstElement *source;
+
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_EOS:
+      source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
+      fail_unless (gst_app_src_end_of_stream (GST_APP_SRC (source)) ==
+          GST_FLOW_OK);
+      break;
+    case GST_MESSAGE_ERROR:
+      g_main_loop_quit (data->loop);
+      break;
+    default:
+      break;
+  }
+  return TRUE;
+}
+
+static gboolean
+on_sink_message (GstBus * bus, GstMessage * message, ProgramData * data)
+{
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_EOS:
+      g_main_loop_quit (data->loop);
+      break;
+    case GST_MESSAGE_ERROR:
+      ASSERT_SET_STATE (data->sink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+      ASSERT_SET_STATE (data->source, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+      g_main_loop_quit (data->loop);
+      break;
+    default:
+      break;
+  }
+  return TRUE;
+}
+
+static gboolean
+error_timeout (ProgramData * data)
+{
+  GstBus *bus;
+  bus = gst_element_get_bus (data->sink);
+  gst_bus_post (bus, gst_message_new_error (GST_OBJECT (data->sink), NULL,
+          "test error"));
+  gst_object_unref (bus);
+  return FALSE;
+}
+
+/*
+ * appsink => appsrc pipelines executed 100 times: 
+ * - appsink pipeline has sync=false
+ * - appsrc pipeline has sync=true
+ * - appsrc has block=true
+ * after 1 second an error message is posted on appsink pipeline bus
+ * when the error is received the appsrc pipeline is set to NULL
+ * and then the appsink pipeline is
+ * set to NULL too, this must not deadlock 
+ */
+
+GST_START_TEST (test_appsrc_block_deadlock)
+{
+  int i = 0;
+  int num_iteration = 100;
+  while (i < num_iteration) {
+    ProgramData *data = NULL;
+    GstBus *bus = NULL;
+    GstElement *testsink = NULL;
+
+    gint tout;
+
+    data = g_new0 (ProgramData, 1);
+
+    data->loop = g_main_loop_new (NULL, FALSE);
+
+    data->source =
+        gst_parse_launch ("videotestsrc ! appsink sync=false name=testsink",
+        NULL);
+
+    fail_unless (data->source != NULL);
+
+    bus = gst_element_get_bus (data->source);
+    gst_bus_add_watch (bus, (GstBusFunc) on_source_message, data);
+    gst_object_unref (bus);
+
+    app_callbacks.new_sample = on_new_sample_from_source;
+    testsink = gst_bin_get_by_name (GST_BIN (data->source), "testsink");
+    gst_app_sink_set_callbacks (GST_APP_SINK_CAST (testsink), &app_callbacks,
+        data, NULL);
+
+    gst_object_unref (testsink);
+
+    data->sink =
+        gst_parse_launch
+        ("appsrc name=testsource block=1 max-bytes=1000 is-live=true ! fakesink sync=true",
+        NULL);
+
+    fail_unless (data->sink != NULL);
+
+    bus = gst_element_get_bus (data->sink);
+    gst_bus_add_watch (bus, (GstBusFunc) on_sink_message, data);
+    gst_object_unref (bus);
+
+    tout = g_timeout_add (150, (GSourceFunc) error_timeout, data);
+
+    ASSERT_SET_STATE (data->sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+    ASSERT_SET_STATE (data->source, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+
+    g_main_loop_run (data->loop);
+
+    ASSERT_SET_STATE (data->sink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+    ASSERT_SET_STATE (data->source, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+
+    g_source_remove (tout);
+    gst_object_unref (data->source);
+    gst_object_unref (data->sink);
+    g_main_loop_unref (data->loop);
+    g_free (data);
+    i++;
+    GST_INFO ("appsrc deadlock test iteration number %d/%d", i, num_iteration);
+  }
+}
+
+GST_END_TEST;
 
 static Suite *
 appsrc_suite (void)
@@ -118,7 +271,9 @@
   TCase *tc_chain = tcase_create ("general");
 
   tcase_add_test (tc_chain, test_appsrc_non_null_caps);
+  tcase_add_test (tc_chain, test_appsrc_block_deadlock);
 
+  tcase_set_timeout (tc_chain, 20);
   suite_add_tcase (s, tc_chain);
 
   return s;
diff --git a/tests/check/elements/audioconvert.c b/tests/check/elements/audioconvert.c
index 47ffb0b..ff21d9f 100644
--- a/tests/check/elements/audioconvert.c
+++ b/tests/check/elements/audioconvert.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -43,22 +43,25 @@
     "rate = (int) [ 1, MAX ], " \
     "channels = (int) [ 1, MAX ]"
 
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (CONVERT_CAPS_TEMPLATE_STRING)
-    );
-static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (CONVERT_CAPS_TEMPLATE_STRING)
-    );
-
 /* takes over reference for outcaps */
 static GstElement *
 setup_audioconvert (GstCaps * outcaps)
 {
+  GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (CONVERT_CAPS_TEMPLATE_STRING)
+      );
+  GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (CONVERT_CAPS_TEMPLATE_STRING)
+      );
   GstElement *audioconvert;
+  gchar *caps_str;
+
+  caps_str = gst_caps_to_string (outcaps);
+  sinktemplate.static_caps.string = caps_str;
 
   GST_DEBUG ("setup_audioconvert with caps %" GST_PTR_FORMAT, outcaps);
   audioconvert = gst_check_setup_element ("audioconvert");
@@ -73,11 +76,7 @@
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
 
-  gst_pad_set_caps (mysinkpad, outcaps);
-  gst_caps_unref (outcaps);
-  outcaps = gst_pad_get_current_caps (mysinkpad);
-  fail_unless (gst_caps_is_fixed (outcaps));
-  gst_caps_unref (outcaps);
+  g_free (caps_str);
 
   return audioconvert;
 }
@@ -420,7 +419,7 @@
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
-  gst_pad_set_caps (mysrcpad, incaps);
+  gst_check_setup_events (mysrcpad, audioconvert, incaps, GST_FORMAT_TIME);
 
   GST_DEBUG ("Creating buffer of %d bytes", inlength);
   inbuffer = gst_buffer_new_and_alloc (inlength);
@@ -1447,15 +1446,18 @@
     "rate = (int) [ 1, MAX ], " \
     "channels = (int) [ 1, MAX ]"
 
-static GstStaticPadTemplate simple_sinktemplate =
-GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (SIMPLE_CAPS_TEMPLATE_STRING)
-    );
-
 GST_START_TEST (test_preserve_width)
 {
+  GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (SIMPLE_CAPS_TEMPLATE_STRING)
+      );
+  GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (CONVERT_CAPS_TEMPLATE_STRING)
+      );
   static const struct _test_formats
   {
     int width;
@@ -1474,7 +1476,7 @@
 
   audioconvert = gst_check_setup_element ("audioconvert");
   mysrcpad = gst_check_setup_src_pad (audioconvert, &srctemplate);
-  mysinkpad = gst_check_setup_sink_pad (audioconvert, &simple_sinktemplate);
+  mysinkpad = gst_check_setup_sink_pad (audioconvert, &sinktemplate);
 
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
diff --git a/tests/check/elements/audiorate.c b/tests/check/elements/audiorate.c
index 53d66d3..f7bfc58 100644
--- a/tests/check/elements/audiorate.c
+++ b/tests/check/elements/audiorate.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -419,6 +419,9 @@
   sinkpad = gst_check_setup_sink_pad (audiorate, &sinktemplate);
 
   gst_pad_set_active (srcpad, TRUE);
+
+  gst_check_setup_events (srcpad, audiorate, caps, GST_FORMAT_TIME);
+
   gst_pad_set_active (sinkpad, TRUE);
 
   fail_unless (gst_element_set_state (audiorate,
@@ -426,7 +429,6 @@
       "failed to set audiorate playing");
 
   buf = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (srcpad, caps);
   GST_BUFFER_TIMESTAMP (buf) = 0;
   gst_pad_push (srcpad, buf);
 
diff --git a/tests/check/elements/audioresample.c b/tests/check/elements/audioresample.c
index 1bb5633..4882f8e 100644
--- a/tests/check/elements/audioresample.c
+++ b/tests/check/elements/audioresample.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -51,24 +51,24 @@
     "rate = (int) [ 1,  MAX ], "        \
     "layout = (string) interleaved"
 
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (RESAMPLE_CAPS)
-    );
-static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (RESAMPLE_CAPS)
-    );
-
 static GstElement *
 setup_audioresample (int channels, guint64 mask, int inrate, int outrate,
     const gchar * format)
 {
+  GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (RESAMPLE_CAPS)
+      );
+  GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (RESAMPLE_CAPS)
+      );
   GstElement *audioresample;
   GstCaps *caps;
   GstStructure *structure;
+  gchar *caps_str;
 
   GST_DEBUG ("setup_audioresample");
   audioresample = gst_check_setup_element ("audioresample");
@@ -86,7 +86,7 @@
 
   mysrcpad = gst_check_setup_src_pad (audioresample, &srctemplate);
   gst_pad_set_active (mysrcpad, TRUE);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, audioresample, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
 
   caps = gst_caps_from_string (RESAMPLE_CAPS);
@@ -94,15 +94,16 @@
   gst_structure_set (structure, "channels", G_TYPE_INT, channels,
       "rate", G_TYPE_INT, outrate, "format", G_TYPE_STRING, format, NULL);
   fail_unless (gst_caps_is_fixed (caps));
+  caps_str = gst_caps_to_string (caps);
+  sinktemplate.static_caps.string = caps_str;
 
   mysinkpad = gst_check_setup_sink_pad (audioresample, &sinktemplate);
   gst_pad_set_active (mysinkpad, TRUE);
   /* this installs a getcaps func that will always return the caps we set
    * later */
-  gst_pad_set_caps (mysinkpad, caps);
   gst_pad_use_fixed_caps (mysinkpad);
 
-
+  g_free (caps_str);
   gst_caps_unref (caps);
 
   return audioresample;
@@ -633,6 +634,9 @@
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
 
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+
   fail_if (messages > 0, "Received imperfect timestamp messages");
   gst_object_unref (pipeline);
 }
@@ -882,6 +886,9 @@
   fail_unless (gst_element_set_state (pipeline,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
   g_main_loop_unref (loop);
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+
   gst_object_unref (pipeline);
 
 } GST_END_TEST;
@@ -1005,14 +1012,11 @@
 {
   GstElement *audioresample;
   GstBuffer *inbuffer, *outbuffer;
-  GstCaps *caps;
   const int nsamples = 2048;
 
   audioresample = setup_audioresample (1, 0, inrate, outrate, format);
   fail_unless (audioresample != NULL);
   g_object_set (audioresample, "quality", quality, NULL);
-  caps = gst_pad_get_current_caps (mysrcpad);
-  fail_unless (gst_caps_is_fixed (caps));
 
   fail_unless (gst_element_set_state (audioresample,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
@@ -1021,7 +1025,6 @@
   inbuffer = gst_buffer_new_and_alloc (nsamples * width / 8);
   GST_BUFFER_DURATION (inbuffer) = GST_FRAMES_TO_CLOCK_TIME (nsamples, inrate);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
-  gst_pad_set_caps (mysrcpad, caps);
 
   (*init) (inbuffer);
 
@@ -1042,7 +1045,6 @@
   (*compare_ffts) (inbuffer, outbuffer);
 
   /* cleanup */
-  gst_caps_unref (caps);
   cleanup_audioresample (audioresample);
 }
 
diff --git a/tests/check/elements/audiotestsrc.c b/tests/check/elements/audiotestsrc.c
index 499bae3..5023772 100644
--- a/tests/check/elements/audiotestsrc.c
+++ b/tests/check/elements/audiotestsrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/elements/decodebin.c b/tests/check/elements/decodebin.c
index ecf8a9d..57e5eeb 100644
--- a/tests/check/elements/decodebin.c
+++ b/tests/check/elements/decodebin.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/elements/encodebin.c b/tests/check/elements/encodebin.c
index e835dd2..b896462 100644
--- a/tests/check/elements/encodebin.c
+++ b/tests/check/elements/encodebin.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -90,6 +90,23 @@
   return prof;
 }
 
+static void
+_caps_match (GstPad * sinkpad, const gchar * capsname)
+{
+  GstCaps *caps, *sinkcaps;
+  gchar *name;
+
+  caps = gst_caps_from_string (capsname);
+  sinkcaps = gst_pad_query_caps (sinkpad, NULL);
+  fail_unless (sinkcaps != NULL);
+  name = gst_caps_to_string (sinkcaps);
+  fail_unless (gst_caps_is_subset (sinkcaps, caps),
+      "caps ('%s') are not a subset of ('%s')", name, capsname);
+  g_free (name);
+  gst_caps_unref (sinkcaps);
+  gst_caps_unref (caps);
+}
+
 GST_START_TEST (test_encodebin_states)
 {
   GstElement *ebin;
@@ -188,6 +205,8 @@
   /* Check if the audio sink pad was properly created */
   sinkpad = gst_element_get_static_pad (ebin, "audio_0");
   fail_unless (sinkpad != NULL);
+  /* Check caps match */
+  _caps_match (sinkpad, "audio/x-raw;audio/x-vorbis");
   gst_object_unref (sinkpad);
 
   /* Set back to NULL */
@@ -199,6 +218,54 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_encodebin_preset)
+{
+  GstElement *ebin;
+  guint64 max_delay = 0;
+  GstPreset *oggmuxpreset;
+  GstEncodingProfile *prof;
+
+  /* Create an encodebin with a bogus preset and check it fails switching states */
+
+  ebin = gst_element_factory_make ("encodebin", NULL);
+  oggmuxpreset = GST_PRESET (gst_element_factory_make ("oggmux", NULL));
+
+  /* streamprofile that has a forced presence of 1 */
+  prof = create_ogg_vorbis_profile (1, NULL);
+  /* We also set the name as the load_preset call will reset the element name to
+   * what is described in the preset... which might not be very smart tbh */
+  g_object_set (oggmuxpreset, "max-delay", (guint64) 12, "name",
+      "testingoggmux", NULL);
+
+  /* Give a name someone should never use outside of that test */
+  gst_preset_save_preset (oggmuxpreset, "test_encodebin_preset");
+
+  gst_encoding_profile_set_preset (prof, "test_encodebin_preset");
+  gst_encoding_profile_set_preset_name (prof, "oggmux");
+
+  g_object_set (ebin, "profile", prof, NULL);
+
+  gst_encoding_profile_unref (prof);
+
+  /* It will go to READY... */
+  fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  /* ... and to PAUSED */
+  fail_unless (gst_element_set_state (ebin, GST_STATE_PAUSED) !=
+      GST_STATE_CHANGE_FAILURE);
+
+  gst_child_proxy_get (GST_CHILD_PROXY (ebin), "testingoggmux::max-delay",
+      &max_delay, NULL);
+  fail_unless_equals_uint64 (max_delay, 12);
+
+  gst_element_set_state (ebin, GST_STATE_NULL);
+  gst_preset_delete_preset (oggmuxpreset, "test_encodebin_preset");
+
+  gst_object_unref (ebin);
+};
+
+GST_END_TEST;
+
 GST_START_TEST (test_encodebin_sink_pads_nopreset_static)
 {
   GstElement *ebin;
@@ -256,6 +323,7 @@
   /* Check if the audio sink pad can be requested */
   sinkpad = gst_element_get_request_pad (ebin, "audio_0");
   fail_unless (sinkpad != NULL);
+  _caps_match (sinkpad, "audio/x-raw;audio/x-vorbis");
   gst_element_release_request_pad (ebin, sinkpad);
   gst_object_unref (sinkpad);
   sinkpad = NULL;
@@ -265,6 +333,7 @@
   g_signal_emit_by_name (ebin, "request-pad", sinkcaps, &sinkpad);
   gst_caps_unref (sinkcaps);
   fail_unless (sinkpad != NULL);
+  _caps_match (sinkpad, "audio/x-raw;audio/x-vorbis");
   gst_element_release_request_pad (ebin, sinkpad);
   gst_object_unref (sinkpad);
   sinkpad = NULL;
@@ -309,11 +378,13 @@
   /* Check if the audio sink pad was properly created */
   sinkpadvorbis = gst_element_get_static_pad (ebin, "audio_0");
   fail_unless (sinkpadvorbis != NULL);
+  _caps_match (sinkpadvorbis, "audio/x-raw;audio/x-vorbis");
   gst_object_unref (sinkpadvorbis);
 
   /* Check if the video sink pad was properly created */
   sinkpadtheora = gst_element_get_static_pad (ebin, "video_1");
   fail_unless (sinkpadtheora != NULL);
+  _caps_match (sinkpadtheora, "video/x-raw;video/x-theora");
   gst_object_unref (sinkpadtheora);
 
   /* Set back to NULL */
@@ -350,10 +421,12 @@
 
   /* Check if the audio sink pad was properly created */
   sinkpadvorbis = gst_element_get_request_pad (ebin, "audio_0");
+  _caps_match (sinkpadvorbis, "audio/x-raw;audio/x-vorbis");
   fail_unless (sinkpadvorbis != NULL);
 
   /* Check if the video sink pad was properly created */
   sinkpadtheora = gst_element_get_request_pad (ebin, "video_1");
+  _caps_match (sinkpadtheora, "video/x-raw;video/x-theora");
   fail_unless (sinkpadtheora != NULL);
 
   fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_PAUSED),
@@ -402,6 +475,7 @@
   g_signal_emit_by_name (ebin, "request-pad", vorbiscaps, &sinkpad);
   gst_caps_unref (vorbiscaps);
   fail_unless (sinkpad != NULL);
+  _caps_match (sinkpad, "audio/x-raw;audio/x-vorbis");
   gst_element_release_request_pad (ebin, sinkpad);
   gst_object_unref (sinkpad);
 
@@ -574,6 +648,7 @@
 
   sinkpad = gst_element_get_request_pad (ebin, "audio_0");
   fail_unless (sinkpad != NULL);
+  _caps_match (sinkpad, "audio/x-raw;audio/x-vorbis");
 
   fail_unless_equals_int (gst_pad_link (srcpad, sinkpad), GST_PAD_LINK_OK);
 
@@ -714,11 +789,13 @@
   sinkpad1 = gst_element_get_request_pad (ebin, "audio_0");
   fail_unless (srcpad != NULL);
   fail_unless (sinkpad1 != NULL);
+  _caps_match (sinkpad1, "audio/x-raw;audio/x-vorbis");
   fail_unless_equals_int (gst_pad_link (srcpad, sinkpad1), GST_PAD_LINK_OK);
   gst_object_unref (srcpad);
 
   srcpad = gst_element_get_static_pad (videotestsrc, "src");
   sinkpad2 = gst_element_get_request_pad (ebin, "video_1");
+  _caps_match (sinkpad2, "video/x-raw;video/x-theora");
   fail_unless_equals_int (gst_pad_link (srcpad, sinkpad2), GST_PAD_LINK_OK);
   gst_object_unref (srcpad);
 
@@ -873,6 +950,75 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_encodebin_named_requests)
+{
+  GstElement *ebin;
+  GstEncodingContainerProfile *cprof;
+  GstCaps *ogg, *vorbis, *theora;
+  GstEncodingProfile *vorbisprof, *theoraprof;
+  GstPad *srcpad, *sinkpadvorbis, *sinkpadtheora;
+
+  /* Create a profile with vorbis/theora named profile */
+  ogg = gst_caps_new_empty_simple ("application/ogg");
+  cprof =
+      gst_encoding_container_profile_new ((gchar *) "myprofile", NULL, ogg,
+      NULL);
+  gst_caps_unref (ogg);
+
+  vorbis = gst_caps_new_empty_simple ("audio/x-vorbis");
+  vorbisprof =
+      (GstEncodingProfile *) gst_encoding_audio_profile_new (vorbis, NULL, NULL,
+      0);
+  gst_encoding_profile_set_name (vorbisprof, "vorbisprofile");
+  fail_unless (gst_encoding_container_profile_add_profile (cprof, vorbisprof));
+  gst_caps_unref (vorbis);
+
+  theora = gst_caps_new_empty_simple ("video/x-theora");
+  theoraprof =
+      (GstEncodingProfile *) gst_encoding_video_profile_new (theora, NULL, NULL,
+      0);
+  gst_encoding_profile_set_name (theoraprof, "theoraprofile");
+  fail_unless (gst_encoding_container_profile_add_profile (cprof, theoraprof));
+  gst_caps_unref (theora);
+
+  ebin = gst_element_factory_make ("encodebin", NULL);
+
+  /* First try is with a streamprofile that has a forced presence of 1 */
+  g_object_set (ebin, "profile", cprof, NULL);
+
+  gst_encoding_profile_unref (cprof);
+
+  /* Check if the source pad was properly created */
+  srcpad = gst_element_get_static_pad (ebin, "src");
+  fail_unless (srcpad != NULL);
+  gst_object_unref (srcpad);
+
+  /* Request a vorbis profile pad */
+  g_signal_emit_by_name (ebin, "request-profile-pad", "vorbisprofile",
+      &sinkpadvorbis);
+  fail_unless (sinkpadvorbis != NULL);
+  _caps_match (sinkpadvorbis, "audio/x-raw;audio/x-vorbis");
+  gst_object_unref (sinkpadvorbis);
+
+  /* Request a theora profile pad */
+  g_signal_emit_by_name (ebin, "request-profile-pad", "theoraprofile",
+      &sinkpadtheora);
+  fail_unless (sinkpadtheora != NULL);
+  _caps_match (sinkpadtheora, "video/x-raw;video/x-theora");
+  gst_object_unref (sinkpadtheora);
+
+  fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_PAUSED),
+      GST_STATE_CHANGE_SUCCESS);
+
+  /* Set back to NULL */
+  fail_unless_equals_int (gst_element_set_state (ebin, GST_STATE_NULL),
+      GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (ebin);
+
+}
+
+GST_END_TEST;
 
 static Suite *
 encodebin_suite (void)
@@ -884,6 +1030,7 @@
   tcase_add_test (tc_chain, test_encodebin_states);
   tcase_add_test (tc_chain, test_encodebin_sink_pads_static);
   tcase_add_test (tc_chain, test_encodebin_sink_pads_nopreset_static);
+  tcase_add_test (tc_chain, test_encodebin_preset);
   tcase_add_test (tc_chain, test_encodebin_sink_pads_dynamic);
   tcase_add_test (tc_chain, test_encodebin_sink_pads_multiple_static);
   tcase_add_test (tc_chain, test_encodebin_sink_pads_multiple_dynamic);
@@ -895,6 +1042,7 @@
   tcase_add_test (tc_chain, test_encodebin_render_audio_video_dynamic);
   tcase_add_test (tc_chain, test_encodebin_impossible_element_combination);
   tcase_add_test (tc_chain, test_encodebin_reuse);
+  tcase_add_test (tc_chain, test_encodebin_named_requests);
 
   return s;
 }
diff --git a/tests/check/elements/libvisual.c b/tests/check/elements/libvisual.c
index 8185910..783a428 100644
--- a/tests/check/elements/libvisual.c
+++ b/tests/check/elements/libvisual.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/elements/multifdsink.c b/tests/check/elements/multifdsink.c
index 8cee401..431616d 100644
--- a/tests/check/elements/multifdsink.c
+++ b/tests/check/elements/multifdsink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -89,7 +89,7 @@
 
   caps = gst_caps_from_string ("application/x-gst-check");
   buffer = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   gst_caps_unref (caps);
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
 
@@ -121,7 +121,7 @@
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
   buffer = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
   gst_buffer_fill (buffer, 0, "dead", 4);
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
@@ -141,6 +141,19 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_add_client_in_null_state)
+{
+  GstElement *sink;
+
+  sink = setup_multifdsink ();
+
+  ASSERT_WARNING (g_signal_emit_by_name (sink, "add", 99));
+
+  cleanup_multifdsink (sink);
+}
+
+GST_END_TEST;
+
 #define fail_unless_read(msg,fd,size,ref) \
 G_STMT_START { \
   char data[size + 1]; \
@@ -260,7 +273,7 @@
   gst_multifdsink_create_streamheader ("babe", "deadbeef", &hbuf1, &hbuf2,
       &caps);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   /* one is ours, two from set_caps */
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
 
@@ -352,7 +365,7 @@
   gst_multifdsink_create_streamheader ("first", "header", &hbuf1, &hbuf2,
       &caps);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   /* one is ours, two from set_caps */
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
 
@@ -398,7 +411,7 @@
 
   gst_multifdsink_create_streamheader ("second", "header", &hbuf1, &hbuf2,
       &caps);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   /* one to hold for the test and one to give away */
   ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 2);
   ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 2);
@@ -488,7 +501,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* push buffers in, 9 * 16 bytes = 144 bytes */
@@ -577,7 +590,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* push buffers in, 9 * 16 bytes = 144 bytes */
@@ -668,7 +681,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* push buffers in, 9 * 16 bytes = 144 bytes */
@@ -754,7 +767,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* now add our client */
@@ -800,6 +813,7 @@
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_no_clients);
   tcase_add_test (tc_chain, test_add_client);
+  tcase_add_test (tc_chain, test_add_client_in_null_state);
   tcase_add_test (tc_chain, test_streamheader);
   tcase_add_test (tc_chain, test_change_streamheader);
   tcase_add_test (tc_chain, test_burst_client_bytes);
diff --git a/tests/check/elements/multisocketsink.c b/tests/check/elements/multisocketsink.c
index 5c38895..a62e8d3 100644
--- a/tests/check/elements/multisocketsink.c
+++ b/tests/check/elements/multisocketsink.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -91,7 +91,7 @@
 
   caps = gst_caps_from_string ("application/x-gst-check");
   buffer = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   gst_caps_unref (caps);
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
 
@@ -177,7 +177,7 @@
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
   buffer = gst_buffer_new_and_alloc (4);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
   gst_buffer_fill (buffer, 0, "dead", 4);
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
@@ -299,7 +299,7 @@
   ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 2);
   ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 2);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   /* one is ours, two from set_caps */
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
 
@@ -400,7 +400,7 @@
   gst_multisocketsink_create_streamheader ("first", "header", &hbuf1, &hbuf2,
       &caps);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   /* one is ours, two from set_caps */
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
 
@@ -446,7 +446,7 @@
 
   gst_multisocketsink_create_streamheader ("second", "header", &hbuf1, &hbuf2,
       &caps);
-  fail_unless (gst_pad_set_caps (mysrcpad, caps));
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   /* one to hold for the test and one to give away */
   ASSERT_BUFFER_REFCOUNT (hbuf1, "hbuf1", 2);
   ASSERT_BUFFER_REFCOUNT (hbuf2, "hbuf2", 2);
@@ -539,7 +539,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* push buffers in, 9 * 16 bytes = 144 bytes */
@@ -634,7 +634,7 @@
 
   caps = gst_caps_from_string ("application/x-gst-check");
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
 
   /* push buffers in, 9 * 16 bytes = 144 bytes */
   for (i = 0; i < 9; i++) {
@@ -732,7 +732,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* push buffers in, 9 * 16 bytes = 144 bytes */
@@ -825,7 +825,7 @@
   ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
 
   caps = gst_caps_from_string ("application/x-gst-check");
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
   GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
 
   /* now add our client */
diff --git a/tests/check/elements/playbin-compressed.c b/tests/check/elements/playbin-complex.c
similarity index 84%
rename from tests/check/elements/playbin-compressed.c
rename to tests/check/elements/playbin-complex.c
index 2cd1986..a615c2d 100644
--- a/tests/check/elements/playbin-compressed.c
+++ b/tests/check/elements/playbin-complex.c
@@ -1,4 +1,4 @@
-/* GStreamer unit tests for playbin compressed stream support
+/* GStreamer unit tests for playbin complex stream support
  *
  * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
  * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -27,6 +27,7 @@
 #include <gst/base/gstpushsrc.h>
 #include <gst/base/gstbasesink.h>
 #include <gst/audio/streamvolume.h>
+#include <gst/video/gstvideodecoder.h>
 
 #ifndef GST_DISABLE_REGISTRY
 
@@ -37,6 +38,10 @@
 static GType gst_codec_sink_get_type (void);
 static GType gst_audio_codec_sink_get_type (void);
 static GType gst_video_codec_sink_get_type (void);
+static GType gst_video_decoder1_get_type (void);
+static GType gst_video_decoder2_get_type (void);
+static GType gst_video_sink1_get_type (void);
+static GType gst_video_sink2_get_type (void);
 
 typedef struct _GstCapsSrc GstCapsSrc;
 typedef GstPushSrcClass GstCapsSrcClass;
@@ -141,10 +146,12 @@
   }
 
   if (src->nbuffers == 0) {
+    gst_pad_push_event (GST_BASE_SRC_PAD (psrc),
+        gst_event_new_stream_start ("test"));
     gst_pad_set_caps (GST_BASE_SRC_PAD (psrc), src->caps);
   }
 
-  buf = gst_buffer_new ();
+  buf = gst_buffer_new_wrapped (g_malloc0 (4), 4);
   GST_BUFFER_TIMESTAMP (buf) =
       gst_util_uint64_scale (src->nbuffers, GST_SECOND, 25);
   src->nbuffers++;
@@ -448,16 +455,21 @@
   GstCodecDemuxer *demux = (GstCodecDemuxer *) parent;
   GstFlowReturn ret0 = GST_FLOW_OK, ret1 = GST_FLOW_OK;
 
-  if (demux->srcpad0) {
-    GstBuffer *outbuf = gst_buffer_new ();
+  if (demux->newseg_event) {
+    if (demux->srcpad0)
+      gst_pad_push_event (demux->srcpad0, gst_event_ref (demux->newseg_event));
+    if (demux->srcpad1)
+      gst_pad_push_event (demux->srcpad1, gst_event_ref (demux->newseg_event));
+    gst_event_unref (demux->newseg_event);
+    demux->newseg_event = NULL;
+  }
 
-    GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
+  if (demux->srcpad0) {
+    GstBuffer *outbuf = gst_buffer_copy (buf);
     ret0 = gst_pad_push (demux->srcpad0, outbuf);
   }
   if (demux->srcpad1) {
-    GstBuffer *outbuf = gst_buffer_new ();
-
-    GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
+    GstBuffer *outbuf = gst_buffer_copy (buf);
     ret1 = gst_pad_push (demux->srcpad1, outbuf);
   }
   gst_buffer_unref (buf);
@@ -515,11 +527,11 @@
     } else {
       caps = gst_caps_new_empty_simple ("audio/x-compressed");
     }
+
+    gst_pad_push_event (*pad, gst_event_new_stream_start ("test"));
+
     gst_pad_set_caps (*pad, caps);
     gst_caps_unref (caps);
-
-    if (demux->newseg_event)
-      gst_pad_push_event (*pad, gst_event_ref (demux->newseg_event));
   }
 }
 
@@ -583,10 +595,202 @@
   gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad);
 }
 
+typedef struct _GstVideoDecoder1 GstVideoDecoder1;
+typedef GstVideoDecoderClass GstVideoDecoder1Class;
+
+typedef struct _GstVideoDecoder2 GstVideoDecoder2;
+typedef GstVideoDecoderClass GstVideoDecoder2Class;
+
+typedef struct _GstVideoSink1 GstVideoSink1;
+typedef GstBaseSinkClass GstVideoSink1Class;
+
+typedef struct _GstVideoSink2 GstVideoSink2;
+typedef GstBaseSinkClass GstVideoSink2Class;
+
+struct _GstVideoDecoder1
+{
+  GstVideoDecoder parent;
+};
+
+struct _GstVideoDecoder2
+{
+  GstVideoDecoder parent;
+};
+
+struct _GstVideoSink1
+{
+  GstBaseSink parent;
+};
+
+struct _GstVideoSink2
+{
+  GstBaseSink parent;
+};
+
+#define GST_CAPS_FEATURE_MEMORY_FAKE "memory:FakeMem"
+
+G_DEFINE_TYPE (GstVideoDecoder1, gst_video_decoder1, GST_TYPE_VIDEO_DECODER);
+G_DEFINE_TYPE (GstVideoDecoder2, gst_video_decoder2, GST_TYPE_VIDEO_DECODER);
+G_DEFINE_TYPE (GstVideoSink1, gst_video_sink1, GST_TYPE_BASE_SINK);
+G_DEFINE_TYPE (GstVideoSink2, gst_video_sink2, GST_TYPE_BASE_SINK);
+
+static void
+gst_video_sink1_class_init (GstVideoSink1Class * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
+          (GST_CAPS_FEATURE_MEMORY_FAKE,
+              GST_VIDEO_FORMATS_ALL) ";"
+          GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL))
+      );
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&sink_templ));
+
+  gst_element_class_set_static_metadata (element_class,
+      "Fake Video Sink1", "Sink/Video",
+      "fake sink1", "Sreerenj Balachandran <sreerenj.balachandran@intel.com>");
+}
+
+static void
+gst_video_sink1_init (GstVideoSink1 * sink)
+{
+}
+
+static void
+gst_video_sink2_class_init (GstVideoSink2Class * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)));
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&sink_templ));
+
+  gst_element_class_set_static_metadata (element_class,
+      "Fake Video Sink2", "Sink/Video",
+      "fake sink2", "Sreerenj Balachandran <sreerenj.balachandran@intel.com>");
+}
+
+static void
+gst_video_sink2_init (GstVideoSink2 * sink)
+{
+}
+
+static GstFlowReturn
+fake_theora_dec_handle_frame (GstVideoDecoder * bdec,
+    GstVideoCodecFrame * frame)
+{
+  /* the width and height are hard-coded for ../../files/theora-vorbis.ogg */
+  gst_video_codec_state_unref (gst_video_decoder_set_output_state (bdec,
+          GST_VIDEO_FORMAT_NV12, 320, 240, NULL));
+  gst_video_decoder_allocate_output_frame (bdec, frame);
+  return gst_video_decoder_finish_frame (bdec, frame);
+}
+
+static void
+gst_video_decoder1_class_init (GstVideoDecoder1Class * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GstVideoDecoderClass *vd_class = GST_VIDEO_DECODER_CLASS (klass);
+
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-theora"));
+
+  static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE_WITH_FEATURES
+          (GST_CAPS_FEATURE_MEMORY_FAKE,
+              GST_VIDEO_FORMATS_ALL) ";"
+          GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)));
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&src_templ));
+  gst_element_class_set_static_metadata (element_class,
+      "Fake theora video decoder1", "Codec/Decoder/Video",
+      "decode theora stream",
+      "Sreerenj Balachandran <sreerenj.balachandran@intel.com>");
+
+  vd_class->handle_frame = fake_theora_dec_handle_frame;
+}
+
+static void
+gst_video_decoder1_init (GstVideoDecoder1 * dec1)
+{
+}
+
+static void
+gst_video_decoder2_class_init (GstVideoDecoder2Class * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GstVideoDecoderClass *vd_class = GST_VIDEO_DECODER_CLASS (klass);
+
+  static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS ("video/x-theora"));
+
+  static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC, GST_PAD_ALWAYS,
+      GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)));
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&src_templ));
+  gst_element_class_set_static_metadata (element_class,
+      "Fake theora video decoder2", "Codec/Decoder/Video",
+      "decode theora stream",
+      "Sreerenj Balachandran <sreerenj.balachandran@intel.com>");
+
+  vd_class->handle_frame = fake_theora_dec_handle_frame;
+}
+
+static void
+gst_video_decoder2_init (GstVideoDecoder2 * dec2)
+{
+}
+
 /****
  * Start of the tests
  ***/
 
+static void
+pipeline_deep_notify_caps_cb (GstObject * pipeline,
+    GstObject * object, GParamSpec * pspec, GstElement ** dec)
+{
+  GstObject *pad_parent;
+
+  if (!GST_IS_PAD (object))
+    return;
+
+  pad_parent = gst_object_get_parent (object);
+
+  if (GST_IS_ELEMENT (pad_parent) && *dec == NULL) {
+    GstElementFactory *factory;
+    GstElement *element;
+    const gchar *klass;
+
+    element = GST_ELEMENT_CAST (pad_parent);
+    if ((factory = gst_element_get_factory (element)) &&
+        (klass =
+            gst_element_factory_get_metadata (factory,
+                GST_ELEMENT_METADATA_KLASS)) && strstr (klass, "Video")
+        && strstr (klass, "Decoder")) {
+      *dec = gst_object_ref (element);
+    }
+  }
+  if (pad_parent)
+    gst_object_unref (pad_parent);
+}
+
 static GstElement *
 create_playbin (const gchar * uri, gboolean set_sink)
 {
@@ -620,6 +824,61 @@
   return playbin;
 }
 
+GST_START_TEST (test_autoplug_decoder_sink_combination)
+{
+  GstElement *playbin;
+  GstElement *decoder = NULL;
+  GstElement *sink;
+  gchar *path, *uri;
+
+  fail_unless (gst_element_register (NULL, "faketheoradec1",
+          GST_RANK_PRIMARY + 1, gst_video_decoder1_get_type ()));
+  fail_unless (gst_element_register (NULL, "faketheoradec2",
+          GST_RANK_PRIMARY + 1, gst_video_decoder2_get_type ()));
+  fail_unless (gst_element_register (NULL, "fakevideosink1",
+          GST_RANK_PRIMARY + 1, gst_video_sink1_get_type ()));
+  fail_unless (gst_element_register (NULL, "fakevideosink2",
+          GST_RANK_PRIMARY + 1, gst_video_sink2_get_type ()));
+
+  path = g_build_filename (GST_TEST_FILES_PATH, "theora-vorbis.ogg", NULL);
+  uri = gst_filename_to_uri (path, NULL);
+  g_free (path);
+
+  playbin = create_playbin (uri, FALSE);
+
+  g_signal_connect (playbin, "deep-notify::caps",
+      G_CALLBACK (pipeline_deep_notify_caps_cb), &decoder);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+  fail_unless_equals_int (gst_element_get_state (playbin, NULL, NULL, -1),
+      GST_STATE_CHANGE_SUCCESS);
+
+  /* there shouldn't be any errors */
+  fail_if (gst_bus_poll (GST_ELEMENT_BUS (playbin), GST_MESSAGE_ERROR,
+          0) != NULL);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) == gst_video_sink1_get_type ());
+    gst_object_unref (sink);
+  }
+
+  fail_unless (decoder != NULL);
+  {
+    fail_unless (G_TYPE_FROM_INSTANCE (decoder) ==
+        gst_video_decoder1_get_type ());
+    gst_object_unref (decoder);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
 GST_START_TEST (test_raw_single_video_stream_manual_sink)
 {
   GstMessage *msg;
@@ -1573,6 +1832,125 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_raw_raw_audio_stream_adder_manual_sink)
+{
+  GstMessage *msg;
+  GstElement *adder;
+  GstElement *playbin_combiner;
+  GstElement *playbin;
+  GstElement *sink;
+  GstBus *bus;
+  gboolean adder_used = FALSE;
+  gboolean done = FALSE;
+
+  fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+          gst_caps_src_get_type ()));
+  fail_unless (gst_element_register (NULL, "codecdemuxer",
+          GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+  fail_unless (gst_element_register (NULL, "audiocodecsink",
+          GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+  fail_unless (gst_element_register (NULL, "videocodecsink",
+          GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+  playbin = create_playbin ("caps:application/x-container, "
+      "stream0=(string)raw-audio, " "stream1=(string)raw-audio", TRUE);
+
+  /* before playback starts, and with no custom combiner, these should all be NULL */
+  g_object_get (G_OBJECT (playbin), "audio-stream-combiner", &playbin_combiner,
+      NULL);
+  fail_unless (playbin_combiner == NULL);
+  g_object_get (G_OBJECT (playbin), "text-stream-combiner", &playbin_combiner,
+      NULL);
+  fail_unless (playbin_combiner == NULL);
+  g_object_get (G_OBJECT (playbin), "video-stream-combiner", &playbin_combiner,
+      NULL);
+  fail_unless (playbin_combiner == NULL);
+
+  /* set audio combiner */
+  adder = gst_element_factory_make ("adder", NULL);
+  fail_unless (adder != NULL);
+  g_object_set (G_OBJECT (playbin), "audio-stream-combiner", adder, NULL);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  /* audio combiner should still be there */
+  g_object_get (G_OBJECT (playbin), "audio-stream-combiner", &playbin_combiner,
+      NULL);
+  fail_unless (playbin_combiner == adder);
+  gst_object_unref (playbin_combiner);
+
+  /* text and video combiners should still be NULL */
+  g_object_get (G_OBJECT (playbin), "text-stream-combiner", &playbin_combiner,
+      NULL);
+  fail_unless (playbin_combiner == NULL);
+  g_object_get (G_OBJECT (playbin), "video-stream-combiner", &playbin_combiner,
+      NULL);
+  fail_unless (playbin_combiner == NULL);
+
+  bus = gst_element_get_bus (playbin);
+
+  while (!done) {
+    msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+    switch (GST_MESSAGE_TYPE (msg)) {
+      case GST_MESSAGE_EOS:
+        done = TRUE;
+        break;
+      case GST_MESSAGE_ERROR:
+        fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+        break;
+      case GST_MESSAGE_STATE_CHANGED:
+        if (GST_MESSAGE_SRC (msg) == GST_OBJECT (adder)) {
+          GstState state;
+          gst_message_parse_state_changed (msg, &state, NULL, NULL);
+          if (state == GST_STATE_PAUSED)
+            adder_used = TRUE;
+        }
+      default:
+        break;
+    }
+    gst_message_unref (msg);
+  }
+  gst_object_unref (bus);
+  fail_unless (adder_used);
+
+  g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstVideoCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_video_codec_sink_get_type ());
+    csink = (GstVideoCodecSink *) sink;
+    fail_unless (csink->audio == FALSE);
+    fail_unless_equals_int (csink->n_raw, 0);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+  fail_unless (sink != NULL);
+  {
+    GstAudioCodecSink *csink;
+
+    fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+        gst_audio_codec_sink_get_type ());
+    csink = (GstAudioCodecSink *) sink;
+    fail_unless (csink->audio == TRUE);
+    fail_unless_equals_int (csink->n_raw, NBUFFERS);
+    fail_unless_equals_int (csink->n_compressed, 0);
+    gst_object_unref (sink);
+  }
+
+  gst_element_set_state (playbin, GST_STATE_NULL);
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
 #if 0
 typedef struct
 {
@@ -2357,9 +2735,9 @@
 #endif
 
 static Suite *
-playbin_compressed_suite (void)
+playbin_complex_suite (void)
 {
-  Suite *s = suite_create ("playbin_compressed");
+  Suite *s = suite_create ("playbin_complex");
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
@@ -2386,6 +2764,9 @@
   tcase_add_test (tc_chain,
       test_raw_compressed_video_stream_demuxer_manual_sink);
 
+  tcase_add_test (tc_chain, test_raw_raw_audio_stream_adder_manual_sink);
+  tcase_add_test (tc_chain, test_autoplug_decoder_sink_combination);
+
   /* These tests need something like the stream-activate event
    * and are racy otherwise */
 #if 0
@@ -2411,4 +2792,4 @@
   return s;
 }
 
-GST_CHECK_MAIN (playbin_compressed);
+GST_CHECK_MAIN (playbin_complex);
diff --git a/tests/check/elements/playbin.c b/tests/check/elements/playbin.c
index 0f97bf4..369562a 100644
--- a/tests/check/elements/playbin.c
+++ b/tests/check/elements/playbin.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
@@ -98,8 +98,8 @@
   fakeaudiosink = gst_element_factory_make ("fakesink", "fakeaudiosink");
   fail_unless (fakeaudiosink != NULL, "Failed to create fakeaudiosink element");
 
-  /* video-only stream, audiosink will error out in null => ready if used */
-  g_object_set (fakeaudiosink, "state-error", 1, NULL);
+  /* video-only stream, audiosink will error out in ready => paused if used */
+  g_object_set (fakeaudiosink, "state-error", 2, NULL);
 
   g_object_set (playbin, "video-sink", fakevideosink, NULL);
   g_object_set (playbin, "audio-sink", fakeaudiosink, NULL);
@@ -481,9 +481,9 @@
 
   ASSERT_OBJECT_REFCOUNT (playbin, "playbin", 1);
 
-  /* we have two refs now, one from ourselves and one from playbin */
-  ASSERT_OBJECT_REFCOUNT (audiosink, "myaudiosink", 2);
-  ASSERT_OBJECT_REFCOUNT (videosink, "myvideosink", 2);
+  /* we have 3 refs now, one from ourselves, one from playbin and one from playsink */
+  ASSERT_OBJECT_REFCOUNT (audiosink, "myaudiosink", 3);
+  ASSERT_OBJECT_REFCOUNT (videosink, "myvideosink", 3);
   ASSERT_OBJECT_REFCOUNT (vis, "myvis", 2);
 
   fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PAUSED),
@@ -766,6 +766,70 @@
 {
 }
 
+#if 0
+GST_START_TEST (test_appsink_twice)
+{
+  GstElement *playbin, *appsink;
+  GstSample *sample;
+  gchar *fn, *uri;
+  int flags;
+
+  fn = g_build_filename (GST_TEST_FILES_PATH, "theora-vorbis.ogg", NULL);
+  uri = gst_filename_to_uri (fn, NULL);
+  g_free (fn);
+
+  playbin = gst_element_factory_make ("playbin", NULL);
+  g_object_set (playbin, "uri", uri, NULL);
+  g_free (uri);
+
+  /* disable video decoding/rendering (doesn't actually work yet though) */
+  g_object_get (playbin, "flags", &flags, NULL);
+  g_object_set (playbin, "flags", flags & ~1, NULL);
+
+  appsink = gst_element_factory_make ("appsink", "appsink");
+  g_object_set (playbin, "audio-sink", appsink, NULL);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+  fail_unless_equals_int (gst_element_get_state (playbin, NULL, NULL,
+          GST_CLOCK_TIME_NONE), GST_STATE_CHANGE_SUCCESS);
+
+  do {
+    g_signal_emit_by_name (appsink, "pull-sample", &sample);
+    GST_LOG ("got sample: %p", sample);
+    if (sample)
+      gst_sample_unref (sample);
+  }
+  while (sample != NULL);
+
+  GST_INFO ("got first EOS");
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_NULL),
+      GST_STATE_CHANGE_SUCCESS);
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+  fail_unless_equals_int (gst_element_get_state (playbin, NULL, NULL,
+          GST_CLOCK_TIME_NONE), GST_STATE_CHANGE_SUCCESS);
+
+  do {
+    g_signal_emit_by_name (appsink, "pull-sample", &sample);
+    GST_LOG ("got sample: %p", sample);
+    if (sample)
+      gst_sample_unref (sample);
+  }
+  while (sample != NULL);
+
+  GST_INFO ("got second EOS");
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_NULL),
+      GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+#endif
+
 #endif /* GST_DISABLE_REGISTRY */
 
 
@@ -789,6 +853,18 @@
   tcase_add_test (tc_chain, test_refcount);
   tcase_add_test (tc_chain, test_source_setup);
 
+#if 0
+  {
+    GstRegistry *reg = gst_registry_get ();
+
+    if (gst_registry_check_feature_version (reg, "oggdemux", 1, 0, 0) &&
+        gst_registry_check_feature_version (reg, "theoradec", 1, 0, 0) &&
+        gst_registry_check_feature_version (reg, "vorbisdec", 1, 0, 0)) {
+      tcase_add_test (tc_chain, test_appsink_twice);
+    }
+  }
+#endif
+
   /* one day we might also want to have the following checks:
    * tcase_add_test (tc_chain, test_missing_secondary_decoder_one_fatal);
    * tcase_add_test (tc_chain, test_missing_secondary_decoder_two_fatal);
diff --git a/tests/check/elements/streamsynchronizer.c b/tests/check/elements/streamsynchronizer.c
index 5b18428..c723591 100644
--- a/tests/check/elements/streamsynchronizer.c
+++ b/tests/check/elements/streamsynchronizer.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -264,8 +264,7 @@
   pushinfo.pad = mysrcpad;
   pushinfo.to_push = to_push;
   g_mutex_lock (&push_mutex);
-  thread =
-      g_thread_create ((GThreadFunc) my_push_thread, &pushinfo, FALSE, NULL);
+  thread = g_thread_new ("pushthread", (GThreadFunc) my_push_thread, &pushinfo);
   fail_unless (thread != NULL);
 
   g_cond_wait (&push_cond, &push_mutex);
diff --git a/tests/check/elements/subparse.c b/tests/check/elements/subparse.c
index 75f3a35..8e3a999 100644
--- a/tests/check/elements/subparse.c
+++ b/tests/check/elements/subparse.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -157,12 +157,17 @@
 static void
 setup_subparse (void)
 {
+  GstSegment segment;
   subparse = gst_check_setup_element ("subparse");
 
   mysrcpad = gst_check_setup_src_pad (subparse, &srctemplate);
   mysinkpad = gst_check_setup_sink_pad (subparse, &sinktemplate);
 
   gst_pad_set_active (mysrcpad, TRUE);
+
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+  gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
   gst_pad_set_active (mysinkpad, TRUE);
 
   fail_unless_equals_int (gst_element_set_state (subparse, GST_STATE_PLAYING),
diff --git a/tests/check/elements/textoverlay.c b/tests/check/elements/textoverlay.c
index fe06b42..c11d5e5 100644
--- a/tests/check/elements/textoverlay.c
+++ b/tests/check/elements/textoverlay.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -68,6 +68,21 @@
     GST_STATIC_CAPS (VIDEO_CAPS_TEMPLATE_STRING)
     );
 
+static void
+gst_check_setup_events_textoverlay (GstPad * srcpad, GstElement * element,
+    GstCaps * caps, GstFormat format, const gchar * stream_id)
+{
+  GstSegment segment;
+
+  gst_segment_init (&segment, format);
+
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start (stream_id)));
+  if (caps)
+    fail_unless (gst_pad_push_event (srcpad, gst_event_new_caps (caps)));
+  fail_unless (gst_pad_push_event (srcpad, gst_event_new_segment (&segment)));
+}
+
 /* much like gst_check_setup_src_pad(), but with possibility to give a hint
  * which sink template of the element to use, if there are multiple ones */
 static GstPad *
@@ -279,7 +294,8 @@
       "could not set to playing");
 
   incaps = create_video_caps (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (myvideosrcpad, incaps);
+  gst_check_setup_events_textoverlay (myvideosrcpad, textoverlay, incaps,
+      GST_FORMAT_TIME, "video");
   inbuffer = create_black_buffer (incaps);
   gst_caps_unref (incaps);
 
@@ -422,7 +438,8 @@
       "could not set to playing");
 
   incaps = create_video_caps (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (myvideosrcpad, incaps);
+  gst_check_setup_events_textoverlay (myvideosrcpad, textoverlay, incaps,
+      GST_FORMAT_TIME, "video");
   inbuffer = create_black_buffer (incaps);
   gst_caps_unref (incaps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -512,7 +529,8 @@
 
   caps = gst_caps_new_simple ("text/x-raw", "format", G_TYPE_STRING, "utf8",
       NULL);
-  gst_pad_set_caps (mytextsrcpad, caps);
+  gst_check_setup_events_textoverlay (mytextsrcpad, textoverlay, caps,
+      GST_FORMAT_TIME, "text");
   gst_caps_unref (caps);
 
   tbuf = create_text_buffer ("XLX", 1 * GST_SECOND, 5 * GST_SECOND);
@@ -527,7 +545,8 @@
   fail_unless_equals_int (g_list_length (buffers), 0);
 
   incaps = create_video_caps (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (myvideosrcpad, incaps);
+  gst_check_setup_events_textoverlay (myvideosrcpad, textoverlay, incaps,
+      GST_FORMAT_TIME, "video");
   inbuffer = create_black_buffer (incaps);
   gst_caps_unref (incaps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -646,7 +665,8 @@
   GstCaps *vcaps;
 
   vcaps = create_video_caps (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (myvideosrcpad, vcaps);
+  gst_check_setup_events_textoverlay (myvideosrcpad, data, vcaps,
+      GST_FORMAT_TIME, "video");
 
   do {
     GstBuffer *vbuf;
@@ -684,13 +704,14 @@
       "could not set to playing");
 
   thread = g_thread_try_new ("gst-check",
-      test_render_continuity_push_video_buffers_thread, NULL, NULL);
+      test_render_continuity_push_video_buffers_thread, textoverlay, NULL);
   fail_unless (thread != NULL);
   g_thread_unref (thread);
 
   caps = gst_caps_new_simple ("text/x-raw", "format", G_TYPE_STRING, "utf8",
       NULL);
-  gst_pad_set_caps (mytextsrcpad, caps);
+  gst_check_setup_events_textoverlay (mytextsrcpad, textoverlay, caps,
+      GST_FORMAT_TIME, "text");
   gst_caps_unref (caps);
 
   tbuf = create_text_buffer ("XLX", 2 * GST_SECOND, GST_SECOND);
diff --git a/tests/check/elements/videoconvert.c b/tests/check/elements/videoconvert.c
index bc8047e..f82f908 100644
--- a/tests/check/elements/videoconvert.c
+++ b/tests/check/elements/videoconvert.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -56,7 +56,9 @@
   caps = gst_pad_template_get_caps (tmpl);
 
   /* If this fails, we need to update this unit test */
-  fail_unless_equals_int (gst_caps_get_size (caps), 1);
+  fail_unless_equals_int (gst_caps_get_size (caps), 2);
+  /* Remove the ANY caps features structure */
+  caps = gst_caps_truncate (caps);
   s = gst_caps_get_structure (caps, 0);
 
   fail_unless (gst_structure_has_name (s, "video/x-raw"));
diff --git a/tests/check/elements/videorate.c b/tests/check/elements/videorate.c
index 96fdcd2..f8a9e08 100644
--- a/tests/check/elements/videorate.c
+++ b/tests/check/elements/videorate.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -165,7 +165,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_memset (inbuffer, 0, 0, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -207,7 +207,7 @@
   GST_BUFFER_OFFSET_END (first) = g_rand_int (rand);
   gst_buffer_memset (first, 0, 1, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (first, "first", 1);
   gst_buffer_ref (first);
@@ -325,7 +325,7 @@
   GST_BUFFER_TIMESTAMP (first) = GST_SECOND;
   gst_buffer_memset (first, 0, 0, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (first, "first", 1);
   gst_buffer_ref (first);
@@ -408,7 +408,7 @@
   GST_BUFFER_TIMESTAMP (first) = 0;
   gst_buffer_memset (first, 0, 0, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (first, "first", 1);
   gst_buffer_ref (first);
@@ -506,7 +506,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_memset (inbuffer, 0, 0, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_NO_FRAMERATE_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -539,24 +539,18 @@
   GstBuffer *fourth;
   GstBuffer *fifth;
   GstBuffer *outbuf;
-  GstEvent *newsegment;
   GstCaps *caps, *caps_newsize;
-  GstSegment segment;
 
   videorate = setup_videorate ();
   fail_unless (gst_element_set_state (videorate,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
 
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-  newsegment = gst_event_new_segment (&segment);
-  fail_unless (gst_pad_push_event (mysrcpad, newsegment) == TRUE);
-
   first = gst_buffer_new_and_alloc (4);
   gst_buffer_memset (first, 0, 0, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
   GST_BUFFER_TIMESTAMP (first) = 0;
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
 
   GST_DEBUG ("pushing first buffer");
   fail_unless (gst_pad_push (mysrcpad, first) == GST_FLOW_OK);
@@ -631,7 +625,7 @@
   buf = gst_buffer_new_and_alloc (4);
   gst_buffer_memset (buf, 0, 0, 4);
   caps = gst_caps_from_string (VIDEO_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, videorate, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (buf, "inbuffer", 1);
 
@@ -1037,7 +1031,7 @@
   check_peer_caps (mysrcpad, test->expected_sink_caps, "sink");
   check_peer_caps (mysinkpad, test->expected_src_caps, "src");
 
-  gst_object_unref (videorate);
+  cleanup_videorate (videorate);
 }
 
 GST_END_TEST;
diff --git a/tests/check/elements/videoscale.c b/tests/check/elements/videoscale.c
index aec8022..0dc3372 100644
--- a/tests/check/elements/videoscale.c
+++ b/tests/check/elements/videoscale.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/video/video.h>
@@ -55,7 +55,9 @@
   caps = gst_pad_template_get_caps (tmpl);
 
   /* If this fails, we need to update this unit test */
-  fail_unless_equals_int (gst_caps_get_size (caps), 1);
+  fail_unless_equals_int (gst_caps_get_size (caps), 2);
+  /* Remove the ANY caps features structure */
+  caps = gst_caps_truncate (caps);
   s = gst_caps_get_structure (caps, 0);
 
   fail_unless (gst_structure_has_name (s, "video/x-raw"));
@@ -89,6 +91,7 @@
         case GST_VIDEO_FORMAT_v210:
         case GST_VIDEO_FORMAT_v216:
         case GST_VIDEO_FORMAT_NV12:
+        case GST_VIDEO_FORMAT_NV16:
         case GST_VIDEO_FORMAT_NV21:
         case GST_VIDEO_FORMAT_UYVP:
         case GST_VIDEO_FORMAT_A420:
@@ -111,10 +114,15 @@
         case GST_VIDEO_FORMAT_I420_10LE:
         case GST_VIDEO_FORMAT_I422_10BE:
         case GST_VIDEO_FORMAT_I422_10LE:
+        case GST_VIDEO_FORMAT_Y444_10BE:
+        case GST_VIDEO_FORMAT_Y444_10LE:
+        case GST_VIDEO_FORMAT_GBR:
+        case GST_VIDEO_FORMAT_GBR_10BE:
+        case GST_VIDEO_FORMAT_GBR_10LE:
           GST_LOG ("Ignoring lack of support for format %s", fmt_str);
           break;
         default:
-          g_error ("videoconvert doesn't support format '%s'", fmt_str);
+          g_error ("videoscale doesn't support format '%s'", fmt_str);
           break;
       }
     }
diff --git a/tests/check/elements/videotestsrc.c b/tests/check/elements/videotestsrc.c
index 0760a08..27b7b1e 100644
--- a/tests/check/elements/videotestsrc.c
+++ b/tests/check/elements/videotestsrc.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/elements/volume.c b/tests/check/elements/volume.c
index ff9184c..9d8f215 100644
--- a/tests/check/elements/volume.c
+++ b/tests/check/elements/volume.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -198,7 +198,7 @@
   inbuffer = gst_buffer_new_and_alloc (2);
   gst_buffer_fill (inbuffer, 0, in, 2);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -241,7 +241,7 @@
   inbuffer = gst_buffer_new_and_alloc (2);
   gst_buffer_fill (inbuffer, 0, in, 2);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -290,7 +290,7 @@
   inbuffer = gst_buffer_new_and_alloc (2);
   gst_buffer_fill (inbuffer, 0, in, 2);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -340,7 +340,7 @@
   gst_buffer_fill (inbuffer, 0, in, 2);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 2) == 0);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -388,7 +388,7 @@
   inbuffer = gst_buffer_new_and_alloc (2);
   gst_buffer_fill (inbuffer, 0, in, 2);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -432,7 +432,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -474,7 +474,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -521,7 +521,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -569,7 +569,7 @@
   gst_buffer_fill (inbuffer, 0, in, 4);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 4) == 0);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -617,7 +617,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -674,7 +674,7 @@
   inbuffer = gst_buffer_new_and_alloc (6);
   gst_buffer_fill (inbuffer, 0, in, 6);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -725,7 +725,7 @@
   inbuffer = gst_buffer_new_and_alloc (6);
   gst_buffer_fill (inbuffer, 0, in, 6);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -781,7 +781,7 @@
   inbuffer = gst_buffer_new_and_alloc (6);
   gst_buffer_fill (inbuffer, 0, in, 6);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -838,7 +838,7 @@
   gst_buffer_fill (inbuffer, 0, in, 6);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 6) == 0);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -894,7 +894,7 @@
   inbuffer = gst_buffer_new_and_alloc (6);
   gst_buffer_fill (inbuffer, 0, in, 6);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -943,7 +943,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -985,7 +985,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1032,7 +1032,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1080,7 +1080,7 @@
   gst_buffer_fill (inbuffer, 0, in, 8);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1127,7 +1127,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1171,7 +1171,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, sizeof (in));
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1216,7 +1216,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1266,7 +1266,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1317,7 +1317,7 @@
   gst_buffer_fill (inbuffer, 0, in, 8);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 8) == 0);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1368,7 +1368,7 @@
   inbuffer = gst_buffer_new_and_alloc (8);
   gst_buffer_fill (inbuffer, 0, in, 8);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1415,7 +1415,7 @@
   inbuffer = gst_buffer_new_and_alloc (16);
   gst_buffer_fill (inbuffer, 0, in, 16);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1460,7 +1460,7 @@
   inbuffer = gst_buffer_new_and_alloc (16);
   gst_buffer_fill (inbuffer, 0, in, 16);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1510,7 +1510,7 @@
   inbuffer = gst_buffer_new_and_alloc (16);
   gst_buffer_fill (inbuffer, 0, in, 16);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1561,7 +1561,7 @@
   gst_buffer_fill (inbuffer, 0, in, 16);
   fail_unless (gst_buffer_memcmp (inbuffer, 0, in, 16) == 0);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1612,7 +1612,7 @@
   inbuffer = gst_buffer_new_and_alloc (16);
   gst_buffer_fill (inbuffer, 0, in, 16);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   /* FIXME: reffing the inbuffer should make the transformation not be
@@ -1661,7 +1661,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_WRONG_CAPS_STRING);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
   gst_buffer_ref (inbuffer);
@@ -1706,7 +1706,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
 
@@ -1786,7 +1786,7 @@
   inbuffer = gst_buffer_new_and_alloc (4);
   gst_buffer_fill (inbuffer, 0, in, 4);
   caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
-  gst_pad_set_caps (mysrcpad, caps);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
   GST_BUFFER_TIMESTAMP (inbuffer) = 0;
   gst_caps_unref (caps);
   ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
@@ -1814,6 +1814,55 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_controller_defaults_at_ts0)
+{
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
+  GstElement *volume;
+  GstBuffer *inbuffer;
+  GstCaps *caps;
+  GstSegment seg;
+
+  volume = setup_volume ();
+
+  cs = gst_interpolation_control_source_new ();
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+  gst_object_add_control_binding (GST_OBJECT_CAST (volume),
+      gst_direct_control_binding_new (GST_OBJECT_CAST (volume), "volume", cs));
+
+  /* make a control curve that does not start at ts=0, the element will use
+   * the current property value (default) until the control curve starts 
+   */
+  tvcs = (GstTimedValueControlSource *) cs;
+  gst_timed_value_control_source_set (tvcs, GST_SECOND / 100, 0.1);
+  gst_timed_value_control_source_set (tvcs, GST_SECOND, 1.0);
+
+  fail_unless (gst_element_set_state (volume,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  /* controller curve starts at sample: 441 */
+  inbuffer = gst_buffer_new_and_alloc (1000 * sizeof (gint16));
+  gst_buffer_memset (inbuffer, 0, 0, 1000 * sizeof (gint16));
+  caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
+  gst_check_setup_events (mysrcpad, volume, caps, GST_FORMAT_TIME);
+  GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+  gst_caps_unref (caps);
+
+  gst_segment_init (&seg, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad,
+          gst_event_new_segment (&seg)) == TRUE);
+
+  /* pushing gives away my reference ... */
+  fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+
+  gst_object_unref (cs);
+  cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 volume_suite (void)
 {
@@ -1856,6 +1905,7 @@
   tcase_add_test (tc_chain, test_passthrough);
   tcase_add_test (tc_chain, test_controller_usability);
   tcase_add_test (tc_chain, test_controller_processing);
+  tcase_add_test (tc_chain, test_controller_defaults_at_ts0);
 
   return s;
 }
diff --git a/tests/check/elements/vorbisdec.c b/tests/check/elements/vorbisdec.c
index aec76f6..4564952 100644
--- a/tests/check/elements/vorbisdec.c
+++ b/tests/check/elements/vorbisdec.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -70,12 +70,18 @@
 setup_vorbisdec (void)
 {
   GstElement *vorbisdec;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_vorbisdec");
   vorbisdec = gst_check_setup_element ("vorbisdec");
   mysrcpad = gst_check_setup_src_pad (vorbisdec, &srctemplate);
   mysinkpad = gst_check_setup_sink_pad (vorbisdec, &sinktemplate);
   gst_pad_set_active (mysrcpad, TRUE);
+
+  caps = gst_caps_new_empty_simple ("audio/x-vorbis");
+  gst_check_setup_events (mysrcpad, vorbisdec, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   gst_pad_set_active (mysinkpad, TRUE);
 
   return vorbisdec;
diff --git a/tests/check/elements/vorbistag.c b/tests/check/elements/vorbistag.c
index 037c609..74a7075 100644
--- a/tests/check/elements/vorbistag.c
+++ b/tests/check/elements/vorbistag.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
@@ -93,12 +93,18 @@
 setup_vorbistag (void)
 {
   GstElement *vorbistag;
+  GstCaps *caps;
 
   GST_DEBUG ("setup_vorbistag");
   vorbistag = gst_check_setup_element ("vorbistag");
   mysrcpad = gst_check_setup_src_pad (vorbistag, &srctemplate);
   mysinkpad = gst_check_setup_sink_pad (vorbistag, &sinktemplate);
   gst_pad_set_active (mysrcpad, TRUE);
+
+  caps = gst_caps_new_empty_simple ("audio/x-vorbis");
+  gst_check_setup_events (mysrcpad, vorbistag, caps, GST_FORMAT_TIME);
+  gst_caps_unref (caps);
+
   gst_pad_set_active (mysinkpad, TRUE);
 
   return vorbistag;
@@ -217,7 +223,7 @@
   vorbis_bitrate_flushpacket (&vd, &packet);
   buffer = gst_buffer_new_and_alloc (packet.bytes);
   gst_buffer_fill (buffer, 0, packet.packet, packet.bytes);
-  GST_DEBUG ("%p %d", packet.packet, packet.bytes);
+  GST_DEBUG ("%p %ld", packet.packet, packet.bytes);
 
   vorbis_comment_clear (&vc);
   vorbis_block_clear (&vb);
diff --git a/tests/check/generic/clock-selection.c b/tests/check/generic/clock-selection.c
index 8e332f8..703ffd8 100644
--- a/tests/check/generic/clock-selection.c
+++ b/tests/check/generic/clock-selection.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <unistd.h>
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 5194655..7f12056 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/gst/typefindfunctions.c b/tests/check/gst/typefindfunctions.c
index 625c9b0..f40d4ec 100644
--- a/tests/check/gst/typefindfunctions.c
+++ b/tests/check/gst/typefindfunctions.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/audio.c b/tests/check/libs/audio.c
index 1bfb548..47fe0b4 100644
--- a/tests/check/libs/audio.c
+++ b/tests/check/libs/audio.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/audiocdsrc.c b/tests/check/libs/audiocdsrc.c
index d726d27..b98a3eb 100644
--- a/tests/check/libs/audiocdsrc.c
+++ b/tests/check/libs/audiocdsrc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* TODO:
diff --git a/tests/check/libs/discoverer.c b/tests/check/libs/discoverer.c
index f787d29..c7d2679 100644
--- a/tests/check/libs/discoverer.c
+++ b/tests/check/libs/discoverer.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/fft.c b/tests/check/libs/fft.c
index bcaf967..8151797 100644
--- a/tests/check/libs/fft.c
+++ b/tests/check/libs/fft.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/gstlibscpp.cc b/tests/check/libs/gstlibscpp.cc
index 1a98e22..eaf7dbb 100644
--- a/tests/check/libs/gstlibscpp.cc
+++ b/tests/check/libs/gstlibscpp.cc
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/libsabi.c b/tests/check/libs/libsabi.c
index 34fac67..330554f 100644
--- a/tests/check/libs/libsabi.c
+++ b/tests/check/libs/libsabi.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <config.h>
diff --git a/tests/check/libs/navigation.c b/tests/check/libs/navigation.c
index c8ac79f..b33b497 100644
--- a/tests/check/libs/navigation.c
+++ b/tests/check/libs/navigation.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/pbutils.c b/tests/check/libs/pbutils.c
index 0460f18..e39e7f4 100644
--- a/tests/check/libs/pbutils.c
+++ b/tests/check/libs/pbutils.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -425,7 +425,8 @@
 GST_START_TEST (test_pb_utils_taglist_add_codec_info)
 {
   GstTagList *list;
-  GstCaps *caps;
+  GstCaps *caps, *bogus_caps;
+  gchar *res;
 
   gst_pb_utils_init ();
   list = gst_tag_list_new_empty ();
@@ -434,8 +435,6 @@
       (gst_pb_utils_add_codec_description_to_tag_list (NULL,
               GST_TAG_VIDEO_CODEC, caps)));
   ASSERT_CRITICAL (fail_if
-      (gst_pb_utils_add_codec_description_to_tag_list (list, NULL, caps)));
-  ASSERT_CRITICAL (fail_if
       (gst_pb_utils_add_codec_description_to_tag_list (list, "asdfa", caps)));
   ASSERT_CRITICAL (fail_if
       (gst_pb_utils_add_codec_description_to_tag_list (list,
@@ -443,10 +442,68 @@
   ASSERT_CRITICAL (fail_if
       (gst_pb_utils_add_codec_description_to_tag_list (list,
               GST_TAG_VIDEO_CODEC, NULL)));
-  /* FIXME: do something here */
+
+  /* Try adding bogus caps (should fail) */
+  bogus_caps = gst_caps_new_empty_simple ("bogus/format");
+  fail_if (gst_pb_utils_add_codec_description_to_tag_list (list,
+          GST_TAG_VIDEO_CODEC, bogus_caps));
+  gst_caps_unref (bogus_caps);
+
+  /* Try adding valid caps with known tag */
   fail_unless (gst_pb_utils_add_codec_description_to_tag_list (list,
           GST_TAG_VIDEO_CODEC, caps));
   fail_if (gst_tag_list_is_empty (list));
+  fail_unless (gst_tag_list_get_string (list, GST_TAG_VIDEO_CODEC, &res));
+  g_free (res);
+  gst_tag_list_unref (list);
+
+  /* Try adding valid caps with auto-tag (for video, audio, subtitle, generic) */
+  list = gst_tag_list_new_empty ();
+  fail_unless (gst_pb_utils_add_codec_description_to_tag_list (list, NULL,
+          caps));
+  fail_if (gst_tag_list_is_empty (list));
+  fail_unless (gst_tag_list_get_string (list, GST_TAG_VIDEO_CODEC, &res));
+  g_free (res);
+  gst_tag_list_unref (list);
+  gst_caps_unref (caps);
+
+  list = gst_tag_list_new_empty ();
+  caps = gst_caps_new_empty_simple ("audio/x-vorbis");
+  fail_unless (gst_pb_utils_add_codec_description_to_tag_list (list, NULL,
+          caps));
+  fail_if (gst_tag_list_is_empty (list));
+  fail_unless (gst_tag_list_get_string (list, GST_TAG_AUDIO_CODEC, &res));
+  g_free (res);
+  gst_tag_list_unref (list);
+  gst_caps_unref (caps);
+
+  list = gst_tag_list_new_empty ();
+  caps = gst_caps_new_empty_simple ("subtitle/x-kate");
+  fail_unless (gst_pb_utils_add_codec_description_to_tag_list (list, NULL,
+          caps));
+  fail_if (gst_tag_list_is_empty (list));
+  fail_unless (gst_tag_list_get_string (list, GST_TAG_SUBTITLE_CODEC, &res));
+  g_free (res);
+  gst_tag_list_unref (list);
+  gst_caps_unref (caps);
+
+  list = gst_tag_list_new_empty ();
+  caps = gst_caps_new_empty_simple ("application/ogg");
+  fail_unless (gst_pb_utils_add_codec_description_to_tag_list (list, NULL,
+          caps));
+  fail_if (gst_tag_list_is_empty (list));
+  fail_unless (gst_tag_list_get_string (list, GST_TAG_CONTAINER_FORMAT, &res));
+  g_free (res);
+  gst_tag_list_unref (list);
+  gst_caps_unref (caps);
+
+  list = gst_tag_list_new_empty ();
+  caps = gst_caps_new_empty_simple ("image/bmp");
+  fail_unless (gst_pb_utils_add_codec_description_to_tag_list (list, NULL,
+          caps));
+  fail_if (gst_tag_list_is_empty (list));
+  fail_unless (gst_tag_list_get_string (list, GST_TAG_CODEC, &res));
+  g_free (res);
   gst_tag_list_unref (list);
   gst_caps_unref (caps);
 }
diff --git a/tests/check/libs/profile.c b/tests/check/libs/profile.c
index 158648f..44e9f39 100644
--- a/tests/check/libs/profile.c
+++ b/tests/check/libs/profile.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -605,6 +605,70 @@
   remove_profile_file ();
 }
 
+GST_START_TEST (test_file_extension)
+{
+  GstEncodingContainerProfile *cprof;
+  GstCaps *ogg, *speex, *vorbis, *theora, *id3, *mp3;
+
+  /* 1 - ogg variants */
+  ogg = gst_caps_new_empty_simple ("application/ogg");
+  cprof = gst_encoding_container_profile_new ("myprofile", NULL, ogg, NULL);
+  gst_caps_unref (ogg);
+
+  fail_unless_equals_string (gst_encoding_profile_get_file_extension
+      (GST_ENCODING_PROFILE (cprof)), "ogg");
+
+  speex = gst_caps_new_empty_simple ("audio/x-speex");
+  gst_encoding_container_profile_add_profile (cprof,
+      (GstEncodingProfile *) gst_encoding_audio_profile_new (speex, NULL,
+          NULL, 1));
+  gst_caps_unref (speex);
+
+  fail_unless_equals_string (gst_encoding_profile_get_file_extension
+      (GST_ENCODING_PROFILE (cprof)), "spx");
+
+  vorbis = gst_caps_new_empty_simple ("audio/x-vorbis");
+  gst_encoding_container_profile_add_profile (cprof,
+      (GstEncodingProfile *) gst_encoding_audio_profile_new (vorbis, NULL,
+          NULL, 1));
+  gst_caps_unref (vorbis);
+
+  fail_unless_equals_string (gst_encoding_profile_get_file_extension
+      (GST_ENCODING_PROFILE (cprof)), "ogg");
+
+  theora = gst_caps_new_empty_simple ("video/x-theora");
+  gst_encoding_container_profile_add_profile (cprof,
+      (GstEncodingProfile *) gst_encoding_video_profile_new (theora, NULL,
+          NULL, 1));
+  gst_caps_unref (theora);
+
+  fail_unless_equals_string (gst_encoding_profile_get_file_extension
+      (GST_ENCODING_PROFILE (cprof)), "ogv");
+
+  gst_encoding_profile_unref (cprof);
+
+  /* 2 - tag container */
+  id3 = gst_caps_new_empty_simple ("application/x-id3");
+  cprof = gst_encoding_container_profile_new ("myprofile", NULL, id3, NULL);
+  gst_caps_unref (id3);
+
+  fail_unless (gst_encoding_profile_get_file_extension (GST_ENCODING_PROFILE
+          (cprof)) == NULL);
+
+  mp3 = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 1,
+      "layer", G_TYPE_INT, 3, NULL);
+  gst_encoding_container_profile_add_profile (cprof,
+      (GstEncodingProfile *) gst_encoding_audio_profile_new (mp3, NULL,
+          NULL, 1));
+  gst_caps_unref (mp3);
+
+  fail_unless_equals_string (gst_encoding_profile_get_file_extension
+      (GST_ENCODING_PROFILE (cprof)), "mp3");
+
+  gst_encoding_profile_unref (cprof);
+}
+
+GST_END_TEST;
 
 static Suite *
 profile_suite (void)
@@ -625,6 +689,7 @@
   tcase_add_test (tc_chain, test_profile_input_caps);
   tcase_add_test (tc_chain, test_target_naming);
   tcase_add_test (tc_chain, test_target_profile);
+  tcase_add_test (tc_chain, test_file_extension);
   if (can_write) {
     tcase_add_test (tc_chain, test_loading_profile);
     tcase_add_test (tc_chain, test_saving_profile);
diff --git a/tests/check/libs/rtp.c b/tests/check/libs/rtp.c
index 076e429..9d57dbd 100644
--- a/tests/check/libs/rtp.c
+++ b/tests/check/libs/rtp.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -25,6 +25,7 @@
 #include <gst/check/gstcheck.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/rtp/gstrtphdrext.h>
 #include <gst/rtp/gstrtcpbuffer.h>
 #include <string.h>
 
@@ -758,6 +759,202 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_rtp_ntp64_extension)
+{
+  GstBuffer *buf;
+  gpointer data;
+  guint size;
+  GstRTPBuffer rtp = { NULL, };
+  guint8 bytes[] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0x01, 0x23, 0x45 };
+  guint64 ntptime;
+  guint8 hdrext_ntp64[GST_RTP_HDREXT_NTP_64_SIZE];
+
+  buf = gst_rtp_buffer_new_allocate (0, 0, 0);
+
+  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
+
+  /* format extension data */
+  gst_rtp_hdrext_set_ntp_64 (hdrext_ntp64, GST_RTP_HDREXT_NTP_64_SIZE,
+      0x0123456789012345LL);
+  fail_unless (memcmp (bytes, hdrext_ntp64, sizeof (bytes)) == 0);
+
+  /* add as 1byte header */
+  gst_rtp_buffer_add_extension_onebyte_header (&rtp, 1, hdrext_ntp64,
+      GST_RTP_HDREXT_NTP_64_SIZE);
+
+  /* get extension again */
+  gst_rtp_buffer_get_extension_onebyte_header (&rtp, 1, 0, &data, &size);
+
+  /* and check */
+  fail_unless (size == GST_RTP_HDREXT_NTP_64_SIZE);
+  fail_unless (memcmp (data, hdrext_ntp64, size) == 0);
+
+  gst_rtp_hdrext_get_ntp_64 (data, size, &ntptime);
+  fail_unless (ntptime == 0x0123456789012345LL);
+
+  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtp_ntp56_extension)
+{
+  GstBuffer *buf;
+  gpointer data;
+  guint size;
+  GstRTPBuffer rtp = { NULL, };
+  guint8 bytes[] = { 0x23, 0x45, 0x67, 0x89, 0x01, 0x23, 0x45 };
+  guint64 ntptime;
+  guint8 hdrext_ntp56[GST_RTP_HDREXT_NTP_56_SIZE];
+
+  buf = gst_rtp_buffer_new_allocate (0, 0, 0);
+
+  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
+
+  /* format extension data */
+  gst_rtp_hdrext_set_ntp_56 (hdrext_ntp56, GST_RTP_HDREXT_NTP_56_SIZE,
+      0x0123456789012345LL);
+  /* truncates top bits */
+  fail_unless (memcmp (bytes, hdrext_ntp56, sizeof (bytes)) == 0);
+
+  /* add as 1byte header */
+  gst_rtp_buffer_add_extension_onebyte_header (&rtp, 1, hdrext_ntp56,
+      GST_RTP_HDREXT_NTP_56_SIZE);
+
+  /* get extension again */
+  gst_rtp_buffer_get_extension_onebyte_header (&rtp, 1, 0, &data, &size);
+
+  /* and check */
+  fail_unless (size == GST_RTP_HDREXT_NTP_56_SIZE);
+  fail_unless (memcmp (data, hdrext_ntp56, size) == 0);
+
+  gst_rtp_hdrext_get_ntp_56 (data, size, &ntptime);
+  fail_unless (ntptime == 0x23456789012345LL);
+
+  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtp_buffer_get_extension_bytes)
+{
+  GstBuffer *buf;
+  guint16 bits;
+  guint size;
+  guint8 misc_data[4] = { 1, 2, 3, 4 };
+  gpointer pointer;
+  GstRTPBuffer rtp = { NULL, };
+  GBytes *gb;
+  gsize gb_size;
+
+  /* create RTP buffer without extension header */
+  buf = gst_rtp_buffer_new_allocate (4, 0, 0);
+  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
+  fail_if (gst_rtp_buffer_get_extension (&rtp));
+
+  /* verify that obtaining extension data returns NULL and bits are unchanged */
+  bits = 0xabcd;
+  gb = gst_rtp_buffer_get_extension_bytes (&rtp, &bits);
+  fail_unless (gb == NULL);
+  fail_unless (bits == 0xabcd);
+
+  g_bytes_unref (gb);
+
+  /* add extension header without data and verify that
+   * an empty GBytes is returned */
+  fail_unless (gst_rtp_buffer_set_extension_data (&rtp, 270, 0));
+  fail_unless (gst_rtp_buffer_get_extension (&rtp));
+  gb = gst_rtp_buffer_get_extension_bytes (&rtp, &bits);
+  fail_unless (gb != NULL);
+  fail_unless_equals_int (g_bytes_get_size (gb), 0);
+
+  g_bytes_unref (gb);
+  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unref (buf);
+
+  /* create RTP buffer with extension header and extension data */
+  buf = gst_rtp_buffer_new_allocate (4, 0, 0);
+  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
+  fail_unless (gst_rtp_buffer_add_extension_onebyte_header (&rtp, 5,
+          misc_data, 2));
+  fail_unless (gst_rtp_buffer_get_extension (&rtp));
+
+  /* verify that gst_rtp_buffer_get_extension_bytes returns the same
+   * header bits and data as does gst_rtp_buffer_get_extension_data */
+  fail_unless (gst_rtp_buffer_get_extension_data (&rtp, &bits, &pointer,
+          &size));
+  fail_unless (bits == 0xBEDE);
+  fail_unless (size == 1);
+  gb = gst_rtp_buffer_get_extension_bytes (&rtp, &bits);
+  fail_unless (gb != NULL);
+  fail_unless (bits == 0xBEDE);
+  fail_unless_equals_int (g_bytes_get_size (gb), size * 4);
+  fail_unless (memcmp (pointer, g_bytes_get_data (gb, &gb_size),
+          size * 4) == 0);
+  fail_unless_equals_int (gb_size, size * 4);
+
+  g_bytes_unref (gb);
+  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtp_buffer_get_payload_bytes)
+{
+  guint8 rtppacket[] = {
+    0x80, 0xe0, 0xdf, 0xd7, 0xef, 0x84, 0xbe, 0xed, 0x9b, 0xc5, 0x29, 0x14,
+    'H', 'e', 'l', 'l', 'o', '\0'
+  };
+
+  GstBuffer *buf;
+  GstMapInfo map;
+  gconstpointer data;
+  gsize size;
+  GstRTPBuffer rtp = { NULL, };
+  GBytes *gb;
+
+  /* create empty RTP buffer, i.e. no payload */
+  buf = gst_rtp_buffer_new_allocate (0, 4, 0);
+  fail_unless (buf != NULL);
+  gst_buffer_map (buf, &map, GST_MAP_READWRITE);
+  fail_unless_equals_int (map.size, RTP_HEADER_LEN + 4);
+  fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp));
+
+  /* verify that requesting payload data returns an empty GBytes */
+  gb = gst_rtp_buffer_get_payload_bytes (&rtp);
+  fail_unless (gb != NULL);
+  fail_unless_equals_int (g_bytes_get_size (gb), 0);
+
+  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unmap (buf, &map);
+  gst_buffer_unref (buf);
+
+  /* create RTP buffer containing RTP packet */
+  buf = gst_buffer_new_and_alloc (sizeof (rtppacket));
+  fail_unless (buf != NULL);
+  gst_buffer_fill (buf, 0, rtppacket, sizeof (rtppacket));
+  gst_buffer_map (buf, &map, GST_MAP_READWRITE);
+  fail_unless_equals_int (map.size, sizeof (rtppacket));
+  fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp));
+
+  /* verify that the returned GBytes contains the correct payload data */
+  gb = gst_rtp_buffer_get_payload_bytes (&rtp);
+  fail_unless (gb != NULL);
+  data = g_bytes_get_data (gb, &size);
+  fail_unless (data != NULL);
+  fail_unless (size == (sizeof (rtppacket) - RTP_HEADER_LEN));
+  fail_unless_equals_string ("Hello", data);
+
+  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unmap (buf, &map);
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtp_suite (void)
 {
@@ -772,6 +969,11 @@
   tcase_add_test (tc_chain, test_rtp_seqnum_compare);
 
   tcase_add_test (tc_chain, test_rtcp_buffer);
+  tcase_add_test (tc_chain, test_rtp_ntp64_extension);
+  tcase_add_test (tc_chain, test_rtp_ntp56_extension);
+
+  tcase_add_test (tc_chain, test_rtp_buffer_get_payload_bytes);
+  tcase_add_test (tc_chain, test_rtp_buffer_get_extension_bytes);
 
   //tcase_add_test (tc_chain, test_rtp_buffer_list);
 
diff --git a/tests/check/libs/rtsp.c b/tests/check/libs/rtsp.c
index 377f277..c817c3f 100644
--- a/tests/check/libs/rtsp.c
+++ b/tests/check/libs/rtsp.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -25,6 +25,7 @@
 #include <gst/check/gstcheck.h>
 
 #include <gst/rtsp/gstrtspurl.h>
+#include <gst/rtsp/gstrtsprange.h>
 #include <string.h>
 
 GST_START_TEST (test_rtsp_url_basic)
@@ -120,6 +121,424 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_rtsp_range_npt)
+{
+  GstRTSPTimeRange *range;
+  GstClockTime min, max;
+  gchar *str;
+
+  fail_unless (gst_rtsp_range_parse ("npt=", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("npt=0", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("npt=-", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("npt=now", &range) == GST_RTSP_EINVAL);
+
+  fail_unless (gst_rtsp_range_parse ("npt=-now", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_END);
+  fail_unless (range->max.type == GST_RTSP_TIME_NOW);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == GST_CLOCK_TIME_NONE);
+  fail_unless (max == GST_CLOCK_TIME_NONE);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=-now", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=now-now", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_NOW);
+  fail_unless (range->max.type == GST_RTSP_TIME_NOW);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=now-now", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=now-", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_NOW);
+  fail_unless (range->max.type == GST_RTSP_TIME_END);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=now-", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=now-34.12", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_NOW);
+  fail_unless (range->max.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->max.seconds == 34.12);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == GST_CLOCK_TIME_NONE);
+  fail_unless (max == 34120000000);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=now-34.12", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=23,89-now", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->min.seconds == 23.89);
+  fail_unless (range->max.type == GST_RTSP_TIME_NOW);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 23890000000);
+  fail_unless (max == GST_CLOCK_TIME_NONE);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=23.89-now", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=-12.09", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_END);
+  fail_unless (range->max.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->max.seconds == 12.09);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == GST_CLOCK_TIME_NONE);
+  fail_unless (max == 12090000000);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=-12.09", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=0-", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->min.seconds == 0.0);
+  fail_unless (range->max.type == GST_RTSP_TIME_END);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 0);
+  fail_unless (max == GST_CLOCK_TIME_NONE);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=0-", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+
+  fail_unless (gst_rtsp_range_parse ("npt=1.123-", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->min.seconds == 1.123);
+  fail_unless (range->max.type == GST_RTSP_TIME_END);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 1123000000);
+  fail_unless (max == GST_CLOCK_TIME_NONE);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=1.123-", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=10,20-20.10", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->min.seconds == 10.20);
+  fail_unless (range->max.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->max.seconds == 20.10);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 10200000000);
+  fail_unless (max == 20100000000);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=10.2-20.1", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=500-15.001", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->min.seconds == 500);
+  fail_unless (range->max.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->max.seconds == 15.001);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 500000000000);
+  fail_unless (max == 15001000000);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=500-15.001", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=20:34.23-",
+          &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("npt=10:20;34.23-",
+          &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("npt=0:4.23-", &range) == GST_RTSP_EINVAL);
+
+  fail_unless (gst_rtsp_range_parse ("npt=20:12:34.23-21:45:00.01",
+          &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_NPT);
+  fail_unless (range->min.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->min.seconds == 72754.23);
+  fail_unless (range->max.type == GST_RTSP_TIME_SECONDS);
+  fail_unless (range->max.seconds == 78300.01);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 72754230000000);
+  fail_unless (max == 78300010000000);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("npt=72754.23-78300.01", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtsp_range_smpte)
+{
+  GstClockTime min, max;
+  GstRTSPTimeRange *range;
+  gchar *str;
+
+  fail_unless (gst_rtsp_range_parse ("smpte=", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("smpte=10:34:23",
+          &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("smpte=-", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("smpte=-12:09:34",
+          &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("smpte=12:09:34",
+          &range) == GST_RTSP_EINVAL);
+
+  fail_unless (gst_rtsp_range_parse ("smpte=00:00:00-", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_SMPTE);
+  fail_unless (range->min.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->min.seconds == 0.0);
+  fail_unless (range->min2.frames == 0.0);
+  fail_unless (range->max.type == GST_RTSP_TIME_END);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 0);
+  fail_unless (max == GST_CLOCK_TIME_NONE);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("smpte=0:00:00-", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte=10:34:23-20:12:09:20.89",
+          &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_SMPTE);
+  fail_unless (range->min.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->min.seconds == 38063.0);
+  fail_unless (range->min2.frames == 0.0);
+  fail_unless (range->max.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->max.seconds == 72729.0);
+  fail_unless (range->max2.frames == 20.89);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 38063000000000);
+  /* 20.89 * GST_SECOND * 1001 / 30003 */
+  fail_unless (max == 72729000000000 + 696959970);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("smpte=10:34:23-20:12:09:20.89", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte-25=10:34:23-20:12:09:20.89",
+          &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_SMPTE_25);
+  fail_unless (range->min.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->min.seconds == 38063.0);
+  fail_unless (range->min2.frames == 0.0);
+  fail_unless (range->max.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->max.seconds == 72729.0);
+  fail_unless (range->max2.frames == 20.89);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 38063000000000);
+  GST_DEBUG ("%" GST_TIME_FORMAT, GST_TIME_ARGS (max));
+  /* 20.89 * GST_SECOND * 1 / 25 */
+  fail_unless (max == 72729000000000 + 835600000);
+  str = gst_rtsp_range_to_string (range);
+  GST_DEBUG ("%s", str);
+  fail_unless_equals_string ("smpte-25=10:34:23-20:12:09:20.89", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte-25=0:00:00:00.01-9:59:59:24.99",
+          &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_SMPTE_25);
+  fail_unless (range->min.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->min.seconds == 0);
+  fail_unless (range->min2.frames == 0.01);
+  fail_unless (range->max.type == GST_RTSP_TIME_FRAMES);
+  fail_unless (range->max.seconds == 35999);
+  fail_unless (range->max2.frames == 24.99);
+  fail_unless (gst_rtsp_range_get_times (range, &min, &max));
+  fail_unless (min == 400000);
+  GST_DEBUG ("%" GST_TIME_FORMAT, GST_TIME_ARGS (max));
+  /* 35999 + (24.99/25) */
+  fail_unless (max == 35999999600000);
+  str = gst_rtsp_range_to_string (range);
+  GST_DEBUG ("%s", str);
+  fail_unless_equals_string ("smpte-25=0:00:00:00.01-9:59:59:24.99", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtsp_range_clock)
+{
+  GstRTSPTimeRange *range;
+  gchar *str;
+
+  fail_unless (gst_rtsp_range_parse ("clock=", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("clock=20001010T120023Z",
+          &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("clock=-", &range) == GST_RTSP_EINVAL);
+  fail_unless (gst_rtsp_range_parse ("clock=-20001010T120934Z",
+          &range) == GST_RTSP_EINVAL);
+
+  fail_unless (gst_rtsp_range_parse ("clock=20001010T122345Z-",
+          &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_CLOCK);
+  fail_unless (range->min.type == GST_RTSP_TIME_UTC);
+  fail_unless (range->min2.year == 2000);
+  fail_unless (range->min2.month == 10);
+  fail_unless (range->min2.day == 10);
+  fail_unless (range->min.seconds == 44625.0);
+  fail_unless (range->max.type == GST_RTSP_TIME_END);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("clock=20001010T122345Z-", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse
+      ("clock=19700101T103423Z-30001230T201209.89Z", &range) == GST_RTSP_OK);
+  fail_unless (range->unit == GST_RTSP_RANGE_CLOCK);
+  fail_unless (range->min.type == GST_RTSP_TIME_UTC);
+  fail_unless (range->min2.year == 1970);
+  fail_unless (range->min2.month == 1);
+  fail_unless (range->min2.day == 1);
+  fail_unless (range->min.seconds == 38063.0);
+  fail_unless (range->max.type == GST_RTSP_TIME_UTC);
+  fail_unless (range->max2.year == 3000);
+  fail_unless (range->max2.month == 12);
+  fail_unless (range->max2.day == 30);
+  fail_unless (range->max.seconds == 72729.89);
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string ("clock=19700101T103423Z-30001230T201209.89Z", str);
+  GST_DEBUG ("%s", str);
+  g_free (str);
+  gst_rtsp_range_free (range);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_rtsp_range_convert)
+{
+  GstRTSPTimeRange *range;
+  gchar *str;
+
+  fail_unless (gst_rtsp_range_parse ("npt=now-100", &range) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  fail_unless (!gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_CLOCK));
+  fail_unless (!gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "npt=now-100");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=0-100", &range) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "npt=0-100");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=0-100", &range) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE_25));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "npt=0-100");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("npt=0-100", &range) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_CLOCK));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "npt=0-100");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte-25=10:07:00-10:07:33:05.01", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE_25));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "smpte-25=10:07:00-10:07:33:05.01");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte=77:07:59-", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "smpte=77:07:59-");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte=10:07:00-10:07:33:05.01", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "smpte=10:07:00-10:07:33:05.01");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte-25=10:07:00-10:07:33:05.01", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_CLOCK));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE_25));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "smpte-25=10:07:00-10:07:33:05.01");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse ("smpte=10:07:00-10:07:33:05.01", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_CLOCK));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "smpte=10:07:00-10:07:33:05.01");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse
+      ("clock=20001010T120023Z-20320518T152245.12Z", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_NPT));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_CLOCK));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "clock=20001010T120023Z-20320518T152245.12Z");
+  g_free (str);
+  gst_rtsp_range_free (range);
+
+  fail_unless (gst_rtsp_range_parse
+      ("clock=20001010T120023Z-20320518T152245.12Z", &range)
+      == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_SMPTE));
+  fail_unless (gst_rtsp_range_convert_units (range, GST_RTSP_RANGE_CLOCK));
+  str = gst_rtsp_range_to_string (range);
+  fail_unless_equals_string (str, "clock=20001010T120023Z-20320518T152245.12Z");
+  g_free (str);
+  gst_rtsp_range_free (range);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtsp_suite (void)
 {
@@ -131,6 +550,10 @@
   tcase_add_test (tc_chain, test_rtsp_url_components_1);
   tcase_add_test (tc_chain, test_rtsp_url_components_2);
   tcase_add_test (tc_chain, test_rtsp_url_components_3);
+  tcase_add_test (tc_chain, test_rtsp_range_npt);
+  tcase_add_test (tc_chain, test_rtsp_range_smpte);
+  tcase_add_test (tc_chain, test_rtsp_range_clock);
+  tcase_add_test (tc_chain, test_rtsp_range_convert);
 
   return s;
 }
diff --git a/tests/check/libs/sdp.c b/tests/check/libs/sdp.c
new file mode 100644
index 0000000..0cf5fc4
--- /dev/null
+++ b/tests/check/libs/sdp.c
@@ -0,0 +1,214 @@
+/* GStreamer unit tests for the SDP support library
+ *
+ * Copyright (C) 2013 Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/check/gstcheck.h>
+
+/*
+ * test_sdp.c - gst-kurento-plugins
+ *
+ * Copyright (C) 2013 Kurento
+ * Contact: Miguel París Díaz <mparisdiaz@gmail.com>
+ * Contact: José Antonio Santos Cadenas <santoscadenas@kurento.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/sdp/gstsdpmessage.h>
+
+static const gchar *sdp = "v=0\r\n"
+    "o=- 123456 0 IN IP4 127.0.0.1\r\n"
+    "s=TestSessionToCopy\r\n"
+    "c=IN IP4 127.0.0.1\r\n"
+    "t=0 0\r\n"
+    "m=video 3434 RTP/AVP 96 97 99\r\n"
+    "a=rtpmap:96 MP4V-ES/90000\r\n"
+    "a=rtpmap:97 H263-1998/90000\r\n"
+    "a=rtpmap:99 H263/90000\r\n"
+    "a=sendrecv\r\n"
+    "m=video 6565 RTP/AVP 98\r\n"
+    "a=rtpmap:98 VP8/90000\r\n"
+    "a=sendrecv\r\n" "m=audio 4545 RTP/AVP 14\r\n" "a=sendrecv\r\n"
+    "m=audio 1010 TCP 14\r\n";
+
+GST_START_TEST (boxed)
+{
+  GValue value = G_VALUE_INIT;
+  GValue value_copy = G_VALUE_INIT;
+  GstSDPMessage *message, *copy;
+  gchar *message1_str, *message2_str, *copy_str;
+  const gchar *repeat1[] = { "789", "012", NULL };
+
+  gst_sdp_message_new (&message);
+  gst_sdp_message_parse_buffer ((guint8 *) sdp, -1, message);
+
+  gst_sdp_message_add_time (message, "123", "456", repeat1);
+
+  g_value_init (&value, GST_TYPE_SDP_MESSAGE);
+  g_value_init (&value_copy, GST_TYPE_SDP_MESSAGE);
+
+  g_value_set_boxed (&value, message);
+  message1_str = gst_sdp_message_as_text (message);
+  GST_DEBUG ("message1:\n%s", message1_str);
+  gst_sdp_message_free (message);
+
+  message = g_value_get_boxed (&value);
+  message2_str = gst_sdp_message_as_text (message);
+  GST_DEBUG ("message2:\n%s", message2_str);
+
+  fail_if (g_strcmp0 (message1_str, message2_str) != 0);
+
+  g_value_copy (&value, &value_copy);
+  g_value_reset (&value);
+
+  copy = g_value_dup_boxed (&value_copy);
+  g_value_reset (&value_copy);
+
+  copy_str = gst_sdp_message_as_text (copy);
+  gst_sdp_message_free (copy);
+  GST_DEBUG ("copy:\n%s", copy_str);
+
+  fail_if (g_strcmp0 (message1_str, copy_str));
+
+  g_free (message1_str);
+  g_free (message2_str);
+  g_free (copy_str);
+}
+
+GST_END_TEST
+GST_START_TEST (copy)
+{
+  GstSDPMessage *message, *copy;
+  glong length = -1;
+  gchar *message_str, *copy_str;
+  const gchar *repeat1[] = { "789", "012", NULL };
+  const gchar *repeat2[] = { "987", "210", NULL };
+
+  gst_sdp_message_new (&message);
+  gst_sdp_message_parse_buffer ((guint8 *) sdp, length, message);
+
+  gst_sdp_message_add_time (message, "123", "456", repeat1);
+  gst_sdp_message_add_time (message, "321", "654", repeat2);
+
+  gst_sdp_message_copy (message, &copy);
+
+  message_str = gst_sdp_message_as_text (message);
+  GST_DEBUG ("Original:\n%s", message_str);
+  gst_sdp_message_free (message);
+  copy_str = gst_sdp_message_as_text (copy);
+  gst_sdp_message_free (copy);
+  GST_DEBUG ("Copy:\n%s", copy_str);
+
+  fail_if (g_strcmp0 (copy_str, message_str) != 0);
+  g_free (copy_str);
+  g_free (message_str);
+}
+
+GST_END_TEST
+GST_START_TEST (modify)
+{
+  GstSDPMessage *message;
+  glong length = -1;
+  const GstSDPMedia *media;
+  const gchar *old_val;
+  const gchar *result;
+  GstSDPAttribute attr;
+
+  gst_sdp_message_new (&message);
+  gst_sdp_message_parse_buffer ((guint8 *) sdp, length, message);
+
+  /* modify session attribute */
+  fail_unless (gst_sdp_message_add_attribute (message,
+          "test_attr_session", "param1=val1") == GST_SDP_OK);
+
+  old_val = gst_sdp_message_get_attribute_val (message, "test_attr_session");
+
+  fail_unless (old_val != NULL);
+  attr.key = g_strdup ("test_attr_session");
+  attr.value = g_strdup_printf ("%s;param2=val2", old_val);
+
+  fail_unless (gst_sdp_message_replace_attribute (message, 0,
+          &attr) == GST_SDP_OK);
+
+  result = gst_sdp_message_get_attribute_val (message, "test_attr_session");
+  fail_unless (result != NULL);
+  fail_unless (g_strcmp0 (result, "param1=val1;param2=val2") == 0);
+
+
+  /* modify media attribute */
+  media = gst_sdp_message_get_media (message, 0);
+  fail_unless (media != NULL);
+
+  fail_unless (gst_sdp_media_add_attribute ((GstSDPMedia *) media,
+          "test_attr_media", "param3=val3") == GST_SDP_OK);
+
+  old_val =
+      gst_sdp_media_get_attribute_val ((GstSDPMedia *) media,
+      "test_attr_media");
+
+  fail_unless (old_val != NULL);
+  attr.key = g_strdup ("test_attr_media");
+  attr.value = g_strdup ("myparam=myval");
+
+  fail_unless (gst_sdp_media_replace_attribute ((GstSDPMedia *) media,
+          0, &attr) == GST_SDP_OK);
+
+  result =
+      gst_sdp_media_get_attribute_val ((GstSDPMedia *) media,
+      "test_attr_media");
+  fail_unless (result != NULL);
+  fail_unless (g_strcmp0 (result, "myparam=myval") == 0);
+
+  gst_sdp_message_free (message);
+}
+
+GST_END_TEST
+/*
+ * End of test cases
+ */
+static Suite *
+sdp_suite (void)
+{
+  Suite *s = suite_create ("sdp");
+  TCase *tc_chain = tcase_create ("sdp");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, copy);
+  tcase_add_test (tc_chain, boxed);
+  tcase_add_test (tc_chain, modify);
+
+  return s;
+}
+
+GST_CHECK_MAIN (sdp);
diff --git a/tests/check/libs/struct_i386.h b/tests/check/libs/struct_i386.h
index e0bdacd..b5d5172 100644
--- a/tests/check/libs/struct_i386.h
+++ b/tests/check/libs/struct_i386.h
@@ -53,7 +53,7 @@
   {"GstRTSPMessage", sizeof (GstRTSPMessage), 44},
   {"GstRTSPRange", sizeof (GstRTSPRange), 8},
   {"GstRTSPTime", sizeof (GstRTSPTime), 12},
-  {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 28},
+  {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 68},
   {"GstRTSPTransport", sizeof (GstRTSPTransport), 92},
   {"GstRTSPUrl", sizeof (GstRTSPUrl), 32},
   {"GstRTSPWatchFuncs", sizeof (GstRTSPWatchFuncs), 48},
diff --git a/tests/check/libs/struct_x86_64.h b/tests/check/libs/struct_x86_64.h
index 212dba7..e60f624 100644
--- a/tests/check/libs/struct_x86_64.h
+++ b/tests/check/libs/struct_x86_64.h
@@ -53,7 +53,7 @@
   {"GstRTSPMessage", sizeof (GstRTSPMessage), 88},
   {"GstRTSPRange", sizeof (GstRTSPRange), 8},
   {"GstRTSPTime", sizeof (GstRTSPTime), 16},
-  {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 40},
+  {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 88},
   {"GstRTSPTransport", sizeof (GstRTSPTransport), 120},
   {"GstRTSPUrl", sizeof (GstRTSPUrl), 56},
   {"GstRTSPWatchFuncs", sizeof (GstRTSPWatchFuncs), 96},
diff --git a/tests/check/libs/tag.c b/tests/check/libs/tag.c
index e2c411d..38f18c3 100644
--- a/tests/check/libs/tag.c
+++ b/tests/check/libs/tag.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/libs/video.c b/tests/check/libs/video.c
index d33fab2..abbab19 100644
--- a/tests/check/libs/video.c
+++ b/tests/check/libs/video.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -403,6 +403,80 @@
 
 GST_END_TEST;
 
+#define WIDTH 77
+#define HEIGHT 20
+
+GST_START_TEST (test_video_formats_pack_unpack)
+{
+  guint n, num_formats;
+
+  num_formats = 100;
+  fail_unless (gst_video_format_to_string (num_formats) == NULL);
+  while (gst_video_format_to_string (num_formats) == NULL)
+    --num_formats;
+  GST_INFO ("number of known video formats: %d", num_formats);
+
+  for (n = GST_VIDEO_FORMAT_ENCODED + 1; n < num_formats; ++n) {
+    const GstVideoFormatInfo *vfinfo, *unpackinfo;
+    GstVideoFormat fmt = n;
+    GstVideoInfo vinfo;
+    gpointer data[GST_VIDEO_MAX_PLANES];
+    gint stride[GST_VIDEO_MAX_PLANES];
+    guint8 *vdata, *unpack_data;
+    gsize vsize, unpack_size;
+    guint p;
+
+    GST_INFO ("testing %s", gst_video_format_to_string (fmt));
+
+    vfinfo = gst_video_format_get_info (fmt);
+    fail_unless (vfinfo != NULL);
+
+    unpackinfo = gst_video_format_get_info (vfinfo->unpack_format);
+    fail_unless (unpackinfo != NULL);
+
+    gst_video_info_init (&vinfo);
+    gst_video_info_set_format (&vinfo, fmt, WIDTH, HEIGHT);
+    vsize = GST_VIDEO_INFO_SIZE (&vinfo);
+    vdata = g_malloc (vsize);
+    memset (vdata, 0x99, vsize);
+
+    g_assert (vfinfo->pack_lines == 1);
+
+    unpack_size =
+        GST_VIDEO_FORMAT_INFO_BITS (unpackinfo) *
+        GST_VIDEO_FORMAT_INFO_N_COMPONENTS (unpackinfo) *
+        GST_ROUND_UP_16 (WIDTH);
+    unpack_data = g_malloc (unpack_size);
+
+    for (p = 0; p < GST_VIDEO_INFO_N_PLANES (&vinfo); ++p) {
+      data[p] = vdata + GST_VIDEO_INFO_PLANE_OFFSET (&vinfo, p);
+      stride[p] = GST_VIDEO_INFO_PLANE_STRIDE (&vinfo, p);
+    }
+
+    /* now unpack */
+    vfinfo->unpack_func (vfinfo, GST_VIDEO_PACK_FLAG_NONE, unpack_data, data,
+        stride, 0, 0, WIDTH);
+
+    /* and pack */
+    vfinfo->pack_func (vfinfo, GST_VIDEO_PACK_FLAG_NONE, unpack_data,
+        unpack_size, data, stride, GST_VIDEO_CHROMA_SITE_UNKNOWN, 0, WIDTH);
+
+    /* now unpack */
+    vfinfo->unpack_func (vfinfo, GST_VIDEO_PACK_FLAG_NONE, unpack_data, data,
+        stride, 0, HEIGHT - 1, WIDTH);
+
+    /* and pack */
+    vfinfo->pack_func (vfinfo, GST_VIDEO_PACK_FLAG_NONE, unpack_data,
+        unpack_size, data, stride, GST_VIDEO_CHROMA_SITE_UNKNOWN, HEIGHT - 1,
+        WIDTH);
+
+    g_free (unpack_data);
+    g_free (vdata);
+  }
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_video_formats)
 {
   guint i;
@@ -477,10 +551,10 @@
         off1 = GST_VIDEO_INFO_COMP_OFFSET (&vinfo, 1);
         off2 = GST_VIDEO_INFO_COMP_OFFSET (&vinfo, 2);
 
-        GST_INFO ("size %d <> %d", size, paintinfo.endptr);
-        GST_INFO ("off0 %d <> %d", off0, paintinfo.yp);
-        GST_INFO ("off1 %d <> %d", off1, paintinfo.up);
-        GST_INFO ("off2 %d <> %d", off2, paintinfo.vp);
+        GST_INFO ("size %d <> %d", size, (int) ((guintptr) paintinfo.endptr));
+        GST_INFO ("off0 %d <> %d", off0, (int) ((guintptr) paintinfo.yp));
+        GST_INFO ("off1 %d <> %d", off1, (int) ((guintptr) paintinfo.up));
+        GST_INFO ("off2 %d <> %d", off2, (int) ((guintptr) paintinfo.vp));
 
         fail_unless_equals_int (size, (unsigned long) paintinfo.endptr);
         fail_unless_equals_int (off0, (unsigned long) paintinfo.yp);
@@ -1592,6 +1666,7 @@
   tcase_add_test (tc_chain, test_video_formats);
   tcase_add_test (tc_chain, test_video_formats_rgb);
   tcase_add_test (tc_chain, test_video_formats_all);
+  tcase_add_test (tc_chain, test_video_formats_pack_unpack);
   tcase_add_test (tc_chain, test_dar_calc);
   tcase_add_test (tc_chain, test_parse_caps_rgb);
   tcase_add_test (tc_chain, test_events);
diff --git a/tests/check/libs/xmpwriter.c b/tests/check/libs/xmpwriter.c
index 8d762dc..e7889d6 100644
--- a/tests/check/libs/xmpwriter.c
+++ b/tests/check/libs/xmpwriter.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/basetime.c b/tests/check/pipelines/basetime.c
index a753d40..180935f 100644
--- a/tests/check/pipelines/basetime.c
+++ b/tests/check/pipelines/basetime.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -97,7 +97,7 @@
 
   /* Run main pipeline first */
   gst_element_set_state (p1, GST_STATE_PLAYING);
-  g_timeout_add (2 * 1000, break_mainloop, loop);
+  g_timeout_add_seconds (2, break_mainloop, loop);
   g_main_loop_run (loop);
 
   /* Now activate the audio pipeline */
@@ -111,7 +111,7 @@
   /* At this point a new clock is selected */
   gst_element_set_state (p1, GST_STATE_PLAYING);
 
-  g_timeout_add (2 * 1000, break_mainloop, loop);
+  g_timeout_add_seconds (2, break_mainloop, loop);
   g_main_loop_run (loop);
 
   gst_object_unref (pad);
diff --git a/tests/check/pipelines/capsfilter-renegotiation.c b/tests/check/pipelines/capsfilter-renegotiation.c
index c1b8a92..0ade9a2 100644
--- a/tests/check/pipelines/capsfilter-renegotiation.c
+++ b/tests/check/pipelines/capsfilter-renegotiation.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* Ideally this would be in core, but using videotestsrc makes it easier */
diff --git a/tests/check/pipelines/gio.c b/tests/check/pipelines/gio.c
index 10b9213..5ce6688 100644
--- a/tests/check/pipelines/gio.c
+++ b/tests/check/pipelines/gio.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/pipelines/oggmux.c b/tests/check/pipelines/oggmux.c
index 68204e2..37037d8 100644
--- a/tests/check/pipelines/oggmux.c
+++ b/tests/check/pipelines/oggmux.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c
index 8eeb591..7a6b76c 100644
--- a/tests/check/pipelines/simple-launch-lines.c
+++ b/tests/check/pipelines/simple-launch-lines.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
diff --git a/tests/check/pipelines/theoraenc.c b/tests/check/pipelines/theoraenc.c
index 59da6c4..03750ff 100644
--- a/tests/check/pipelines/theoraenc.c
+++ b/tests/check/pipelines/theoraenc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/check/pipelines/vorbisdec.c b/tests/check/pipelines/vorbisdec.c
index fd66e51..43c673a 100644
--- a/tests/check/pipelines/vorbisdec.c
+++ b/tests/check/pipelines/vorbisdec.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
@@ -79,9 +79,13 @@
   loop = g_main_loop_new (NULL, FALSE);
 
   g_main_loop_run (loop);
+  g_main_loop_unref (loop);
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
 
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
+
   fail_if (messages > 0, "Received imperfect timestamp messages");
   gst_object_unref (pipeline);
 }
@@ -92,7 +96,7 @@
 static Suite *
 vorbisenc_suite (void)
 {
-  Suite *s = suite_create ("vorbisenc");
+  Suite *s = suite_create ("vorbisdec");
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
diff --git a/tests/check/pipelines/vorbisenc.c b/tests/check/pipelines/vorbisenc.c
index d09b297..a9bb2be 100644
--- a/tests/check/pipelines/vorbisenc.c
+++ b/tests/check/pipelines/vorbisenc.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/check/gstcheck.h>
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 22f20a5..b020c4b 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -20,23 +19,51 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,15 +83,14 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/common/parallel-subdirs.mak
+DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = tests/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -103,21 +129,28 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -125,9 +158,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -493,22 +546,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -523,57 +579,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -589,12 +600,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -606,15 +612,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -623,6 +625,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -783,22 +800,20 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am
 
 
 .PHONY: independent-subdirs $(SUBDIRS)
diff --git a/tests/examples/app/Makefile.in b/tests/examples/app/Makefile.in
index 5ccbb1b..9c01bbd 100644
--- a/tests/examples/app/Makefile.in
+++ b/tests/examples/app/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,13 +83,13 @@
 	appsrc-stream2$(EXEEXT) appsrc-ra$(EXEEXT) \
 	appsrc-seekable$(EXEEXT) appsink-src$(EXEEXT)
 subdir = tests/examples/app
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -110,6 +137,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 appsink_src_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(appsink_src_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -150,6 +178,18 @@
 appsrc_ex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(appsrc_ex_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -162,20 +202,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(appsink_src_SOURCES) $(appsrc_ra_SOURCES) \
 	$(appsrc_seekable_SOURCES) $(appsrc_stream_SOURCES) \
 	$(appsrc_stream2_SOURCES) $(appsrc_ex_SOURCES)
@@ -187,6 +223,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -547,21 +600,27 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 appsink-src$(EXEEXT): $(appsink_src_OBJECTS) $(appsink_src_DEPENDENCIES) $(EXTRA_appsink_src_DEPENDENCIES) 
 	@rm -f appsink-src$(EXEEXT)
 	$(AM_V_CCLD)$(appsink_src_LINK) $(appsink_src_OBJECTS) $(appsink_src_LDADD) $(LIBS)
+
 appsrc-ra$(EXEEXT): $(appsrc_ra_OBJECTS) $(appsrc_ra_DEPENDENCIES) $(EXTRA_appsrc_ra_DEPENDENCIES) 
 	@rm -f appsrc-ra$(EXEEXT)
 	$(AM_V_CCLD)$(appsrc_ra_LINK) $(appsrc_ra_OBJECTS) $(appsrc_ra_LDADD) $(LIBS)
+
 appsrc-seekable$(EXEEXT): $(appsrc_seekable_OBJECTS) $(appsrc_seekable_DEPENDENCIES) $(EXTRA_appsrc_seekable_DEPENDENCIES) 
 	@rm -f appsrc-seekable$(EXEEXT)
 	$(AM_V_CCLD)$(appsrc_seekable_LINK) $(appsrc_seekable_OBJECTS) $(appsrc_seekable_LDADD) $(LIBS)
+
 appsrc-stream$(EXEEXT): $(appsrc_stream_OBJECTS) $(appsrc_stream_DEPENDENCIES) $(EXTRA_appsrc_stream_DEPENDENCIES) 
 	@rm -f appsrc-stream$(EXEEXT)
 	$(AM_V_CCLD)$(appsrc_stream_LINK) $(appsrc_stream_OBJECTS) $(appsrc_stream_LDADD) $(LIBS)
+
 appsrc-stream2$(EXEEXT): $(appsrc_stream2_OBJECTS) $(appsrc_stream2_DEPENDENCIES) $(EXTRA_appsrc_stream2_DEPENDENCIES) 
 	@rm -f appsrc-stream2$(EXEEXT)
 	$(AM_V_CCLD)$(appsrc_stream2_LINK) $(appsrc_stream2_OBJECTS) $(appsrc_stream2_LDADD) $(LIBS)
+
 appsrc_ex$(EXEEXT): $(appsrc_ex_OBJECTS) $(appsrc_ex_DEPENDENCIES) $(EXTRA_appsrc_ex_DEPENDENCIES) 
 	@rm -f appsrc_ex$(EXEEXT)
 	$(AM_V_CCLD)$(appsrc_ex_LINK) $(appsrc_ex_OBJECTS) $(appsrc_ex_LDADD) $(LIBS)
@@ -690,26 +749,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -721,15 +769,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -738,6 +782,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -879,18 +938,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/app/appsrc-ra.c b/tests/examples/app/appsrc-ra.c
index 6809572..6f79550 100644
--- a/tests/examples/app/appsrc-ra.c
+++ b/tests/examples/app/appsrc-ra.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/app/appsrc-seekable.c b/tests/examples/app/appsrc-seekable.c
index 57e5562..5bef768 100644
--- a/tests/examples/app/appsrc-seekable.c
+++ b/tests/examples/app/appsrc-seekable.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/app/appsrc-stream.c b/tests/examples/app/appsrc-stream.c
index 3cd9a4b..af7237b 100644
--- a/tests/examples/app/appsrc-stream.c
+++ b/tests/examples/app/appsrc-stream.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/app/appsrc-stream2.c b/tests/examples/app/appsrc-stream2.c
index c010e0e..cce675a 100644
--- a/tests/examples/app/appsrc-stream2.c
+++ b/tests/examples/app/appsrc-stream2.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/audio/Makefile.in b/tests/examples/audio/Makefile.in
index 9ade9b7..baf68b5 100644
--- a/tests/examples/audio/Makefile.in
+++ b/tests/examples/audio/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1)
 subdir = tests/examples/audio
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -110,6 +137,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 audiomix_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(audiomix_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -121,6 +149,18 @@
 volume_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(volume_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -133,20 +173,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(audiomix_SOURCES) $(volume_SOURCES)
 DIST_SOURCES = $(am__audiomix_SOURCES_DIST) $(am__volume_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -154,6 +190,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -498,9 +551,11 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 audiomix$(EXEEXT): $(audiomix_OBJECTS) $(audiomix_DEPENDENCIES) $(EXTRA_audiomix_DEPENDENCIES) 
 	@rm -f audiomix$(EXEEXT)
 	$(AM_V_CCLD)$(audiomix_LINK) $(audiomix_OBJECTS) $(audiomix_LDADD) $(LIBS)
+
 volume$(EXEEXT): $(volume_OBJECTS) $(volume_DEPENDENCIES) $(EXTRA_volume_DEPENDENCIES) 
 	@rm -f volume$(EXEEXT)
 	$(AM_V_CCLD)$(volume_LINK) $(volume_OBJECTS) $(volume_LDADD) $(LIBS)
@@ -569,26 +624,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -600,15 +644,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -617,6 +657,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -758,18 +813,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/audio/audiomix.c b/tests/examples/audio/audiomix.c
index fda556d..dfe95c8 100644
--- a/tests/examples/audio/audiomix.c
+++ b/tests/examples/audio/audiomix.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/audio/volume.c b/tests/examples/audio/volume.c
index a5e13c4..5e0d5ef 100644
--- a/tests/examples/audio/volume.c
+++ b/tests/examples/audio/volume.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/dynamic/Makefile.in b/tests/examples/dynamic/Makefile.in
index fa62cdf..738abcc 100644
--- a/tests/examples/dynamic/Makefile.in
+++ b/tests/examples/dynamic/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,13 +82,13 @@
 noinst_PROGRAMS = addstream$(EXEEXT) codec-select$(EXEEXT) \
 	sprinkle$(EXEEXT) sprinkle2$(EXEEXT) sprinkle3$(EXEEXT)
 subdir = tests/examples/dynamic
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -108,6 +135,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 addstream_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(addstream_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -135,6 +163,18 @@
 sprinkle3_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(sprinkle3_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -147,20 +187,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(addstream_SOURCES) $(codec_select_SOURCES) \
 	$(sprinkle_SOURCES) $(sprinkle2_SOURCES) $(sprinkle3_SOURCES)
 DIST_SOURCES = $(addstream_SOURCES) $(codec_select_SOURCES) \
@@ -170,6 +206,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -521,18 +574,23 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 addstream$(EXEEXT): $(addstream_OBJECTS) $(addstream_DEPENDENCIES) $(EXTRA_addstream_DEPENDENCIES) 
 	@rm -f addstream$(EXEEXT)
 	$(AM_V_CCLD)$(addstream_LINK) $(addstream_OBJECTS) $(addstream_LDADD) $(LIBS)
+
 codec-select$(EXEEXT): $(codec_select_OBJECTS) $(codec_select_DEPENDENCIES) $(EXTRA_codec_select_DEPENDENCIES) 
 	@rm -f codec-select$(EXEEXT)
 	$(AM_V_CCLD)$(codec_select_LINK) $(codec_select_OBJECTS) $(codec_select_LDADD) $(LIBS)
+
 sprinkle$(EXEEXT): $(sprinkle_OBJECTS) $(sprinkle_DEPENDENCIES) $(EXTRA_sprinkle_DEPENDENCIES) 
 	@rm -f sprinkle$(EXEEXT)
 	$(AM_V_CCLD)$(sprinkle_LINK) $(sprinkle_OBJECTS) $(sprinkle_LDADD) $(LIBS)
+
 sprinkle2$(EXEEXT): $(sprinkle2_OBJECTS) $(sprinkle2_DEPENDENCIES) $(EXTRA_sprinkle2_DEPENDENCIES) 
 	@rm -f sprinkle2$(EXEEXT)
 	$(AM_V_CCLD)$(sprinkle2_LINK) $(sprinkle2_OBJECTS) $(sprinkle2_LDADD) $(LIBS)
+
 sprinkle3$(EXEEXT): $(sprinkle3_OBJECTS) $(sprinkle3_DEPENDENCIES) $(EXTRA_sprinkle3_DEPENDENCIES) 
 	@rm -f sprinkle3$(EXEEXT)
 	$(AM_V_CCLD)$(sprinkle3_LINK) $(sprinkle3_OBJECTS) $(sprinkle3_LDADD) $(LIBS)
@@ -646,26 +704,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -677,15 +724,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -694,6 +737,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -835,18 +893,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/dynamic/addstream.c b/tests/examples/dynamic/addstream.c
index 5d23630..b58b5cc 100644
--- a/tests/examples/dynamic/addstream.c
+++ b/tests/examples/dynamic/addstream.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -151,7 +151,7 @@
           create_stream
           ("( v4l2src ! videoconvert ! timeoverlay ! queue ! xvimagesink name=v4llive )");
       pause_play_stream (bin1, 0);
-      g_timeout_add (1000, (GSourceFunc) perform_step, GINT_TO_POINTER (1));
+      g_timeout_add_seconds (1, (GSourceFunc) perform_step, GINT_TO_POINTER (1));
       break;
     case 1:
       /* live stream locks on to running_time, pipeline reconfigures latency
@@ -159,14 +159,14 @@
       g_print ("creating bin2\n");
       bin2 = create_stream ("( alsasrc ! queue ! alsasink name=alsalive )");
       pause_play_stream (bin2, 0);
-      g_timeout_add (1000, (GSourceFunc) perform_step, GINT_TO_POINTER (2));
+      g_timeout_add_seconds (1, (GSourceFunc) perform_step, GINT_TO_POINTER (2));
       break;
     case 2:
       /* non-live stream, need base_time to align with current running live sources. */
       g_print ("creating bin3\n");
       bin3 = create_stream ("( audiotestsrc ! alsasink name=atnonlive )");
       pause_play_stream (bin3, 0);
-      g_timeout_add (1000, (GSourceFunc) perform_step, GINT_TO_POINTER (3));
+      g_timeout_add_seconds (1, (GSourceFunc) perform_step, GINT_TO_POINTER (3));
       break;
     case 3:
       g_print ("creating bin4\n");
@@ -174,7 +174,7 @@
           create_stream
           ("( videotestsrc ! timeoverlay ! videoconvert ! ximagesink name=vtnonlive )");
       pause_play_stream (bin4, 0);
-      g_timeout_add (1000, (GSourceFunc) perform_step, GINT_TO_POINTER (4));
+      g_timeout_add_seconds (1, (GSourceFunc) perform_step, GINT_TO_POINTER (4));
       break;
     case 4:
       /* live stream locks on to running_time */
@@ -183,7 +183,7 @@
           create_stream
           ("( videotestsrc is-live=1 ! timeoverlay ! videoconvert ! ximagesink name=vtlive )");
       pause_play_stream (bin5, 0);
-      g_timeout_add (1000, (GSourceFunc) perform_step, GINT_TO_POINTER (5));
+      g_timeout_add_seconds (1, (GSourceFunc) perform_step, GINT_TO_POINTER (5));
       break;
     case 5:
       /* pause the fist live stream for 2 seconds */
@@ -196,7 +196,7 @@
       g_print ("PAUSE bin5 for 2 seconds\n");
       pause_play_stream (bin5, 2);
       g_print ("Waiting 5 seconds\n");
-      g_timeout_add (5000, (GSourceFunc) perform_step, GINT_TO_POINTER (6));
+      g_timeout_add_seconds (5, (GSourceFunc) perform_step, GINT_TO_POINTER (6));
       break;
     case 6:
       g_print ("quiting\n");
diff --git a/tests/examples/dynamic/codec-select.c b/tests/examples/dynamic/codec-select.c
index bf27dba..48d5c83 100644
--- a/tests/examples/dynamic/codec-select.c
+++ b/tests/examples/dynamic/codec-select.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -279,7 +279,7 @@
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
   /* add a timeout to cycle between the formats */
-  g_timeout_add (1000, (GSourceFunc) do_switch, pipeline);
+  g_timeout_add_seconds (1, (GSourceFunc) do_switch, pipeline);
 
   /* now run */
   g_main_loop_run (loop);
diff --git a/tests/examples/dynamic/sprinkle.c b/tests/examples/dynamic/sprinkle.c
index 2a51318..da49e95 100644
--- a/tests/examples/dynamic/sprinkle.c
+++ b/tests/examples/dynamic/sprinkle.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/tests/examples/dynamic/sprinkle2.c b/tests/examples/dynamic/sprinkle2.c
index 2bf8b4e..fa06054 100644
--- a/tests/examples/dynamic/sprinkle2.c
+++ b/tests/examples/dynamic/sprinkle2.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/tests/examples/dynamic/sprinkle3.c b/tests/examples/dynamic/sprinkle3.c
index 79aedad..cfdea8b 100644
--- a/tests/examples/dynamic/sprinkle3.c
+++ b/tests/examples/dynamic/sprinkle3.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /*
diff --git a/tests/examples/encoding/Makefile.in b/tests/examples/encoding/Makefile.in
index 03e0173..99b73cc 100644
--- a/tests/examples/encoding/Makefile.in
+++ b/tests/examples/encoding/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1)
 subdir = tests/examples/encoding
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -113,6 +140,19 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -125,20 +165,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(encoding_SOURCES)
 DIST_SOURCES = $(encoding_SOURCES)
 am__can_run_installinfo = \
@@ -146,6 +182,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -497,6 +550,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 encoding$(EXEEXT): $(encoding_OBJECTS) $(encoding_DEPENDENCIES) $(EXTRA_encoding_DEPENDENCIES) 
 	@rm -f encoding$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(encoding_OBJECTS) $(encoding_LDADD) $(LIBS)
@@ -537,26 +591,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -568,15 +611,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -585,6 +624,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -726,18 +780,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/encoding/encoding.c b/tests/examples/encoding/encoding.c
index bbe5d4f..bde601c 100644
--- a/tests/examples/encoding/encoding.c
+++ b/tests/examples/encoding/encoding.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/encoding/gstcapslist.c b/tests/examples/encoding/gstcapslist.c
index 4785291..0113116 100644
--- a/tests/examples/encoding/gstcapslist.c
+++ b/tests/examples/encoding/gstcapslist.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include "gstcapslist.h"
diff --git a/tests/examples/encoding/gstcapslist.h b/tests/examples/encoding/gstcapslist.h
index fa0ed83..2fba588 100644
--- a/tests/examples/encoding/gstcapslist.h
+++ b/tests/examples/encoding/gstcapslist.h
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/examples/fft/Makefile.in b/tests/examples/fft/Makefile.in
index 81efac9..c96f843 100644
--- a/tests/examples/fft/Makefile.in
+++ b/tests/examples/fft/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = fftrange$(EXEEXT)
 subdir = tests/examples/fft
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -108,9 +135,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 fftrange_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(fftrange_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -123,20 +163,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(fftrange_SOURCES)
 DIST_SOURCES = $(fftrange_SOURCES)
 am__can_run_installinfo = \
@@ -144,6 +180,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -486,6 +539,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 fftrange$(EXEEXT): $(fftrange_OBJECTS) $(fftrange_DEPENDENCIES) $(EXTRA_fftrange_DEPENDENCIES) 
 	@rm -f fftrange$(EXEEXT)
 	$(AM_V_CCLD)$(fftrange_LINK) $(fftrange_OBJECTS) $(fftrange_LDADD) $(LIBS)
@@ -539,26 +593,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -570,15 +613,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -587,6 +626,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -728,18 +782,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/fft/fftrange.c b/tests/examples/fft/fftrange.c
index 6573730..806af55 100644
--- a/tests/examples/fft/fftrange.c
+++ b/tests/examples/fft/fftrange.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdio.h>
diff --git a/tests/examples/gio/Makefile.in b/tests/examples/gio/Makefile.in
index 65a49b3..29f01a1 100644
--- a/tests/examples/gio/Makefile.in
+++ b/tests/examples/gio/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 @HAVE_GTK_TRUE@noinst_PROGRAMS = giosrc-mounting$(EXEEXT)
 subdir = tests/examples/gio
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -110,10 +137,23 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 giosrc_mounting_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(giosrc_mounting_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -126,20 +166,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(giosrc_mounting_SOURCES)
 DIST_SOURCES = $(am__giosrc_mounting_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -147,6 +183,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -486,6 +539,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 giosrc-mounting$(EXEEXT): $(giosrc_mounting_OBJECTS) $(giosrc_mounting_DEPENDENCIES) $(EXTRA_giosrc_mounting_DEPENDENCIES) 
 	@rm -f giosrc-mounting$(EXEEXT)
 	$(AM_V_CCLD)$(giosrc_mounting_LINK) $(giosrc_mounting_OBJECTS) $(giosrc_mounting_LDADD) $(LIBS)
@@ -539,26 +593,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -570,15 +613,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -587,6 +626,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -728,18 +782,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/gio/giosrc-mounting.c b/tests/examples/gio/giosrc-mounting.c
index e2e1df8..9db6263 100644
--- a/tests/examples/gio/giosrc-mounting.c
+++ b/tests/examples/gio/giosrc-mounting.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/examples/overlay/Makefile.in b/tests/examples/overlay/Makefile.in
index a17cf3e..31ff5c4 100644
--- a/tests/examples/overlay/Makefile.in
+++ b/tests/examples/overlay/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -57,13 +84,13 @@
 @HAVE_QT_GV_TRUE@@USE_X_TRUE@am__append_3 = qtgv-videooverlay
 noinst_PROGRAMS = $(am__EXEEXT_4)
 subdir = tests/examples/overlay
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -121,6 +148,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 gtk_videooverlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(gtk_videooverlay_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
@@ -152,6 +180,18 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
 	$(qtgv_videooverlay_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -164,17 +204,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -183,17 +222,16 @@
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_@AM_V@)
 am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = $(gtk_videooverlay_SOURCES) $(qt_videooverlay_SOURCES) \
 	$(qtgv_videooverlay_SOURCES) \
 	$(nodist_qtgv_videooverlay_SOURCES)
@@ -205,6 +243,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -565,12 +620,15 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 gtk-videooverlay$(EXEEXT): $(gtk_videooverlay_OBJECTS) $(gtk_videooverlay_DEPENDENCIES) $(EXTRA_gtk_videooverlay_DEPENDENCIES) 
 	@rm -f gtk-videooverlay$(EXEEXT)
 	$(AM_V_CCLD)$(gtk_videooverlay_LINK) $(gtk_videooverlay_OBJECTS) $(gtk_videooverlay_LDADD) $(LIBS)
+
 qt-videooverlay$(EXEEXT): $(qt_videooverlay_OBJECTS) $(qt_videooverlay_DEPENDENCIES) $(EXTRA_qt_videooverlay_DEPENDENCIES) 
 	@rm -f qt-videooverlay$(EXEEXT)
 	$(AM_V_CXXLD)$(qt_videooverlay_LINK) $(qt_videooverlay_OBJECTS) $(qt_videooverlay_LDADD) $(LIBS)
+
 qtgv-videooverlay$(EXEEXT): $(qtgv_videooverlay_OBJECTS) $(qtgv_videooverlay_DEPENDENCIES) $(EXTRA_qtgv_videooverlay_DEPENDENCIES) 
 	@rm -f qtgv-videooverlay$(EXEEXT)
 	$(AM_V_CXXLD)$(qtgv_videooverlay_LINK) $(qtgv_videooverlay_OBJECTS) $(qtgv_videooverlay_LDADD) $(LIBS)
@@ -690,26 +748,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -721,15 +768,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -738,6 +781,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -880,18 +938,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 @HAVE_QT_GV_TRUE@@USE_X_TRUE@moc_%.cpp:%.h
diff --git a/tests/examples/overlay/gtk-videooverlay.c b/tests/examples/overlay/gtk-videooverlay.c
index d0545b1..e49092f 100644
--- a/tests/examples/overlay/gtk-videooverlay.c
+++ b/tests/examples/overlay/gtk-videooverlay.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/overlay/qt-videooverlay.cpp b/tests/examples/overlay/qt-videooverlay.cpp
index 6b43119..d5c9d9e 100644
--- a/tests/examples/overlay/qt-videooverlay.cpp
+++ b/tests/examples/overlay/qt-videooverlay.cpp
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/overlay/qtgv-videooverlay.cpp b/tests/examples/overlay/qtgv-videooverlay.cpp
index 0b0528a..ba60e37 100644
--- a/tests/examples/overlay/qtgv-videooverlay.cpp
+++ b/tests/examples/overlay/qtgv-videooverlay.cpp
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/overlay/qtgv-videooverlay.h b/tests/examples/overlay/qtgv-videooverlay.h
index 091fff8..0f49cde 100644
--- a/tests/examples/overlay/qtgv-videooverlay.h
+++ b/tests/examples/overlay/qtgv-videooverlay.h
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifndef QTGV_XOVERLAY_H
diff --git a/tests/examples/playback/Makefile.in b/tests/examples/playback/Makefile.in
index 79e9804..20d9d03 100644
--- a/tests/examples/playback/Makefile.in
+++ b/tests/examples/playback/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = playback-test$(EXEEXT)
 subdir = tests/examples/playback
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -110,6 +137,19 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -122,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = playback-test.c
 DIST_SOURCES = playback-test.c
 am__can_run_installinfo = \
@@ -143,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -485,6 +538,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 playback-test$(EXEEXT): $(playback_test_OBJECTS) $(playback_test_DEPENDENCIES) $(EXTRA_playback_test_DEPENDENCIES) 
 	@rm -f playback-test$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(playback_test_OBJECTS) $(playback_test_LDADD) $(LIBS)
@@ -524,26 +578,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -555,15 +598,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -572,6 +611,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -713,18 +767,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/playback/playback-test.c b/tests/examples/playback/playback-test.c
index 3e123c2..82b986c 100644
--- a/tests/examples/playback/playback-test.c
+++ b/tests/examples/playback/playback-test.c
@@ -19,8 +19,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -558,8 +558,12 @@
   do_seek (app, GST_FORMAT_TIME, real);
 
   if (app->play_scrub) {
-    GST_DEBUG ("do scrub seek, PLAYING");
-    gst_element_set_state (app->pipeline, GST_STATE_PLAYING);
+    if (app->buffering) {
+      GST_DEBUG ("do scrub seek, waiting for buffering");
+    } else {
+      GST_DEBUG ("do scrub seek, PLAYING");
+      gst_element_set_state (app->pipeline, GST_STATE_PLAYING);
+    }
 
     if (app->seek_timeout_id == 0) {
       app->seek_timeout_id =
@@ -673,8 +677,12 @@
     }
   } else {
     if (app->state == GST_STATE_PLAYING) {
-      GST_DEBUG ("stop scrub seek, PLAYING");
-      gst_element_set_state (app->pipeline, GST_STATE_PLAYING);
+      if (app->buffering) {
+        GST_DEBUG ("stop scrub seek, waiting for buffering");
+      } else {
+        GST_DEBUG ("stop scrub seek, PLAYING");
+        gst_element_set_state (app->pipeline, GST_STATE_PLAYING);
+      }
     }
   }
 
@@ -1206,11 +1214,13 @@
 filter_vis_features (GstPluginFeature * feature, gpointer data)
 {
   GstElementFactory *f;
+  const gchar *klass;
 
   if (!GST_IS_ELEMENT_FACTORY (feature))
     return FALSE;
   f = GST_ELEMENT_FACTORY (feature);
-  if (!g_strrstr (gst_element_factory_get_klass (f), "Visualization"))
+  klass = gst_element_factory_get_metadata (f, GST_ELEMENT_METADATA_KLASS);
+  if (!g_strrstr (klass, "Visualization"))
     return FALSE;
 
   return TRUE;
@@ -1231,7 +1241,8 @@
     const gchar *name;
 
     entry.factory = GST_ELEMENT_FACTORY (walk->data);
-    name = gst_element_factory_get_longname (entry.factory);
+    name = gst_element_factory_get_metadata (entry.factory,
+        GST_ELEMENT_METADATA_LONGNAME);
 
     g_array_append_val (app->vis_entries, entry);
     gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (app->vis_combo), name);
diff --git a/tests/examples/playrec/Makefile.in b/tests/examples/playrec/Makefile.in
index cd3f206..ce142bc 100644
--- a/tests/examples/playrec/Makefile.in
+++ b/tests/examples/playrec/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = playrec$(EXEEXT)
 subdir = tests/examples/playrec
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -107,9 +134,22 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 playrec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(playrec_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -122,20 +162,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(playrec_SOURCES)
 DIST_SOURCES = $(playrec_SOURCES)
 am__can_run_installinfo = \
@@ -143,6 +179,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -482,6 +535,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 playrec$(EXEEXT): $(playrec_OBJECTS) $(playrec_DEPENDENCIES) $(EXTRA_playrec_DEPENDENCIES) 
 	@rm -f playrec$(EXEEXT)
 	$(AM_V_CCLD)$(playrec_LINK) $(playrec_OBJECTS) $(playrec_LDADD) $(LIBS)
@@ -535,26 +589,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -566,15 +609,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -583,6 +622,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -724,18 +778,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/playrec/playrec.c b/tests/examples/playrec/playrec.c
index 9f79a03..dd803a1 100644
--- a/tests/examples/playrec/playrec.c
+++ b/tests/examples/playrec/playrec.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /* An example of synchronized playback and recording.
diff --git a/tests/examples/seek/Makefile.in b/tests/examples/seek/Makefile.in
index b83d715..5a9fa5e 100644
--- a/tests/examples/seek/Makefile.in
+++ b/tests/examples/seek/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_2)
 subdir = tests/examples/seek
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -114,6 +141,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 scrubby_SOURCES = scrubby.c
 scrubby_OBJECTS = scrubby.$(OBJEXT)
 scrubby_LDADD = $(LDADD)
@@ -132,6 +160,18 @@
 stepping2_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -144,20 +184,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = jsseek.c scrubby.c stepping.c stepping2.c
 DIST_SOURCES = jsseek.c scrubby.c stepping.c stepping2.c
 am__can_run_installinfo = \
@@ -165,6 +201,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -509,15 +562,19 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 jsseek$(EXEEXT): $(jsseek_OBJECTS) $(jsseek_DEPENDENCIES) $(EXTRA_jsseek_DEPENDENCIES) 
 	@rm -f jsseek$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(jsseek_OBJECTS) $(jsseek_LDADD) $(LIBS)
+
 scrubby$(EXEEXT): $(scrubby_OBJECTS) $(scrubby_DEPENDENCIES) $(EXTRA_scrubby_DEPENDENCIES) 
 	@rm -f scrubby$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(scrubby_OBJECTS) $(scrubby_LDADD) $(LIBS)
+
 stepping$(EXEEXT): $(stepping_OBJECTS) $(stepping_DEPENDENCIES) $(EXTRA_stepping_DEPENDENCIES) 
 	@rm -f stepping$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(stepping_OBJECTS) $(stepping_LDADD) $(LIBS)
+
 stepping2$(EXEEXT): $(stepping2_OBJECTS) $(stepping2_DEPENDENCIES) $(EXTRA_stepping2_DEPENDENCIES) 
 	@rm -f stepping2$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(stepping2_OBJECTS) $(stepping2_LDADD) $(LIBS)
@@ -560,26 +617,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -591,15 +637,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -608,6 +650,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -749,18 +806,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/seek/jsseek.c b/tests/examples/seek/jsseek.c
index 7bc3b7b..0d3f455 100644
--- a/tests/examples/seek/jsseek.c
+++ b/tests/examples/seek/jsseek.c
@@ -17,8 +17,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/examples/seek/stepping.c b/tests/examples/seek/stepping.c
index d970db4..44bc033 100644
--- a/tests/examples/seek/stepping.c
+++ b/tests/examples/seek/stepping.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdlib.h>
diff --git a/tests/examples/seek/stepping2.c b/tests/examples/seek/stepping2.c
index 39cf336..70d297d 100644
--- a/tests/examples/seek/stepping2.c
+++ b/tests/examples/seek/stepping2.c
@@ -16,8 +16,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <stdlib.h>
diff --git a/tests/examples/snapshot/Makefile.in b/tests/examples/snapshot/Makefile.in
index 972771a..ca5fc86 100644
--- a/tests/examples/snapshot/Makefile.in
+++ b/tests/examples/snapshot/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_2)
 subdir = tests/examples/snapshot
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -108,6 +135,19 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -120,20 +160,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = snapshot.c
 DIST_SOURCES = snapshot.c
 am__can_run_installinfo = \
@@ -141,6 +177,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -480,6 +533,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 snapshot$(EXEEXT): $(snapshot_OBJECTS) $(snapshot_DEPENDENCIES) $(EXTRA_snapshot_DEPENDENCIES) 
 	@rm -f snapshot$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(snapshot_OBJECTS) $(snapshot_LDADD) $(LIBS)
@@ -519,26 +573,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -550,15 +593,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -567,6 +606,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -708,18 +762,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/examples/snapshot/snapshot.c b/tests/examples/snapshot/snapshot.c
index 081919a..4ddad45 100644
--- a/tests/examples/snapshot/snapshot.c
+++ b/tests/examples/snapshot/snapshot.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index b913b2e..7b7843a 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,13 +79,12 @@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/files
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -97,12 +123,18 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -110,6 +142,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -449,11 +482,11 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
+
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -589,15 +622,16 @@
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index fbd605e..2d2ac4e 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -59,13 +86,13 @@
 	test-scale$(EXEEXT) test-box$(EXEEXT) \
 	test-effect-switch$(EXEEXT)
 subdir = tests/icles
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -120,6 +147,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 audio_trickplay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(audio_trickplay_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
@@ -229,6 +257,18 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(test_videooverlay_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -241,20 +281,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(audio_trickplay_SOURCES) $(input_selector_test_SOURCES) \
 	$(output_selector_test_SOURCES) $(playbin_text_SOURCES) \
 	$(position_formats_SOURCES) $(stress_playbin_SOURCES) \
@@ -272,13 +308,14 @@
 	$(test_effect_switch_SOURCES) $(test_scale_SOURCES) \
 	$(am__test_textoverlay_SOURCES_DIST) \
 	$(am__test_videooverlay_SOURCES_DIST)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -286,9 +323,29 @@
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -713,42 +770,55 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 audio-trickplay$(EXEEXT): $(audio_trickplay_OBJECTS) $(audio_trickplay_DEPENDENCIES) $(EXTRA_audio_trickplay_DEPENDENCIES) 
 	@rm -f audio-trickplay$(EXEEXT)
 	$(AM_V_CCLD)$(audio_trickplay_LINK) $(audio_trickplay_OBJECTS) $(audio_trickplay_LDADD) $(LIBS)
+
 input-selector-test$(EXEEXT): $(input_selector_test_OBJECTS) $(input_selector_test_DEPENDENCIES) $(EXTRA_input_selector_test_DEPENDENCIES) 
 	@rm -f input-selector-test$(EXEEXT)
 	$(AM_V_CCLD)$(input_selector_test_LINK) $(input_selector_test_OBJECTS) $(input_selector_test_LDADD) $(LIBS)
+
 output-selector-test$(EXEEXT): $(output_selector_test_OBJECTS) $(output_selector_test_DEPENDENCIES) $(EXTRA_output_selector_test_DEPENDENCIES) 
 	@rm -f output-selector-test$(EXEEXT)
 	$(AM_V_CCLD)$(output_selector_test_LINK) $(output_selector_test_OBJECTS) $(output_selector_test_LDADD) $(LIBS)
+
 playbin-text$(EXEEXT): $(playbin_text_OBJECTS) $(playbin_text_DEPENDENCIES) $(EXTRA_playbin_text_DEPENDENCIES) 
 	@rm -f playbin-text$(EXEEXT)
 	$(AM_V_CCLD)$(playbin_text_LINK) $(playbin_text_OBJECTS) $(playbin_text_LDADD) $(LIBS)
+
 position-formats$(EXEEXT): $(position_formats_OBJECTS) $(position_formats_DEPENDENCIES) $(EXTRA_position_formats_DEPENDENCIES) 
 	@rm -f position-formats$(EXEEXT)
 	$(AM_V_CCLD)$(position_formats_LINK) $(position_formats_OBJECTS) $(position_formats_LDADD) $(LIBS)
+
 stress-playbin$(EXEEXT): $(stress_playbin_OBJECTS) $(stress_playbin_DEPENDENCIES) $(EXTRA_stress_playbin_DEPENDENCIES) 
 	@rm -f stress-playbin$(EXEEXT)
 	$(AM_V_CCLD)$(stress_playbin_LINK) $(stress_playbin_OBJECTS) $(stress_playbin_LDADD) $(LIBS)
+
 stress-videooverlay$(EXEEXT): $(stress_videooverlay_OBJECTS) $(stress_videooverlay_DEPENDENCIES) $(EXTRA_stress_videooverlay_DEPENDENCIES) 
 	@rm -f stress-videooverlay$(EXEEXT)
 	$(AM_V_CCLD)$(stress_videooverlay_LINK) $(stress_videooverlay_OBJECTS) $(stress_videooverlay_LDADD) $(LIBS)
+
 test-box$(EXEEXT): $(test_box_OBJECTS) $(test_box_DEPENDENCIES) $(EXTRA_test_box_DEPENDENCIES) 
 	@rm -f test-box$(EXEEXT)
 	$(AM_V_CCLD)$(test_box_LINK) $(test_box_OBJECTS) $(test_box_LDADD) $(LIBS)
+
 test-colorkey$(EXEEXT): $(test_colorkey_OBJECTS) $(test_colorkey_DEPENDENCIES) $(EXTRA_test_colorkey_DEPENDENCIES) 
 	@rm -f test-colorkey$(EXEEXT)
 	$(AM_V_CCLD)$(test_colorkey_LINK) $(test_colorkey_OBJECTS) $(test_colorkey_LDADD) $(LIBS)
+
 test-effect-switch$(EXEEXT): $(test_effect_switch_OBJECTS) $(test_effect_switch_DEPENDENCIES) $(EXTRA_test_effect_switch_DEPENDENCIES) 
 	@rm -f test-effect-switch$(EXEEXT)
 	$(AM_V_CCLD)$(test_effect_switch_LINK) $(test_effect_switch_OBJECTS) $(test_effect_switch_LDADD) $(LIBS)
+
 test-scale$(EXEEXT): $(test_scale_OBJECTS) $(test_scale_DEPENDENCIES) $(EXTRA_test_scale_DEPENDENCIES) 
 	@rm -f test-scale$(EXEEXT)
 	$(AM_V_CCLD)$(test_scale_LINK) $(test_scale_OBJECTS) $(test_scale_LDADD) $(LIBS)
+
 test-textoverlay$(EXEEXT): $(test_textoverlay_OBJECTS) $(test_textoverlay_DEPENDENCIES) $(EXTRA_test_textoverlay_DEPENDENCIES) 
 	@rm -f test-textoverlay$(EXEEXT)
 	$(AM_V_CCLD)$(test_textoverlay_LINK) $(test_textoverlay_OBJECTS) $(test_textoverlay_LDADD) $(LIBS)
+
 test-videooverlay$(EXEEXT): $(test_videooverlay_OBJECTS) $(test_videooverlay_DEPENDENCIES) $(EXTRA_test_videooverlay_DEPENDENCIES) 
 	@rm -f test-videooverlay$(EXEEXT)
 	$(AM_V_CCLD)$(test_videooverlay_LINK) $(test_videooverlay_OBJECTS) $(test_videooverlay_LDADD) $(LIBS)
@@ -983,22 +1053,25 @@
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -1013,57 +1086,12 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -1079,12 +1107,7 @@
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -1096,15 +1119,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -1113,6 +1132,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1278,12 +1312,11 @@
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	clean-noinstPROGRAMS ctags ctags-recursive distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool \
+	clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
@@ -1293,8 +1326,8 @@
 	install-strip installcheck installcheck-am installdirs \
 	installdirs-am maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/icles/input-selector-test.c b/tests/icles/input-selector-test.c
index 3865826..996f33c 100644
--- a/tests/icles/input-selector-test.c
+++ b/tests/icles/input-selector-test.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/output-selector-test.c b/tests/icles/output-selector-test.c
index cc9cf7e..b9d3910 100644
--- a/tests/icles/output-selector-test.c
+++ b/tests/icles/output-selector-test.c
@@ -1,6 +1,6 @@
 #include <gst/gst.h>
 
-#define SWITCH_TIMEOUT 1000
+#define SWITCH_TIMEOUT 1
 #define NUM_VIDEO_BUFFERS 500
 
 static GMainLoop *loop;
@@ -151,7 +151,7 @@
   }
 
   /* add switch callback */
-  g_timeout_add (SWITCH_TIMEOUT, switch_cb, osel);
+  g_timeout_add_seconds (SWITCH_TIMEOUT, switch_cb, osel);
 
   /* change to playing */
   bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
diff --git a/tests/icles/playback/Makefile.in b/tests/icles/playback/Makefile.in
index 8d81318..3c2c8c1 100644
--- a/tests/icles/playback/Makefile.in
+++ b/tests/icles/playback/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,13 +83,13 @@
 	test3$(EXEEXT) test4$(EXEEXT) test5$(EXEEXT) test6$(EXEEXT) \
 	test7$(EXEEXT)
 subdir = tests/icles/playback
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -109,6 +136,7 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 decodetest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(decodetest_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@@ -154,6 +182,18 @@
 test7_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(test7_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -166,20 +206,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = decodetest.c test.c test2.c test3.c test4.c test5.c test6.c \
 	test7.c
 DIST_SOURCES = decodetest.c test.c test2.c test3.c test4.c test5.c \
@@ -189,6 +225,23 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -541,27 +594,35 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 decodetest$(EXEEXT): $(decodetest_OBJECTS) $(decodetest_DEPENDENCIES) $(EXTRA_decodetest_DEPENDENCIES) 
 	@rm -f decodetest$(EXEEXT)
 	$(AM_V_CCLD)$(decodetest_LINK) $(decodetest_OBJECTS) $(decodetest_LDADD) $(LIBS)
+
 test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) $(EXTRA_test_DEPENDENCIES) 
 	@rm -f test$(EXEEXT)
 	$(AM_V_CCLD)$(test_LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
+
 test2$(EXEEXT): $(test2_OBJECTS) $(test2_DEPENDENCIES) $(EXTRA_test2_DEPENDENCIES) 
 	@rm -f test2$(EXEEXT)
 	$(AM_V_CCLD)$(test2_LINK) $(test2_OBJECTS) $(test2_LDADD) $(LIBS)
+
 test3$(EXEEXT): $(test3_OBJECTS) $(test3_DEPENDENCIES) $(EXTRA_test3_DEPENDENCIES) 
 	@rm -f test3$(EXEEXT)
 	$(AM_V_CCLD)$(test3_LINK) $(test3_OBJECTS) $(test3_LDADD) $(LIBS)
+
 test4$(EXEEXT): $(test4_OBJECTS) $(test4_DEPENDENCIES) $(EXTRA_test4_DEPENDENCIES) 
 	@rm -f test4$(EXEEXT)
 	$(AM_V_CCLD)$(test4_LINK) $(test4_OBJECTS) $(test4_LDADD) $(LIBS)
+
 test5$(EXEEXT): $(test5_OBJECTS) $(test5_DEPENDENCIES) $(EXTRA_test5_DEPENDENCIES) 
 	@rm -f test5$(EXEEXT)
 	$(AM_V_CCLD)$(test5_LINK) $(test5_OBJECTS) $(test5_LDADD) $(LIBS)
+
 test6$(EXEEXT): $(test6_OBJECTS) $(test6_DEPENDENCIES) $(EXTRA_test6_DEPENDENCIES) 
 	@rm -f test6$(EXEEXT)
 	$(AM_V_CCLD)$(test6_LINK) $(test6_OBJECTS) $(test6_LDADD) $(LIBS)
+
 test7$(EXEEXT): $(test7_OBJECTS) $(test7_DEPENDENCIES) $(EXTRA_test7_DEPENDENCIES) 
 	@rm -f test7$(EXEEXT)
 	$(AM_V_CCLD)$(test7_LINK) $(test7_OBJECTS) $(test7_LDADD) $(LIBS)
@@ -720,26 +781,15 @@
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -751,15 +801,11 @@
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -768,6 +814,21 @@
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -909,18 +970,19 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/icles/playback/decodetest.c b/tests/icles/playback/decodetest.c
index c50bf9f..7511fc5 100644
--- a/tests/icles/playback/decodetest.c
+++ b/tests/icles/playback/decodetest.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <gst/gst.h>
 #include <string.h>
diff --git a/tests/icles/playback/test.c b/tests/icles/playback/test.c
index 1c65a9d..bbb28af 100644
--- a/tests/icles/playback/test.c
+++ b/tests/icles/playback/test.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/tests/icles/playback/test2.c b/tests/icles/playback/test2.c
index 86f3c4c..28f62e5 100644
--- a/tests/icles/playback/test2.c
+++ b/tests/icles/playback/test2.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <gst/gst.h>
 
diff --git a/tests/icles/playback/test3.c b/tests/icles/playback/test3.c
index d55e633..16b61d6 100644
--- a/tests/icles/playback/test3.c
+++ b/tests/icles/playback/test3.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #include <gst/gst.h>
 
diff --git a/tests/icles/playback/test4.c b/tests/icles/playback/test4.c
index c2bb7c9..8fdeb3f 100644
--- a/tests/icles/playback/test4.c
+++ b/tests/icles/playback/test4.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/tests/icles/playback/test5.c b/tests/icles/playback/test5.c
index 678a908..3be15a1 100644
--- a/tests/icles/playback/test5.c
+++ b/tests/icles/playback/test5.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/tests/icles/playback/test6.c b/tests/icles/playback/test6.c
index 1d99dec..22c77a7 100644
--- a/tests/icles/playback/test6.c
+++ b/tests/icles/playback/test6.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/tests/icles/playback/test7.c b/tests/icles/playback/test7.c
index 94218c3..b9abcb5 100644
--- a/tests/icles/playback/test7.c
+++ b/tests/icles/playback/test7.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/tests/icles/playbin-text.c b/tests/icles/playbin-text.c
index a087424..93cd6ac 100644
--- a/tests/icles/playbin-text.c
+++ b/tests/icles/playbin-text.c
@@ -14,8 +14,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/position-formats.c b/tests/icles/position-formats.c
index 3530f53..2263520 100644
--- a/tests/icles/position-formats.c
+++ b/tests/icles/position-formats.c
@@ -131,7 +131,7 @@
   gst_object_unref (bus);
 
   /* add timeout for queries */
-  g_timeout_add (1000, (GSourceFunc) run_queries, (gpointer) bin);
+  g_timeout_add_seconds (1, (GSourceFunc) run_queries, (gpointer) bin);
 
   /* run the show */
   if (gst_element_set_state (bin,
diff --git a/tests/icles/stress-videooverlay.c b/tests/icles/stress-videooverlay.c
index dd15daa..433aca2 100644
--- a/tests/icles/stress-videooverlay.c
+++ b/tests/icles/stress-videooverlay.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -156,7 +156,7 @@
   g_timeout_add (50, (GSourceFunc) resize_window, pipeline);
   g_timeout_add (50, (GSourceFunc) move_window, pipeline);
   g_timeout_add (100, (GSourceFunc) cycle_window, ov);
-  g_timeout_add (2000, (GSourceFunc) toggle_events, ov);
+  g_timeout_add_seconds (2, (GSourceFunc) toggle_events, ov);
 
   gst_message_unref (message);
   return GST_BUS_DROP;
@@ -233,8 +233,8 @@
 
   /* We want to get out after */
   //g_timeout_add (500000, (GSourceFunc) terminate_playback, pipeline);
-  g_timeout_add (10000, (GSourceFunc) pause_playback, pipeline);
-  g_timeout_add (20000, (GSourceFunc) start_playback, pipeline);
+  g_timeout_add_seconds (10, (GSourceFunc) pause_playback, pipeline);
+  g_timeout_add_seconds (20, (GSourceFunc) start_playback, pipeline);
 
   g_main_loop_run (loop);
 
diff --git a/tests/icles/test-box.c b/tests/icles/test-box.c
index f5cca9a..6d3aef4 100644
--- a/tests/icles/test-box.c
+++ b/tests/icles/test-box.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/test-colorkey.c b/tests/icles/test-colorkey.c
index 480016b..2e6c782 100644
--- a/tests/icles/test-colorkey.c
+++ b/tests/icles/test-colorkey.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/test-effect-switch.c b/tests/icles/test-effect-switch.c
index 6004d71..c022eba 100644
--- a/tests/icles/test-effect-switch.c
+++ b/tests/icles/test-effect-switch.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  *
  * Based on python script by Thiago Sousa Santos
  */
diff --git a/tests/icles/test-scale.c b/tests/icles/test-scale.c
index e780f8a..b2ce716 100644
--- a/tests/icles/test-scale.c
+++ b/tests/icles/test-scale.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/test-textoverlay.c b/tests/icles/test-textoverlay.c
index 3d3e8fe..c1c59d5 100644
--- a/tests/icles/test-textoverlay.c
+++ b/tests/icles/test-textoverlay.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tests/icles/test-videooverlay.c b/tests/icles/test-videooverlay.c
index a9094dd..191c30d 100644
--- a/tests/icles/test-videooverlay.c
+++ b/tests/icles/test-videooverlay.c
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/tools/Makefile.in b/tools/Makefile.in
index bb8a1fb..29dfe43 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,13 +81,13 @@
 target_triplet = @target@
 bin_PROGRAMS = gst-discoverer-@GST_API_VERSION@$(EXEEXT)
 subdir = tools
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
 	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
 	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
 	$(top_srcdir)/common/m4/as-scrub-include.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
@@ -115,6 +142,19 @@
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -127,20 +167,16 @@
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES)
 DIST_SOURCES = $(gst_discoverer_@GST_API_VERSION@_SOURCES)
 am__can_run_installinfo = \
@@ -178,8 +214,7 @@
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
-ETAGS = etags
-CTAGS = ctags
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -527,10 +562,12 @@
 	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -551,7 +588,8 @@
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -564,6 +602,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 gst-discoverer-@GST_API_VERSION@$(EXEEXT): $(gst_discoverer_@GST_API_VERSION@_OBJECTS) $(gst_discoverer_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_discoverer_@GST_API_VERSION@_DEPENDENCIES) 
 	@rm -f gst-discoverer-@GST_API_VERSION@$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_discoverer_@GST_API_VERSION@_OBJECTS) $(gst_discoverer_@GST_API_VERSION@_LDADD) $(LIBS)
@@ -645,73 +684,14 @@
 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
 	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
+ctags CTAGS:
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+cscope cscopelist:
 
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-	@list='$(MANS)'; if test -n "$$list"; then \
-	  list=`for p in $$list; do \
-	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-	  if test -n "$$list" && \
-	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
-	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
-	    exit 1; \
-	  else :; fi; \
-	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -786,8 +766,7 @@
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+distclean-am: clean-am distclean-compile distclean-generic
 
 dvi: dvi-am
 
@@ -853,10 +832,10 @@
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool ctags distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
+.PHONY: all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool cscopelist-am ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool distdir \
+	dvi dvi-am html html-am info info-am install install-am \
 	install-binPROGRAMS install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
@@ -864,7 +843,7 @@
 	install-ps-am install-strip installcheck installcheck-am \
 	installdirs maintainer-clean maintainer-clean-generic \
 	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
 	uninstall-am uninstall-binPROGRAMS uninstall-man \
 	uninstall-man1
 
diff --git a/tools/gst-discoverer.c b/tools/gst-discoverer.c
index 4ad26d7..2c02b07 100644
--- a/tools/gst-discoverer.c
+++ b/tools/gst-discoverer.c
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -83,6 +83,9 @@
     my_g_string_append_printf (s, depth, "  None\n");
   }
 
+  my_g_string_append_printf (s, depth, "Stream ID: %s\n",
+      gst_discoverer_stream_info_get_stream_id (info));
+
   audio_info = (GstDiscovererAudioInfo *) info;
   ctmp = gst_discoverer_audio_info_get_language (audio_info);
   my_g_string_append_printf (s, depth, "Language: %s\n",
@@ -147,6 +150,9 @@
     my_g_string_append_printf (s, depth, "  None\n");
   }
 
+  my_g_string_append_printf (s, depth, "Stream ID: %s\n",
+      gst_discoverer_stream_info_get_stream_id (info));
+
   video_info = (GstDiscovererVideoInfo *) info;
   my_g_string_append_printf (s, depth, "Width: %u\n",
       gst_discoverer_video_info_get_width (video_info));
@@ -218,6 +224,9 @@
     my_g_string_append_printf (s, depth, "  None\n");
   }
 
+  my_g_string_append_printf (s, depth, "Stream ID: %s\n",
+      gst_discoverer_stream_info_get_stream_id (info));
+
   subtitle_info = (GstDiscovererSubtitleInfo *) info;
   ctmp = gst_discoverer_subtitle_info_get_language (subtitle_info);
   my_g_string_append_printf (s, depth, "Language: %s\n",
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index 8e958c5..f8f7c9e 100644
--- a/win32/common/_stdint.h
+++ b/win32/common/_stdint.h
@@ -1,8 +1,8 @@
 #ifndef _GST_PLUGINS_BASE__STDINT_H
 #define _GST_PLUGINS_BASE__STDINT_H 1
 #ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 1.0.8"
-/* generated using gnu compiler gcc (Debian 4.7.2-5) 4.7.2 */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.1.2"
+/* generated using gnu compiler gcc-4.8 (Debian 4.8.1-6) 4.8.1 */
 #define _STDINT_HAVE_STDINT_H 1
 #include <stdint.h>
 #endif
diff --git a/win32/common/audio-enumtypes.c b/win32/common/audio-enumtypes.c
index 55104ae..63a12ec 100644
--- a/win32/common/audio-enumtypes.c
+++ b/win32/common/audio-enumtypes.c
@@ -240,6 +240,8 @@
           "paused"},
       {GST_AUDIO_RING_BUFFER_STATE_STARTED,
           "GST_AUDIO_RING_BUFFER_STATE_STARTED", "started"},
+      {GST_AUDIO_RING_BUFFER_STATE_ERROR, "GST_AUDIO_RING_BUFFER_STATE_ERROR",
+          "error"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
diff --git a/win32/common/config.h b/win32/common/config.h
index 9245cf1..d739620 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -95,6 +95,9 @@
 /* Define to enable ALSA (used by alsa). */
 #undef HAVE_ALSA
 
+/* ARM NEON support is enabled */
+#undef HAVE_ARM_NEON
+
 /* Define to enable CDParanoia (used by cdparanoia). */
 #undef HAVE_CDPARANOIA
 
@@ -212,6 +215,9 @@
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Defined if mmap is supported */
+#undef HAVE_MMAP
+
 /* Define to enable Xiph Ogg library (used by ogg). */
 #undef HAVE_OGG
 
@@ -322,7 +328,7 @@
 #define PACKAGE_NAME "GStreamer Base Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 1.0.8"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.1.2"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
@@ -331,7 +337,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.8"
+#define PACKAGE_VERSION "1.1.2"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -365,7 +371,7 @@
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "1.0.8"
+#define VERSION "1.1.2"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def
index 3a7a364..be4d23a 100644
--- a/win32/common/libgstaudio.def
+++ b/win32/common/libgstaudio.def
@@ -118,6 +118,7 @@
 	gst_audio_info_from_caps
 	gst_audio_info_get_type
 	gst_audio_info_init
+	gst_audio_info_is_equal
 	gst_audio_info_new
 	gst_audio_info_set_format
 	gst_audio_info_to_caps
diff --git a/win32/common/libgstpbutils.def b/win32/common/libgstpbutils.def
index 0d81051..e9980ac 100644
--- a/win32/common/libgstpbutils.def
+++ b/win32/common/libgstpbutils.def
@@ -46,6 +46,7 @@
 	gst_discoverer_stream_info_get_misc
 	gst_discoverer_stream_info_get_next
 	gst_discoverer_stream_info_get_previous
+	gst_discoverer_stream_info_get_stream_id
 	gst_discoverer_stream_info_get_stream_type_nick
 	gst_discoverer_stream_info_get_tags
 	gst_discoverer_stream_info_get_toc
@@ -77,11 +78,13 @@
 	gst_encoding_profile_find
 	gst_encoding_profile_from_discoverer
 	gst_encoding_profile_get_description
+	gst_encoding_profile_get_file_extension
 	gst_encoding_profile_get_format
 	gst_encoding_profile_get_input_caps
 	gst_encoding_profile_get_name
 	gst_encoding_profile_get_presence
 	gst_encoding_profile_get_preset
+	gst_encoding_profile_get_preset_name
 	gst_encoding_profile_get_restriction
 	gst_encoding_profile_get_type
 	gst_encoding_profile_get_type_nick
@@ -91,6 +94,7 @@
 	gst_encoding_profile_set_name
 	gst_encoding_profile_set_presence
 	gst_encoding_profile_set_preset
+	gst_encoding_profile_set_preset_name
 	gst_encoding_profile_set_restriction
 	gst_encoding_target_add_profile
 	gst_encoding_target_get_category
diff --git a/win32/common/libgstrtp.def b/win32/common/libgstrtp.def
index baa111e..0e224a9 100644
--- a/win32/common/libgstrtp.def
+++ b/win32/common/libgstrtp.def
@@ -83,6 +83,7 @@
 	gst_rtp_buffer_get_csrc
 	gst_rtp_buffer_get_csrc_count
 	gst_rtp_buffer_get_extension
+	gst_rtp_buffer_get_extension_bytes
 	gst_rtp_buffer_get_extension_data
 	gst_rtp_buffer_get_extension_onebyte_header
 	gst_rtp_buffer_get_extension_twobytes_header
@@ -92,6 +93,7 @@
 	gst_rtp_buffer_get_padding
 	gst_rtp_buffer_get_payload
 	gst_rtp_buffer_get_payload_buffer
+	gst_rtp_buffer_get_payload_bytes
 	gst_rtp_buffer_get_payload_len
 	gst_rtp_buffer_get_payload_subbuffer
 	gst_rtp_buffer_get_payload_type
@@ -117,5 +119,9 @@
 	gst_rtp_buffer_set_timestamp
 	gst_rtp_buffer_set_version
 	gst_rtp_buffer_unmap
+	gst_rtp_hdrext_get_ntp_56
+	gst_rtp_hdrext_get_ntp_64
+	gst_rtp_hdrext_set_ntp_56
+	gst_rtp_hdrext_set_ntp_64
 	gst_rtp_payload_info_for_name
 	gst_rtp_payload_info_for_pt
diff --git a/win32/common/libgstrtsp.def b/win32/common/libgstrtsp.def
index d623dae..c5f85f3 100644
--- a/win32/common/libgstrtsp.def
+++ b/win32/common/libgstrtsp.def
@@ -11,6 +11,8 @@
 	gst_rtsp_connection_free
 	gst_rtsp_connection_get_ip
 	gst_rtsp_connection_get_read_socket
+	gst_rtsp_connection_get_remember_session_id
+	gst_rtsp_connection_get_tls
 	gst_rtsp_connection_get_tunnelid
 	gst_rtsp_connection_get_url
 	gst_rtsp_connection_get_write_socket
@@ -27,6 +29,7 @@
 	gst_rtsp_connection_set_ip
 	gst_rtsp_connection_set_proxy
 	gst_rtsp_connection_set_qos_dscp
+	gst_rtsp_connection_set_remember_session_id
 	gst_rtsp_connection_set_tunneled
 	gst_rtsp_connection_write
 	gst_rtsp_event_get_type
@@ -75,7 +78,10 @@
 	gst_rtsp_method_as_text
 	gst_rtsp_method_get_type
 	gst_rtsp_options_as_text
+	gst_rtsp_options_from_text
+	gst_rtsp_range_convert_units
 	gst_rtsp_range_free
+	gst_rtsp_range_get_times
 	gst_rtsp_range_parse
 	gst_rtsp_range_to_string
 	gst_rtsp_result_get_type
@@ -101,8 +107,10 @@
 	gst_rtsp_version_as_text
 	gst_rtsp_version_get_type
 	gst_rtsp_watch_attach
+	gst_rtsp_watch_get_send_backlog
 	gst_rtsp_watch_new
 	gst_rtsp_watch_reset
 	gst_rtsp_watch_send_message
+	gst_rtsp_watch_set_send_backlog
 	gst_rtsp_watch_unref
 	gst_rtsp_watch_write_data
diff --git a/win32/common/libgstsdp.def b/win32/common/libgstsdp.def
index 186e4ff..ddbe29c 100644
--- a/win32/common/libgstsdp.def
+++ b/win32/common/libgstsdp.def
@@ -1,5 +1,11 @@
 EXPORTS
 	gst_sdp_address_is_multicast
+	gst_sdp_attribute_clear
+	gst_sdp_attribute_set
+	gst_sdp_bandwidth_clear
+	gst_sdp_bandwidth_set
+	gst_sdp_connection_clear
+	gst_sdp_connection_set
 	gst_sdp_media_add_attribute
 	gst_sdp_media_add_bandwidth
 	gst_sdp_media_add_connection
@@ -8,6 +14,7 @@
 	gst_sdp_media_attributes_len
 	gst_sdp_media_bandwidths_len
 	gst_sdp_media_connections_len
+	gst_sdp_media_copy
 	gst_sdp_media_formats_len
 	gst_sdp_media_free
 	gst_sdp_media_get_attribute
@@ -23,7 +30,19 @@
 	gst_sdp_media_get_port
 	gst_sdp_media_get_proto
 	gst_sdp_media_init
+	gst_sdp_media_insert_attribute
+	gst_sdp_media_insert_bandwidth
+	gst_sdp_media_insert_connection
+	gst_sdp_media_insert_format
 	gst_sdp_media_new
+	gst_sdp_media_remove_attribute
+	gst_sdp_media_remove_bandwidth
+	gst_sdp_media_remove_connection
+	gst_sdp_media_remove_format
+	gst_sdp_media_replace_attribute
+	gst_sdp_media_replace_bandwidth
+	gst_sdp_media_replace_connection
+	gst_sdp_media_replace_format
 	gst_sdp_media_set_information
 	gst_sdp_media_set_key
 	gst_sdp_media_set_media
@@ -41,6 +60,7 @@
 	gst_sdp_message_as_uri
 	gst_sdp_message_attributes_len
 	gst_sdp_message_bandwidths_len
+	gst_sdp_message_copy
 	gst_sdp_message_dump
 	gst_sdp_message_emails_len
 	gst_sdp_message_free
@@ -57,15 +77,34 @@
 	gst_sdp_message_get_phone
 	gst_sdp_message_get_session_name
 	gst_sdp_message_get_time
+	gst_sdp_message_get_type
 	gst_sdp_message_get_uri
 	gst_sdp_message_get_version
 	gst_sdp_message_get_zone
 	gst_sdp_message_init
+	gst_sdp_message_insert_attribute
+	gst_sdp_message_insert_bandwidth
+	gst_sdp_message_insert_email
+	gst_sdp_message_insert_phone
+	gst_sdp_message_insert_time
+	gst_sdp_message_insert_zone
 	gst_sdp_message_medias_len
 	gst_sdp_message_new
 	gst_sdp_message_parse_buffer
 	gst_sdp_message_parse_uri
 	gst_sdp_message_phones_len
+	gst_sdp_message_remove_attribute
+	gst_sdp_message_remove_bandwidth
+	gst_sdp_message_remove_email
+	gst_sdp_message_remove_phone
+	gst_sdp_message_remove_time
+	gst_sdp_message_remove_zone
+	gst_sdp_message_replace_attribute
+	gst_sdp_message_replace_bandwidth
+	gst_sdp_message_replace_email
+	gst_sdp_message_replace_phone
+	gst_sdp_message_replace_time
+	gst_sdp_message_replace_zone
 	gst_sdp_message_set_connection
 	gst_sdp_message_set_information
 	gst_sdp_message_set_key
@@ -76,3 +115,7 @@
 	gst_sdp_message_times_len
 	gst_sdp_message_uninit
 	gst_sdp_message_zones_len
+	gst_sdp_time_clear
+	gst_sdp_time_set
+	gst_sdp_zone_clear
+	gst_sdp_zone_set
diff --git a/win32/common/libgstvideo.def b/win32/common/libgstvideo.def
index 1f99c75..15095f0 100644
--- a/win32/common/libgstvideo.def
+++ b/win32/common/libgstvideo.def
@@ -1,5 +1,6 @@
 EXPORTS
 	_gst_video_decoder_error
+	gst_buffer_add_video_gl_texture_upload_meta
 	gst_buffer_add_video_meta
 	gst_buffer_add_video_meta_full
 	gst_buffer_add_video_overlay_composition_meta
@@ -50,7 +51,13 @@
 	gst_video_buffer_pool_get_type
 	gst_video_buffer_pool_new
 	gst_video_calculate_display_ratio
+	gst_video_chroma_flags_get_type
 	gst_video_chroma_from_string
+	gst_video_chroma_method_get_type
+	gst_video_chroma_resample
+	gst_video_chroma_resample_free
+	gst_video_chroma_resample_get_info
+	gst_video_chroma_resample_new
 	gst_video_chroma_site_get_type
 	gst_video_chroma_to_string
 	gst_video_codec_frame_get_type
@@ -128,6 +135,7 @@
 	gst_video_format_from_masks
 	gst_video_format_from_string
 	gst_video_format_get_info
+	gst_video_format_get_palette
 	gst_video_format_get_type
 	gst_video_format_to_fourcc
 	gst_video_format_to_string
@@ -136,6 +144,9 @@
 	gst_video_frame_map
 	gst_video_frame_map_id
 	gst_video_frame_unmap
+	gst_video_gl_texture_upload_meta_api_get_type
+	gst_video_gl_texture_upload_meta_get_info
+	gst_video_gl_texture_upload_meta_upload
 	gst_video_info_align
 	gst_video_info_convert
 	gst_video_info_from_caps
diff --git a/win32/common/video-enumtypes.c b/win32/common/video-enumtypes.c
index 93b1906..e32d3ee 100644
--- a/win32/common/video-enumtypes.c
+++ b/win32/common/video-enumtypes.c
@@ -9,6 +9,7 @@
 #include "video-info.h"
 #include "colorbalance.h"
 #include "navigation.h"
+#include "video-chroma.h"
 
 /* enumerations from "video-format.h" */
 GType
@@ -63,6 +64,12 @@
       {GST_VIDEO_FORMAT_I420_10LE, "GST_VIDEO_FORMAT_I420_10LE", "i420-10le"},
       {GST_VIDEO_FORMAT_I422_10BE, "GST_VIDEO_FORMAT_I422_10BE", "i422-10be"},
       {GST_VIDEO_FORMAT_I422_10LE, "GST_VIDEO_FORMAT_I422_10LE", "i422-10le"},
+      {GST_VIDEO_FORMAT_Y444_10BE, "GST_VIDEO_FORMAT_Y444_10BE", "y444-10be"},
+      {GST_VIDEO_FORMAT_Y444_10LE, "GST_VIDEO_FORMAT_Y444_10LE", "y444-10le"},
+      {GST_VIDEO_FORMAT_GBR, "GST_VIDEO_FORMAT_GBR", "gbr"},
+      {GST_VIDEO_FORMAT_GBR_10BE, "GST_VIDEO_FORMAT_GBR_10BE", "gbr-10be"},
+      {GST_VIDEO_FORMAT_GBR_10LE, "GST_VIDEO_FORMAT_GBR_10LE", "gbr-10le"},
+      {GST_VIDEO_FORMAT_NV16, "GST_VIDEO_FORMAT_NV16", "nv16"},
       {0, NULL, NULL}
     };
     GType g_define_type_id = g_enum_register_static ("GstVideoFormat", values);
@@ -72,35 +79,6 @@
 }
 
 GType
-gst_video_chroma_site_get_type (void)
-{
-  static volatile gsize g_define_type_id__volatile = 0;
-  if (g_once_init_enter (&g_define_type_id__volatile)) {
-    static const GFlagsValue values[] = {
-      {GST_VIDEO_CHROMA_SITE_UNKNOWN, "GST_VIDEO_CHROMA_SITE_UNKNOWN",
-          "unknown"},
-      {GST_VIDEO_CHROMA_SITE_NONE, "GST_VIDEO_CHROMA_SITE_NONE", "none"},
-      {GST_VIDEO_CHROMA_SITE_H_COSITED, "GST_VIDEO_CHROMA_SITE_H_COSITED",
-          "h-cosited"},
-      {GST_VIDEO_CHROMA_SITE_V_COSITED, "GST_VIDEO_CHROMA_SITE_V_COSITED",
-          "v-cosited"},
-      {GST_VIDEO_CHROMA_SITE_ALT_LINE, "GST_VIDEO_CHROMA_SITE_ALT_LINE",
-          "alt-line"},
-      {GST_VIDEO_CHROMA_SITE_COSITED, "GST_VIDEO_CHROMA_SITE_COSITED",
-          "cosited"},
-      {GST_VIDEO_CHROMA_SITE_JPEG, "GST_VIDEO_CHROMA_SITE_JPEG", "jpeg"},
-      {GST_VIDEO_CHROMA_SITE_MPEG2, "GST_VIDEO_CHROMA_SITE_MPEG2", "mpeg2"},
-      {GST_VIDEO_CHROMA_SITE_DV, "GST_VIDEO_CHROMA_SITE_DV", "dv"},
-      {0, NULL, NULL}
-    };
-    GType g_define_type_id =
-        g_flags_register_static ("GstVideoChromaSite", values);
-    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-  }
-  return g_define_type_id__volatile;
-}
-
-GType
 gst_video_format_flags_get_type (void)
 {
   static volatile gsize g_define_type_id__volatile = 0;
@@ -130,14 +108,16 @@
 {
   static volatile gsize g_define_type_id__volatile = 0;
   if (g_once_init_enter (&g_define_type_id__volatile)) {
-    static const GEnumValue values[] = {
+    static const GFlagsValue values[] = {
       {GST_VIDEO_PACK_FLAG_NONE, "GST_VIDEO_PACK_FLAG_NONE", "none"},
       {GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE, "GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE",
           "truncate-range"},
+      {GST_VIDEO_PACK_FLAG_INTERLACED, "GST_VIDEO_PACK_FLAG_INTERLACED",
+          "interlaced"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
-        g_enum_register_static ("GstVideoPackFlags", values);
+        g_flags_register_static ("GstVideoPackFlags", values);
     g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
   }
   return g_define_type_id__volatile;
@@ -407,3 +387,70 @@
   }
   return g_define_type_id__volatile;
 }
+
+/* enumerations from "video-chroma.h" */
+GType
+gst_video_chroma_site_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GFlagsValue values[] = {
+      {GST_VIDEO_CHROMA_SITE_UNKNOWN, "GST_VIDEO_CHROMA_SITE_UNKNOWN",
+          "unknown"},
+      {GST_VIDEO_CHROMA_SITE_NONE, "GST_VIDEO_CHROMA_SITE_NONE", "none"},
+      {GST_VIDEO_CHROMA_SITE_H_COSITED, "GST_VIDEO_CHROMA_SITE_H_COSITED",
+          "h-cosited"},
+      {GST_VIDEO_CHROMA_SITE_V_COSITED, "GST_VIDEO_CHROMA_SITE_V_COSITED",
+          "v-cosited"},
+      {GST_VIDEO_CHROMA_SITE_ALT_LINE, "GST_VIDEO_CHROMA_SITE_ALT_LINE",
+          "alt-line"},
+      {GST_VIDEO_CHROMA_SITE_COSITED, "GST_VIDEO_CHROMA_SITE_COSITED",
+          "cosited"},
+      {GST_VIDEO_CHROMA_SITE_JPEG, "GST_VIDEO_CHROMA_SITE_JPEG", "jpeg"},
+      {GST_VIDEO_CHROMA_SITE_MPEG2, "GST_VIDEO_CHROMA_SITE_MPEG2", "mpeg2"},
+      {GST_VIDEO_CHROMA_SITE_DV, "GST_VIDEO_CHROMA_SITE_DV", "dv"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_flags_register_static ("GstVideoChromaSite", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_video_chroma_method_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GEnumValue values[] = {
+      {GST_VIDEO_CHROMA_METHOD_NEAREST, "GST_VIDEO_CHROMA_METHOD_NEAREST",
+          "nearest"},
+      {GST_VIDEO_CHROMA_METHOD_LINEAR, "GST_VIDEO_CHROMA_METHOD_LINEAR",
+          "linear"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstVideoChromaMethod", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_video_chroma_flags_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GFlagsValue values[] = {
+      {GST_VIDEO_CHROMA_FLAG_NONE, "GST_VIDEO_CHROMA_FLAG_NONE", "none"},
+      {GST_VIDEO_CHROMA_FLAG_INTERLACED, "GST_VIDEO_CHROMA_FLAG_INTERLACED",
+          "interlaced"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_flags_register_static ("GstVideoChromaFlags", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
diff --git a/win32/common/video-enumtypes.h b/win32/common/video-enumtypes.h
index 6e78a82..177f196 100644
--- a/win32/common/video-enumtypes.h
+++ b/win32/common/video-enumtypes.h
@@ -11,8 +11,6 @@
 /* enumerations from "video-format.h" */
 GType gst_video_format_get_type (void);
 #define GST_TYPE_VIDEO_FORMAT (gst_video_format_get_type())
-GType gst_video_chroma_site_get_type (void);
-#define GST_TYPE_VIDEO_CHROMA_SITE (gst_video_chroma_site_get_type())
 GType gst_video_format_flags_get_type (void);
 #define GST_TYPE_VIDEO_FORMAT_FLAGS (gst_video_format_flags_get_type())
 GType gst_video_pack_flags_get_type (void);
@@ -47,6 +45,14 @@
 #define GST_TYPE_NAVIGATION_MESSAGE_TYPE (gst_navigation_message_type_get_type())
 GType gst_navigation_event_type_get_type (void);
 #define GST_TYPE_NAVIGATION_EVENT_TYPE (gst_navigation_event_type_get_type())
+
+/* enumerations from "video-chroma.h" */
+GType gst_video_chroma_site_get_type (void);
+#define GST_TYPE_VIDEO_CHROMA_SITE (gst_video_chroma_site_get_type())
+GType gst_video_chroma_method_get_type (void);
+#define GST_TYPE_VIDEO_CHROMA_METHOD (gst_video_chroma_method_get_type())
+GType gst_video_chroma_flags_get_type (void);
+#define GST_TYPE_VIDEO_CHROMA_FLAGS (gst_video_chroma_flags_get_type())
 G_END_DECLS
 
 #endif /* __GST_VIDEO_ENUM_TYPES_H__ */